ode45

Solver de Runge-Kutta padrão para equações diferenciais ordinárias não rígidas.

Categoria: Mathematics > Numerical Integration and Differential Equations

Sintaxe

[t, y] = ode45(odefun, tspan, y0)

Integra y' = odefun(t, y) em tspan a partir de y0.

[t, y] = ode45(odefun, tspan, y0, options)

Aplica também opções de odeset (tolerâncias, eventos, funções de saída).

sol = ode45(___)

Retorna uma estrutura para uso com deval.

[t, y, te, ye, ie] = ode45(___)

Retorna também instantes, estados e índices de eventos quando uma função de eventos está definida.

Descrição

ode45 usa o par de fórmulas de Dormand-Prince de quarta e quinta ordem: a diferença entre as duas estimativas controla o tamanho do passo. É uma boa primeira tentativa para a maioria dos problemas, desde que não sejam rígidos.

Equações de ordem superior se escrevem como sistemas de primeira ordem: para x'' = -x, use y = [x; x'] e odefun = @(t,y) [y(2); -y(1)]. Se a integração precisa de um número enorme de passos minúsculos, o problema provavelmente é rígido e ode15s é a ferramenta certa.

Argumentos de entrada

odefun
Handle dydt = odefun(t, y) que retorna um vetor coluna do tamanho de y.
tspan
[t0 tf], ou um vetor de instantes crescentes (ou decrescentes) a reportar.
y0
Vetor de valores iniciais.
options
Estrutura de odeset. As tolerâncias padrão são RelTol = 1e-3 e AbsTol = 1e-6.

Argumentos de saída

t
Vetor coluna de instantes.
y
Array com uma linha por instante e uma coluna por componente.

Exemplo

Oscilador harmônico

[t, y] = ode45(@(t, y) [y(2); -y(1)], [0 pi/2], [0; 1]);
fprintf('%.3f %.3f\n', y(end, 1), y(end, 2))
Saída
1.000 -0.000

Veja também

ode23 ode113 ode15s odeset deval