Steffensen-Verfahren zur Nullstellensuche
Dieser Rechner nähert eine Nullstelle einer reellen Funktion mit dem Steffensen-Verfahren ausgehend von einem einzigen Startwert an, ohne eine Ableitung zu verlangen.
Im Browser ausführen – kostenlos
Geben Sie f(x), den Startwert und die Abbruchkriterien ein; Sie erhalten die letzte Näherung und ein vollständiges Iterationsprotokoll. Das Verfahren verwendet eine Aitken-artige Korrektur aus f(x) und f(x + f(x)). In der Nähe einer geeigneten einfachen Nullstelle kann es allein mit Funktionswerten quadratisch konvergieren. Die strukturierte Ausgabe eignet sich zum Lernen, Prüfen und für reproduzierbare numerische Abläufe.
Geben Sie Funktion und geeigneten Startwert ein
Schreiben Sie die Funktion als Ausdruck in x, etwa x^2 - 2, cos(x) - x oder exp(-x) - x. Multiplikationen müssen ausdrücklich als 2*x statt 2x notiert werden. Der Parser unterstützt Dezimalzahlen, wissenschaftliche Schreibweise, Klammern, +, -, *, /, Potenzen mit ^, die Konstanten pi und e sowie Funktionen wie sin, cos, tan, exp, log, log10, sqrt und abs. JavaScript oder Zuweisungen wie f(x)= werden nicht ausgeführt. initial_guess muss endlich sein und sollte nahe an der gesuchten Nullstelle liegen. Steffensen ist ein offenes Verfahren: Anders als bei der Bisektion gibt es kein Intervall, das eine Nullstelle sicher einschließt. Verschiedene Startwerte können zu anderen Nullstellen, Singularitäten oder außerhalb des sinnvollen Bereichs führen. Ein Graph, eine Vorzeichenprüfung oder mathematische Abschätzung hilft bei der Wahl. tolerance legt zulässiges Residuum und relative Änderung fest; max_iterations begrenzt die Arbeit strikt. Wählen Sie die Toleranz passend zur tatsächlich begründbaren Datengenauigkeit.
Verstehen Sie den Aitken-artigen Steffensen-Schritt
Für die aktuelle Näherung x berechnet der Rechner zuerst f(x) und anschließend den Funktionswert am verschobenen Punkt x + f(x). Die Differenz f(x + f(x)) - f(x) bildet den Nenner; die nächste Näherung ist x minus f(x) zum Quadrat, geteilt durch diesen Nenner. Die Konstruktion lässt sich als Aitken-Beschleunigung einer Fixpunktiteration auffassen und nähert die Wirkung eines Newton-Schritts an, ohne f'(x) zu berechnen. Bei hinreichend glatter Funktion, einfacher Nullstelle und geeignetem Start ist die lokale Konvergenz meist quadratisch, sodass korrekte Stellen schnell zunehmen können. Dies ist keine globale Zusage. Ein Nenner von null macht den Schritt undefiniert, ein sehr kleiner Nenner kann einen großen Sprung verursachen. Der Rechner weist exakt verschwindende Nenner und nicht endliche Werte zurück. Jede Protokollzeile enthält x, f(x), den verschobenen Punkt, dessen Funktionswert, den Nenner, die nächste Näherung und deren Residuum. So können Sie die Formel nachvollziehen und problematische Schritte genau erkennen.
Bewerten Sie die Konvergenz und prüfen Sie das Ergebnis
converged wird true, wenn das neue Residuum höchstens tolerance beträgt oder die Änderung relativ zur neuen Näherung klein ist. root und f_root enthalten letzte Näherung und ausgewertetes Residuum; iterations zählt abgeschlossene Schritte. Erfüllt der Startwert bereits den Residuumtest, werden null Iterationen und ein leeres Protokoll ausgegeben. Beim Erreichen der Obergrenze bleibt converged false; der letzte endliche Wert und das gesamte Protokoll werden zur Diagnose geliefert. Prüfen Sie stets f_root, denn numerische Stagnation kann eine kleine Änderung trotz unzureichendem Residuum erzeugen. Setzen Sie bei wichtigen Aufgaben die Nullstelle unabhängig in die Ausgangsformel ein, wiederholen Sie den Lauf mit einem nahen Startwert und vergleichen Sie möglichst ein einschließendes Verfahren. Mehrfache Nullstellen können die Ordnung senken; Unstetigkeiten, eingeschränkte Definitionsbereiche, flache Zonen oder schlechte Skalierung können das Verfahren scheitern lassen. Gleitkommaarithmetik begrenzt außerdem die sinnvolle Genauigkeit. Der Rechner beweist weder Existenz noch Eindeutigkeit oder eine Fehlerschranke; dafür sind Kontinuität, Ableitungen, Intervalle und Kondition gesondert zu untersuchen.
Anwendungsfälle
Eine Aufgabe zur Numerik kontrollieren
Vergleichen Sie jeden ableitungsfreien Schritt mit Ihrer Rechnung und prüfen Sie das Residuum der ausgegebenen Nullstelle.
Eine nichtlineare Modellgleichung lösen
Bestimmen Sie eine endliche Nullstelle, wenn Funktionswerte verfügbar sind, eine Ableitung aber unpraktisch ist.
Empfindlichkeit gegenüber Startwerten testen
Führen Sie denselben Ausdruck mit benachbarten Werten aus, um Einzugsgebiete, Tempo und Fehler zu untersuchen.
Häufige Fragen
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Die Browserversion führt denselben deterministischen Löser lokal aus.
Benötigt das Steffensen-Verfahren eine Ableitung?
Nein. Jeder Schritt nutzt Funktionswerte an der aktuellen Näherung, einem verschobenen Punkt und der neuen Näherung.
Ist quadratische Konvergenz garantiert?
Nein. Sie gilt lokal unter passenden Bedingungen für Glattheit, einfache Nullstelle und Startwert; schwierige Fälle können scheitern.
Warum wurde der Nenner null?
Die beiden Funktionswerte der Differenz waren gleich; damit war die Korrektur undefiniert. Wählen Sie einen anderen Start oder ein anderes Verfahren.
Was geschieht an der Iterationsgrenze?
converged bleibt false; zur Diagnose werden die letzte endliche Näherung, das Residuum und das Protokoll ausgegeben.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/calculus/steffensen-method \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"expression":"x^2 - 2","initial_guess":1}'const res = await fetch("https://api.kit.forhosting.com/calculus/steffensen-method", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"expression": "x^2 - 2",
"initial_guess": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/steffensen-method",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"expression": "x^2 - 2",
"initial_guess": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/steffensen-method", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"expression":"x^2 - 2","initial_guess":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"expression":"x^2 - 2","initial_guess":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/steffensen-method", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"expression": "x^2 - 2",
"initial_guess": 1
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.steffensen_method",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_expression_chars | 500 |
max_iterations | 10000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |