solucionador de EDOs com busca de raízes
[y,rd,w,iw]=ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])
vetor de reais ou matriz (condições iniciais)
escalar real (tempo inicial)
vetor de reais (tempos nos quais a solução é computada).
função externa i.e. função, string ou lista.
constantes reais ou vetores reais com o mesmo tamanho que
y
.
função externa i.e. função, string ou lista.
inteiros.
função externa i.e. função, string ou lista.
a real vector or matrix. The solution.
a real vector.
vetores de reais. See ode() optional output
Com esta sintaxe (primeiro argumento igual a
"root"
) ode
computa a solução da EDO
dy/dt=f(t,y)
até que o estado y(t)
cruze a superfície g(t,y)=0
.
g
deve fornecer a equação da superfície. É uma
função externa, i.e. uma função com sintaxe especificada, ou o nome de uma
subrotina FORTRAN ou função C (string) com seqüência de chamamento
especificada ou uma lista.
Se g
é uma função, a sintaxe deve ser como
segue:
z=g(t,y)
onde t
é um escalar real (tempo) e
y
um vetor de reais (estado). Ela retorna um vetor de
tamanho ng
que corresponde às ng
restrições. Se g
é um string, ele se refere a uma
subrotina FORTRAN ou uma função C, com a seguinte seqüência de chamamento:
g(n,t,y,ng,gout)
onde ng
é o número
de restrições e gout
é o valor de g
(saída do programa). Se g
é uma lista, as mesmas
convenções para f
se aplicam (ver ajuda de ode).
A saída rd
é um vetor 1 x k
.
A primeira entrada contém o tempo de parada. Outras entradas indicam que
componentes de g
possuem sinal trocado.
k
maior que 2 indica que mais de uma superfície
((k-1)
superfícies) foram simultaneamente
atravessadas.
Outros argumentos e opções são os mesmos que para
ode
, ver a página de ajuda de ode.