Metodo di Steffensen per le radici
Questo calcolatore del metodo di Steffensen approssima uno zero di una funzione reale partendo da una sola stima iniziale, senza richiederne la derivata.
Esegui gratis nel browser
Inserisca f(x), scelga il punto iniziale e i criteri di arresto: riceverà la stima finale insieme alla traccia completa delle iterazioni. Il metodo usa una correzione in stile Aitken costruita con f(x) e f(x + f(x)); vicino a una radice semplice adatta può ottenere convergenza quadratica usando soltanto valori della funzione. Il risultato strutturato è utile per lo studio, la verifica e procedure numeriche riproducibili.
Inserisca la funzione e una stima iniziale sensata
Scriva la funzione come espressione in x, per esempio x^2 - 2, cos(x) - x oppure exp(-x) - x. La moltiplicazione deve essere esplicita: usi 2*x, non 2x. Il parser accetta numeri decimali e notazione scientifica, parentesi, +, -, *, /, potenze con ^, le costanti pi ed e e funzioni come sin, cos, tan, exp, log, log10, sqrt e abs. Non esegue JavaScript e non accetta assegnazioni quali f(x)=. initial_guess deve essere un numero finito abbastanza vicino alla radice desiderata. Steffensen è un metodo aperto: diversamente dalla bisezione, non parte da un intervallo che garantisce di contenere una radice. Valori iniziali diversi possono convergere a zeri differenti, incontrare una singolarità o uscire dal dominio utile. Un grafico, un controllo dei segni o una stima matematica possono guidare la scelta. tolerance stabilisce residuo e spostamento relativo ammessi; max_iterations limita rigidamente il calcolo. Scelga una tolleranza coerente con la precisione effettiva dei dati.
Comprenda l'aggiornamento di Steffensen in stile Aitken
Alla stima corrente x, il calcolatore valuta prima f(x), poi la funzione nel punto spostato x + f(x). La differenza f(x + f(x)) - f(x) è il denominatore; la stima successiva è x meno il quadrato di f(x) diviso tale denominatore. La costruzione equivale a un'accelerazione di Aitken applicata a un'iterazione di punto fisso e approssima l'effetto di un passo di Newton senza calcolare f'(x). Per una funzione sufficientemente regolare, una radice semplice e un punto iniziale adatto, la convergenza locale è in genere quadratica: vicino alla soluzione le cifre corrette possono crescere rapidamente. Non è però una garanzia globale. Un denominatore zero rende l'aggiornamento indefinito, mentre uno molto piccolo può causare un salto enorme. Lo strumento rifiuta denominatori esattamente nulli e valori non finiti. Ogni riga della traccia mostra x, f(x), punto spostato, valore relativo, denominatore, stima seguente e nuovo residuo. Lei può così riprodurre la formula e individuare l'iterazione problematica.
Legga correttamente la convergenza e convalidi il risultato
converged diventa true quando il nuovo residuo non supera tolerance o quando l'aggiornamento è piccolo rispetto alla scala della nuova stima. root e f_root riportano ultima stima e residuo; iterations conta gli aggiornamenti completati. Se il valore iniziale supera già il test, vengono restituite zero iterazioni e una traccia vuota. Se si raggiunge il limite, converged è false e restano disponibili l'ultima stima finita e l'intera traccia: l'esaurimento non viene presentato come successo. Controlli sempre f_root, perché un piccolo movimento può derivare da stagnazione numerica anche con residuo insoddisfacente. Per lavori importanti, sostituisca la radice nella formula, ripeta da un punto vicino e confronti un metodo con intervallo. Radici multiple possono rallentare la convergenza; discontinuità, domini limitati, zone piatte o formule mal scalate possono impedirla. Anche la virgola mobile limita la precisione utile. Questo calcolatore non dimostra esistenza, unicità o una garanzia d'errore: servono analisi separate di continuità, derivate, intervalli e condizionamento.
Casi d'uso
Verificare un esercizio di analisi numerica
Confronti ogni aggiornamento senza derivate con il calcolo manuale e controlli il residuo della radice.
Risolvere un'equazione non lineare di un modello
Trovi uno zero finito quando la funzione è valutabile, ma ricavare o programmare la derivata è scomodo.
Studiare la sensibilità al valore iniziale
Esegua la stessa espressione da stime vicine per analizzare attrazione, velocità e modalità di errore.
Domande frequenti
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione nel browser esegue localmente lo stesso solutore deterministico.
Il metodo di Steffensen richiede una derivata?
No. Ogni aggiornamento usa valori della funzione nella stima corrente, in un punto spostato e nella stima ottenuta.
La convergenza quadratica è garantita?
No. È un risultato locale con opportune condizioni di regolarità, radice semplice e punto iniziale; alcuni problemi falliscono.
Perché il denominatore è diventato zero?
I due valori funzionali usati nella differenza erano uguali, quindi la correzione era indefinita. Provi un altro inizio o metodo.
Cosa accade al limite delle iterazioni?
Il risultato imposta converged su false e restituisce ultima stima finita, residuo e traccia per la diagnosi.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"expression": "x^2 - 2",
"initial_guess": 1
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.steffensen_method",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_expression_chars | 500 |
max_iterations | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |