Calculadora Runge-Kutta 2 de equações diferenciais
Esta calculadora Runge-Kutta 2 aproxima um problema de valor inicial escrito como y' = f(x,y).
Executar grátis
Informe a expressão da derivada, o ponto conhecido x0 e y0, um ponto final e um número fixo de passos. Você pode usar a fórmula de segunda ordem do ponto médio, de Heun ou de Ralston. O resultado apresenta o tamanho comum dos passos, as duas inclinações de cada etapa, cada incremento ponderado e a aproximação final, mantendo o processo numérico transparente e reproduzível.
Informe a equação diferencial e o intervalo
Digite somente o lado direito f(x,y) no campo da equação. Para y' = x + y, informe x + y. A expressão aceita números decimais e em notação científica, as variáveis x e y, as constantes pi e e, parênteses, adição, subtração, multiplicação explícita, divisão, potências e as funções exp, log, sin, cos e sqrt. Escreva 2*x em vez de 2x e coloque os argumentos das funções entre parênteses. A condição inicial é definida por x0 e y0, ou seja, y(x0) é igual a y0. target_x indica a outra extremidade do intervalo. Ele pode ser maior ou menor que x0, portanto a integração funciona tanto para a frente quanto para trás. Por fim, escolha o número exato de passos. A calculadora divide todo o intervalo nessa quantidade de partes iguais; ela não trata o número como máximo nem o ajusta durante a resolução. Uma expressão malformada, um nome não aceito, um valor numérico ausente ou um cálculo fora do domínio real finito gera um erro de entrada, e não uma tabela parcialmente confiável.
Escolha e interprete uma fórmula RK2
Todos os métodos disponíveis são fórmulas de Runge-Kutta explícitas de dois estágios e segunda ordem. Primeiro, o solucionador calcula k1 = f(x,y) no ponto atual. Depois, usa k1 para prever uma posição intermediária e calcula k2 nesse local. O método do ponto médio posiciona esse estágio na metade do passo e usa k2 como inclinação final. O método de Heun faz a previsão no fim do passo e calcula a média de k1 e k2; ele também é chamado de Euler aperfeiçoado ou método do trapézio explícito. O método de Ralston posiciona o estágio a dois terços do passo e combina um quarto de k1 com três quartos de k2, escolha criada para reduzir um coeficiente comum do erro local. A saída mostra k1, k2 e o incremento resultante para cada ponto aceito. Some o incremento ao valor y anterior para reproduzir o próximo valor exibido. Como as regras de estágio são diferentes, duas variantes RK2 podem fornecer aproximações ligeiramente distintas, embora as três apresentem convergência de segunda ordem em problemas suficientemente suaves.
Avalie o passo e a confiabilidade numérica
O tamanho do passo com sinal é (target_x - x0) dividido por steps; portanto, aumentar a quantidade de passos reduz o módulo de cada um. Em um problema suave e não rígido, um método de segunda ordem geralmente reduz o erro global por um fator próximo de quatro quando o tamanho do passo é dividido pela metade, depois que o cálculo entra na faixa assintótica. Uma verificação prática de convergência consiste em resolver com N passos, repetir com 2N e comparar os valores finais de y. A concordância é uma evidência de estabilidade para aquele problema, mas não representa uma certificação rigorosa do erro. Examine também as inclinações informadas: crescimento repentino, valores grandes alternados ou aritmética não finita podem indicar que o intervalo atravessa uma singularidade ou que os passos escolhidos são largos demais. Esta calculadora usa intencionalmente uma quantidade fixa e não aplica controle adaptativo de erro. Ela também retorna uma aproximação, não uma solução simbólica. Equações rígidas, derivadas descontínuas, integrações longas e cálculos científicos críticos devem ser conferidos com um solucionador adaptativo adequado, conhecimento do domínio e análise independente de erros.
Casos de uso
Conferir exercícios acadêmicos
Compare as duas inclinações e o incremento ponderado de cada passo com uma tabela RK2 calculada manualmente.
Comparar variantes RK2
Execute as fórmulas de ponto médio, Heun e Ralston no mesmo problema de valor inicial e analise as estimativas finais.
Testar a convergência
Dobre a quantidade fixa de passos e compare os valores finais para avaliar se a aproximação se estabilizou.
Perguntas frequentes
Quanto custa uma solicitação?
Uma solicitação API custa US$ 0,002. O mesmo cálculo determinístico também pode ser executado no navegador.
Qual método é usado por padrão?
Quando method é omitido, a calculadora usa o método RK2 do ponto médio.
Heun e Euler aperfeiçoado são o mesmo método aqui?
Sim. A opção Heun usa a atualização trapezoidal explícita que calcula a média entre a inclinação inicial e uma inclinação prevista no fim.
É possível resolver para trás a partir de x0?
Sim. Defina target_x abaixo de x0; o tamanho calculado do passo será negativo, enquanto a quantidade solicitada de passos continuará positiva.
A calculadora escolhe automaticamente a quantidade de passos?
Não. Ela sempre usa o inteiro positivo informado em steps e divide o intervalo igualmente.
O resultado inclui um limite de erro?
Não. Compare resultados com quantidades crescentes de passos ou use um solucionador adaptativo quando precisar de controle quantificado do erro.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"equation": "x + y",
"x0": 0,
"y0": 1,
"target_x": 0.4,
"steps": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.rk2_method",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_steps | 10000 |
max_expression_chars | 500 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |