ode

Objeto que descreve um problema de valor inicial e guarda as configurações do solver.

Categoria: Other public functions: funfun

Sintaxe

f = ode

Cria um problema vazio, a ser preenchido pelas propriedades.

f = ode(Name=Value)

Cria o problema com propriedades dadas em pares nome-valor, como ODEFcn e InitialValue.

sol = solve(f, t0, tf)

Integra de t0 a tf e retorna um objeto ODEResults.

Descrição

O objeto ode é a interface mais nova para os solvers de EDOs: em vez de uma chamada longa a ode45 com várias opções, o problema e suas configurações ficam em um só objeto, que pode ser inspecionado, alterado e resolvido de novo. solve(f, t0, tf) retorna um objeto cujas propriedades Time e Solution guardam os instantes e os estados, com uma coluna por instante.

Os recursos que o código antigo passava por odeset agora são objetos próprios: odeEvent para eventos, odeJacobian para a jacobiana e odeMassMatrix para a matriz de massa.

Argumentos de entrada

ODEFcn
Function handle @(t, y) que dá a derivada do estado.
InitialValue
Estado no instante inicial.
InitialTime
Instante inicial, 0 por padrão.
Solver
Um solver específico como 'ode15s', ou 'auto' (padrão) para o objeto escolher.
RelativeTolerance, AbsoluteTolerance
Tolerâncias de erro, 1e-3 e 1e-6 por padrão.
Jacobian, MassMatrix, EventDefinition
Objetos opcionais odeJacobian, odeMassMatrix e odeEvent.

Argumentos de saída

f
Um objeto ode. A propriedade SelectedSolver indica qual solver o modo 'auto' escolheu.

Exemplo

Resolvendo y' = -y

f = ode(ODEFcn=@(t, y) -y, InitialValue=1);
sol = solve(f, 0, 2);
fprintf('y(2) = %.3f\n', sol.Solution(end))
fprintf('exact  %.3f\n', exp(-2))
Saída
y(2) = 0.135
exact  0.135

Veja também

ode45 ode15s odeset odeEvent odeJacobian odeMassMatrix