Calcolatore Runge-Kutta 2 per equazioni differenziali
Questo calcolatore Runge-Kutta 2 approssima un problema ai valori iniziali scritto come y' = f(x,y).
Esegui gratis nel browser
Inserisca l'espressione della derivata, il punto noto x0 e y0, un estremo e un numero fisso di passi. Può scegliere la formula del punto medio, di Heun o di Ralston, tutte del secondo ordine. Il risultato mostra il passo comune, le due pendenze di ogni fase, ciascun incremento ponderato e l'approssimazione finale, rendendo il procedimento numerico trasparente e riproducibile.
Inserisca l'equazione differenziale e l'intervallo
Nel campo dell'equazione inserisca soltanto il membro destro f(x,y). Per y' = x + y, scriva x + y. L'espressione accetta numeri decimali e in notazione scientifica, le variabili x e y, le costanti pi ed e, parentesi, addizione, sottrazione, moltiplicazione esplicita, divisione, potenze e le funzioni exp, log, sin, cos e sqrt. Scriva 2*x anziché 2x e racchiuda tra parentesi gli argomenti delle funzioni. La condizione iniziale è definita da x0 e y0, ossia y(x0) è uguale a y0. target_x indica l'altro estremo dell'intervallo. Può essere maggiore o minore di x0, quindi l'integrazione funziona sia in avanti sia all'indietro. Infine, scelga il numero esatto di passi. Il calcolatore divide l'intero intervallo in quel numero di parti uguali; non interpreta il valore come un massimo e non lo modifica durante la soluzione. Un'espressione non valida, un nome non supportato, un valore numerico mancante o un calcolo esterno al dominio reale finito produce un errore di input, non una tabella solo parzialmente attendibile.
Scelga e interpreti una formula RK2
Tutti i metodi inclusi sono formule Runge-Kutta esplicite a due stadi e del secondo ordine. Il risolutore calcola prima k1 = f(x,y) nel punto corrente. Usa quindi k1 per prevedere una posizione intermedia e vi calcola k2. Il metodo del punto medio colloca tale stadio a metà del passo e usa k2 come pendenza finale. Il metodo di Heun effettua la previsione alla fine del passo e calcola la media di k1 e k2; è noto anche come metodo di Eulero migliorato o del trapezio esplicito. Il metodo di Ralston colloca lo stadio a due terzi del passo e combina un quarto di k1 con tre quarti di k2, scelta concepita per ridurre un comune coefficiente dell'errore locale. L'output elenca k1, k2 e l'incremento risultante per ogni punto accettato. Sommi l'incremento al precedente valore y per riprodurre quello successivo visualizzato. Poiché le regole degli stadi differiscono, due varianti RK2 possono fornire approssimazioni leggermente diverse, sebbene tutte e tre abbiano convergenza del secondo ordine per problemi sufficientemente regolari.
Valuti il passo e l'affidabilità numerica
Il passo con segno è (target_x - x0) diviso per steps, quindi aumentando il numero di passi diminuisce il valore assoluto di ciascuno. Per un problema regolare e non rigido, un metodo del secondo ordine riduce in genere l'errore globale di circa quattro volte quando il passo viene dimezzato, una volta raggiunta la regione asintotica. Una verifica pratica della convergenza consiste nel risolvere con N passi, poi con 2N, e confrontare i valori finali di y. La concordanza offre un indizio di stabilità per quel problema, ma non certifica rigorosamente l'errore. Controlli anche le pendenze riportate: una crescita improvvisa, grandi valori alternati o aritmetica non finita possono indicare che l'intervallo attraversa una singolarità o che i passi sono troppo ampi. Questo calcolatore usa deliberatamente un numero fisso e non esegue alcun controllo adattivo dell'errore. Inoltre restituisce un'approssimazione, non una soluzione simbolica. Equazioni rigide, derivate discontinue, integrazioni lunghe e calcoli scientifici critici devono essere verificati con un risolutore adattivo adeguato, competenza nel dominio e un'analisi indipendente dell'errore.
Casi d'uso
Verificare un esercizio
Confronti le due pendenze e l'incremento ponderato di ogni passo con una tabella RK2 calcolata a mano.
Confrontare le varianti RK2
Applichi le formule del punto medio, di Heun e di Ralston allo stesso problema iniziale e ne esamini le stime finali.
Controllare la convergenza
Raddoppi il numero fisso di passi e confronti i valori finali per valutare se l'approssimazione si è stabilizzata.
Domande frequenti
Quanto costa una richiesta?
Una richiesta API costa $0.002. Lo stesso calcolo deterministico può essere eseguito anche nel browser.
Quale metodo viene usato come predefinito?
Se method viene omesso, si applica il metodo RK2 del punto medio.
Heun ed Eulero migliorato coincidono in questo caso?
Sì. L'opzione Heun usa l'aggiornamento trapezoidale esplicito che media la pendenza iniziale con quella prevista alla fine.
È possibile risolvere all'indietro da x0?
Sì. Imposti target_x sotto x0; il passo calcolato diventa negativo, mentre il numero richiesto di passi resta positivo.
Il numero di passi viene scelto automaticamente?
No. Il calcolatore usa sempre l'intero positivo fornito in steps e divide equamente l'intervallo.
Il risultato include un limite dell'errore?
No. Confronti risultati ottenuti con numeri crescenti di passi oppure usi un risolutore adattivo quando occorre un controllo quantitativo dell'errore.
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/rk2-method \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"equation":"x + y","x0":0,"y0":1,"target_x":0.4,"steps":4}'const res = await fetch("https://api.kit.forhosting.com/calculus/rk2-method", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.4,
"steps": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/rk2-method",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.4,
"steps": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/rk2-method", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"equation":"x + y","x0":0,"y0":1,"target_x":0.4,"steps":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"equation":"x + y","x0":0,"y0":1,"target_x":0.4,"steps":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/rk2-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
{
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.4,
"steps": 4
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.rk2_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_steps | 10000 |
max_expression_chars | 500 |
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. |