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-3e1e-6por padrão. Jacobian, MassMatrix, EventDefinition- Objetos opcionais
odeJacobian,odeMassMatrixeodeEvent.
Argumentos de saída
f- Um objeto
ode. A propriedadeSelectedSolverindica 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))
y(2) = 0.135
exact 0.135