Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский
Ajuda do Scilab >> Equações Diferenciais > ode_root

ode_root

solucionador de EDOs com busca de raízes

Seqüência de Chamamento

[y,rd,w,iw] = ode("root",y0,t0,t [,rtol [,atol]],f [,jac],ng,g [,w,iw])

Parâmemtros

y0

vetor de reais ou matriz (condições iniciais)

t0

escalar real (tempo inicial)

t

vetor de reais (tempos nos quais a solução é computada).

f

função externa i.e. função, string ou lista.

rtol, atol

constantes reais ou vetores reais com o mesmo tamanho que y.

jac

função externa i.e. função, string ou lista.

ng

inteiros.

g

função externa i.e. função, string ou lista.

y

a real vector or matrix. The solution.

rd

a real vector.

w, iw

vetores de reais. See ode() optional output

Descrição

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.

Exemplos

// Integração da equação diferencial
// dy/dt=y , y(0)=1, e acha o tempo mínimo t tal que y(t)=2
deff("ydot = f(t,y)", "ydot=y")
deff("z = g(t,y)", "z=y-2")
y0 = 1; ng = 1;
[y, rd] = ode("root", y0, 0, 2, f, ng, g)

deff("z = g(t,y)", "z=y-[2;2;33]")
[y, rd] = ode("root", 1, 0, 2, f, 3, g)

Ver Também

  • ode — Solucionador de equações diferenciais ordinárias
  • ode_optional_output — descrição de saídas opcionais de solucionadores de EDOs
  • ode_discrete — solucionador de equações diferenciais ordinárias, simulação de tempo discreto
  • dasrt — Solucionador de equações diferenciais algébricas com cruzamento de zeros
  • daskr — DAE solver with zero crossing
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Jul 20 11:21:10 CEST 2021