impl
equações diferenciais algébricas
Seqüência de Chamamento
y = impl([type],y0,ydot0,t0,t [,atol, [rtol]],res,adda [,jac])
Parâmetros
- y0,ydot0
vetor de reais ou matriz (condições iniciais)
- t0
escalar real (tempo inicial).
- t
vetor de reais (tempos nos quais a solução é computada).
- res,adda
funções externas (função, strting ou lista).
- type
string
'adams'
ou'stiff'
- atol,rtol
escalar real ou vetor de reais com as mesmas dimensões que
y
.- jac
função externa (função, string ou lista).
Descrição
Solução da equação diferencial linear implicita
A(t,y) dy/dt=g(t,y), y(t0)=y0
t0
é o instante inicial, y0
é
o vetor de condições iniciais. O vetor ydot0
da
derivada em relação ao tempo y
em t0
também deve ser dado. A entrada res
é uma função
externa i.e. uma função com sintaxe especificada, ou o nome da subrotina
FORTRAN ou da função C (string) com seqüência de chamamento especificada,
ou uma lista.
Se res
for uma função, a sintaxe deve ser como
segue:
r = res(t,y,ydot)
onde t
é um escalar real (tempo) e
y
e ydot
são vetores de reais
(estado e derivada do estado). Esta função deve retornar
r=g(t,y)-A(t,y)*ydot
.
Se res
for um string, ele se refere a uma
subrotina FORTRAN ou uma função C. Ver
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
para um
exemplo.
res
também pode ser uma lista, ver a ajuda de
ode
.
A entrada adda
também é uma função externa
Se adda
for uma função, a sintaxe deve ser como
segue:
r = adda(t,y,p)
e deve retornar r=A(t,y)+p
onde
p
é uma matriz a ser adicionada a
A(t,y)
.
Se adda
for um string, ele se refere a uma
subrotina FORTRAN ou uma função C. Ver
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
para um
exemplo.
adda
também pode ser uma lista, ver a ajuda de
ode
.
A entrada jac
também é uma função externa
Se jac
for uma função, a sintaxe deve ser como
segue:
j = jac(t,y,ydot)
e deve retornar o Jacobiano de
r=g(t,y)-A(t,y)*ydot
em relação a
y
.
Se jac
for um string, ele se refere a uma
subrotina FORTRAN ou uma função C. Ver
SCI/modules/differential_equations/sci_gateway/fortran/Ex-impl.f
para um
exemplo.
jac
também pode ser uma lista, ver a ajuda de
ode
.
Exemplos
y = impl([1;0;0], [-0.04;0.04;0], 0, 0.4, 'resid', 'aplusp'); // utilizando reinicialização rápida //[x1,w,iw] = impl([1;0;0], [-0.04;0.04;0], 0, 0.2, 'resid', 'aplusp'); // inicialização rápida da chamada anterior //x1 = impl([1;0;0], [-0.04;0.04;0], 0.2, 0.4, 'resid', 'aplusp', w, iw); //max(abs(x1-x))
Ver Também
Report an issue | ||
<< diff | Equações Diferenciais | int2d >> |