[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
63.1 Introdução a plotdf | ||
63.2 Definições para plotdf |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
A função plotdf
cria um gráfico do campo de
direcções para uma Equação Diferencial
Ordinária (EDO) de primeira ordem, ou para um sistema de duas EDO's
autónomas, de primeira ordem.
Por tratar-se de um pacote adicional, para poder usá-lo deverá
primeiro carregá-lo com o comando load("plotdf")
. Plotdf
precisa do Openmath, que é fornecido pelo pacote Xmaxima (Xmaxima,
para além de servir como consola gráfica para o Maxima, é também
o programa que produz os gráficos no formato Openmath).
Para desenhar o campo de direcções de uma única EDO, essa equação deverá escrever-se na forma seguinte:
dy -- = F(x,y) dx |
e a função F será dada como argumento para o
comando plotdf
. Se as variáveis independente e dependente não
forem x e y, como na equação acima, então
os nomes dessas duas variáveis deverá indicar-se numa lista que
será o segundo argumento para o comando plotdf (ver os exemplos).
Para desenhar o campo de direcções de um sistema autónomo de duas EDO's, as duas equações devem ser escritas na forma seguinte
dx dy -- = G(x,y) -- = F(x,y) dt dt |
e o argumento para o comando plotdf
será uma lista com duas
expressões para as funções F e G, nessa
ordem; nomeadamente, a primeira expressão definirá a derivada no
tempo da variável representada no eixo horizontal, e a segunda
expressão será a derivada no tempo da variável representada no eixo
vertical. Essas duas variáveis não têm que ser x e y,
mas se não forem, então o segundo argumento para o comando plotdf
deverá ser uma lista com os nomes dessas variáveis, primeiro a
variável no eixo horizontal, seguida da variável no eixo vertical.
Quando se trabalha com uma única equação,
plotdf
assume implicitamente que x=t
e G(x,y)=1
,
transformando a equação num sistema autónomo com duas
equações.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
[
u,v]
, ...opções...)
[
dxdt,dydt]
, ...opções...)
[
dudt,dvdt]
, [
u,v]
, ...opções...)
Desenha um campo de direcções em duas dimensões x e y.
dydx, dxdt e dydt são expressões que dependem de
x e y. dvdu, dudt e dvdt são
expressões que dependem de u e v. Para além dessas duas
variáveis, as duas expressões podem depender de um conjunto de
parâmetros, com valores numéricos que são dados por meio da
opção parameters
(a sintaxe dessa
opção explica-se mais para a frente), ou com um
intervalo de possíveis valores definidos com a
opção sliders.
Várias outras opções podem incluirem-se dentro do
comando, ou serem seleccionadas no menú. Clicando num ponto do
gráfico faz com que seja desenhada a curva integral que passa por esse
ponto; o mesmo pode ser feito dando as coordenadas do ponto com a
opção trajectory_at
dentro do comando plotdf. A
direcção de integração pode controlar-se
com a opção direction
, que aceita valores de
forward, backward ou both. O número de passos
realizados na integração numérica controla-se com a
opção nsteps
e o incremento do tempo em cada
passo com a opção tstep
. Usa-se o método de
Adams Moulton para fazer a integração numérica;
também é possível mudar para o método de Runge-Kutta
de quarta ordem com ajuste de passos.
Menú da janela do gráfico:
O menú da janela gráfica inclui as seguintes opções: Zoom, que permite mudar o comportamento do rato, de maneira que servirá para fazer zoom na região do gráfico clicando com o botão esquerdo. Cada clic alarga a imagem mantendo no centro dela o ponto onde se clicou. Mantendo carregada a tecla Shift enquanto se faz clic, faz diminuir o tamanho. Para continuar a desenhar trajectórias com um clic, selecciona-se a opção Integrate do menú.
A opção Config do menú pode usar-se para mudar a(s) EDO(S) e fazer alguns outros ajustes. Após ter feito alguma alteração, deverá usar a opção Replot para activar as novas configurações. Se introduzir duas coordenadas no campo Trajectory at do menú de diálogo do Config, e a seguir carregar na tecla Enter, será acrescentada mais uma curva integral. Se seleccionar a opção Replot, só será apresentada a última curva integral seleccionada.
Mantendo o botão direito carregado enquanto se desloca o cursor, poderá arrastar o gráfico na horizontal e na vertical. Outros parâmetros, por exemplo, o número de passos, o valor inicial de t, as coordenadas do centro e o raio, podem ser alterados no sub-menú da opção Config.
Com a opção Save, pode gravar-se o gráfico num ficheiro Postscript.
Opções gráficas:
A função plotdf
admite varias
opções, cada uma sendo uma lista de dois ou mais
elementos. O primeiro elemento é o nome da opção, e o
resto estará formado pelos argumentos para essa opção.
A função plotdf
reconhece as seguintes
opções:
tstep
que se utilizarão na variável independente
para calcular a curva integral.
O valor por omissão é 100.
forward
, para fazer que a variável independente aumente
nsteps
vezes, com incrementos tstep
; backward
, para
fazer que a variável independente diminua; both
, para estender
a curva integral nsteps
passos para a frente e nsteps
passos para atrás. As palavras right
e left
podem ser
usadas como sinónimos de forward
e backward
.
O valor por omissão é both
.
versus_t
qualquer valor diferente de 0,
mostrar-se-á a segunda janela gráfica, que inclui outro menú,
similar ao da janela principal.
O valor por omissão é 0.
nome=valor
separados por vírgulas.
nome=min:max
separados por
vírgulas.
Exemplos:
(%i1) load("plotdf")$ (%i2) plotdf(exp(-x)+y,[trajectory_at,2,-0.1])$ |
(%i3) plotdf(x-y^2,[xfun,"sqrt(x);-sqrt(x)"], [trajectory_at,-1,3], [direction,forward], [y,-5,5], [x,-4,16])$ |
O gráfico também mostra a função y = sqrt(x).
(%i4) plotdf([v,-k*z/m], [z,v], [parameters,"m=2,k=2"], [sliders,"m=1:5"], [trajectory_at,6,0])$ |
(%i5) plotdf([y,-(k*x + c*y + b*x^3)/m], [parameters,"k=-1,m=1.0,c=0,b=1"], [sliders,"k=-2:2,m=-1:1"], [tstep,0.1])$ |
(%i6) plotdf([w,-g*sin(a)/l - b*w/m/l], [a,w], [parameters,"g=9.8,l=0.5,m=0.3,b=0.05"], [trajectory_at,1.05,-9],[tstep,0.01], [a,-10,2], [w,-14,14], [direction,forward], [nsteps,300], [sliders,"m=0.1:1"], [versus_t,1])$ |
[ << ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
This document was generated by Robert Dodier on Maio, 2 2007 using texi2html 1.76.