Use 1//2 instead of ((rat simp) 1 2)
[maxima.git] / doc / info / pt_BR / dynamics.texi
bloba838269e2e0b46d10af55945f1b01356ec626d7d
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /dynamics.texi/1.13/Sat Jun  2 00:13:21 2007//
3 @menu
4 * Introdução a dynamics::
5 * Funções e Variáveis Definidas para dynamics::
6 @end menu
8 @node Introdução a dynamics, Funções e Variáveis Definidas para dynamics, dynamics, dynamics
9 @section Introdução a dynamics
11 O pacote adicional @code{dynamics} inclui muitas
12 funções para criar várias representações gráficas de sistemas
13 dinâmicos discretos e fractais, e uma implementação deo método
14 numérico de Runge-Kutta de quarta ordem para a resolução de sistemas de equações diferenciais.
16 Para usar as funções nesse pacote você deve primeiramente torná-lo disponível para uso com
17 @code{load("dynamics")}.
19 @b{Modificações introduzidas no Maxima 5.12}
21 Iniciando no Maxima 5.12, o pacote dynamics agora utiliza a função
22 @code{plot2d} para monar os gráficos. Os comandos que produzem gráficos
23 (com exceção de @code{julia} e de @code{mandelbrot}) agora aceitam
24 qualquer opção de @code{plot2d}, incluindo a opção que modificam o montante das
25 várias interfaces gráficas, usando diferentes estilos de montagem de gráfico e cores,
26 e representando um ou ambos os eixos em uma escala logarítmica. As antigas
27 opções @var{domain}, @var{pointsize}, @var{xcenter}, @var{xradius},
28 @var{ycenter}, @var{yradius}, @var{xaxislabel} e @var{yaxislabel}
29 não são aceitas nessa nova versão.
31 Todos os programas irão agora aceitar quaisquer nomes de variáveis, e não apenas @var{x}
32 e @var{y} como nas antigas versões. Dois parâmetros requeridos tiveram
33 modificações em dois desses programas: @code{evolution2d} agora requer uma lista
34 nomeando explicitamente as duas variáveis independentes, e o intervalo
35 horizontal para @code{orbits} não mais requer um tamanho de passo; o intervalo
36 pode somente espcificar o nome da variável, e o menor e o maior
37 valores; o número de passos pode agora ser modificado com a opção
38 @var{nticks}.
40 @node Funções e Variáveis Definidas para dynamics,  , Introdução a dynamics, dynamics
41 @section Funções e Variáveis Definidas para dynamics
43 @deffn {Função} chaosgame (@code{[[}@var{x1}, @var{y1}@code{]}...@code{[}@var{xm}, @var{ym}@code{]]}, @code{[}@var{x0}, @var{y0}@code{]}, @var{b}, @var{n}, ...opções...);
45 Implementa o então chamado jogo do caos: o ponto inicial (@var{x0},
46 @var{y0}) é colocado no gráfico e então um dos @var{m} pontos
47 @code{[}@var{x1}, @var{y1}@code{]}...@code{[}@var{xm}, @var{ym}@code{]}
48 será selecionado de forma aleatória. O próximo ponto colocado no gráfico será sobre o
49 segmento que vai do ponto anteriormente colocado no gráfico ao ponto escolhido aleatóriamente, à
50 distância do ponto aleatório que será @var{b} vezes o comprimento daquele
51 segmento. o procedimento é repetido @var{n} vezes.
53 @end deffn
55 @deffn {Função} evolution (@var{F}, @var{y0}, @var{n}, ..., opções, ...);
57 Desenha @var{n+1} pontos em gráfico bidimensional, onde as coordenadas
58 horizontais dos pontos são os inteiros 0, 1, 2, ..., @var{n}, e
59 as coordenadas verticais são os valores correspondentes @var{y(n)} da
60 seq@"{u}ência definida pela relação de recorrência
61 @ifnottex
62 @example
63         y(n+1) = F(y(n))
64 @end example
65 @end ifnottex
66 @tex
67 $$y_{n+1} = F(y_n)$$
68 @end tex
70 com valor inicial @var{y(0)} igual a @var{y0}. @var{F} deve ser uma
71 expressão que depende somente de uma variável (no exemplo, essa variável
72 dependente de @var{y}, mas qualquer outra variável pode ser usada em lugar de @var{y}),
73 @var{y0} deve ser um número real e @var{n} deve ser um inteiro positivo.
75 @end deffn
77 @deffn {Função} evolution2d (@code{[}@var{F}, @var{G}@code{]}, @code{[}@var{u}, @var{v}@code{]}, @code{[}@var{u0}, @var{y0}@code{]}, @var{n}, ..., opções, ...);
79 Mostra, em um gráfico bidimensional, os primeiros @var{n+1} pontos na
80 seq@"{u}ência de pontos definida por meio do sistema dinâmico discreto
81 bidimensional com relações de recorrência
82 @ifnottex
83 @example
84         u(n+1) = F(u(n), v(n))    v(n+1) = G(u(n), v(n))
85 @end example
86 @end ifnottex
87 @tex
88 $$\cases{u_{n+1} = F(u_n, v_n) &\cr v_{n+1} = G(u_n, v_n)}$$
89 @end tex
91 Com valores iniciais @var{u0} e @var{v0}. @var{F} e @var{G} devem ser
92 duas expressões que dependem somente de duas variáveis @var{u} e
93 @var{v}, que devem ser nomeadas explicitamente em uma lista. 
95 @end deffn
97 @deffn {Função} ifs (@code{[}@var{r1}, ..., @var{rm}@code{]}, @code{[}@var{A1}, ..., @var{Am}@code{]}, @code{[[}@var{x1}, @var{y1}@code{]}, ..., @code{[}@var{xm}, @var{ym}@code{]]}, @code{[}@var{x0}, @var{y0}@code{]}, @var{n}, ..., opções, ...);
99 Implemanta o método de Sistemas de Funções iteradas. Esse método é similar
100 ao método descrito na função @code{chaosgame}, mas em lugar de
101 encolher o segmento do ponto corrente ao ponto escolhido
102 aleatóriamente, as duas componentes daquele segmento irão ser multiplicadas pela matrix 2 por 2
103 @var{Ai} que corresponde ao ponto escolhido aleatóriamente.
105 A escolha aleatória de um dos @var{m} pontos de atração pode ser feita com
106 uma distribuição de probabilidade não uniforme definida por meio dos pesos
107 @var{r1},...,@var{rm}. Esses pesos são fornecidos de forma cumulativa; por exemplo se existem 3 pontos com probabilidades 0.2, 0.5 e
108 0.3, os pesos @var{r1}, @var{r2} e @var{r3} podem ser 2, 7 e 10.
110 @end deffn
113 @deffn {Função} rk (EDO, var, inicio, domain)
114 @deffnx {Função} rk ([EDO1,...,EDOm], [v1,...,vm], [inic1,...,inicm], domain)
116 A primeira forma resolve numericamente uma equação diferencial  de primeira
117 ordem, e a segunda formaresolve um sistema de m dessas equações,
118 usando o método de Runge-Kutta de quarta ordem. @code{var} representa a variável
119 dependente. EDO deve ser uma expressão que dependa somente da variável  independente e da
120 variável dependente e defina a derivada da variável
121 dependente com relação à variável independente.
123 A variável independente é especificada com @code{domain}, que deve ser uma
124 lista dde quatro elementos como, por exemplo:
125 @example
126 [t, 0, 10, 0.1]
127 @end example
128 O primeiro elemento da lista identifica a variável independente, o
129 segundo e o terceiro elementos são os valores inicial e final para para aquela
130 variável, e o último elemento escolhe o incremento que pode ser usado
131 dentro daquele intervalo.
133 Se @var{m} equações estão sendo resolvidas, podem existir @var{m}
134 variáveis dependentes @var{v1}, @var{v2}, ..., @var{vm}. Os valores iniciais
135 para aquelas variáveis serão @var{inic1}, @var{inic2}, ..., @var{inicm}.
136 Ainda pode ser apenas uma variável independente definida por @code{domain},
137 como no caso anterior. @var{EDO1}, ..., @var{EDOm} são as expressões
138 que definem as derivadas de cada variável dependente em
139 termos da variável independente. As variáveis que podem aparecer
140 naquelas expressões são a variável independente e quaisquer outras variáveis
141 dependentes. É importante fornecer as derivadas @var{EDO1}, ...,
142 @var{EDOm} na lista exatamente na mesma ordem usada para variáveis
143 dependentes; por exemplo, o terceiro elemento na lista irá ser interpretado
144 com a derivada da terceira variável dependente.
146 O programa tentará integrar as equações a partir do valor inicial
147 da variável independente até seu último valor, usando incrementos
148 constantes. Se em algum passo uma das variáveis dependentes recebe um
149 valor absoluto muito grande, a integração será interrompida naquele
150 ponto. O resultado será uma lista com tamtos elementos quantos forem o número de
151 iterações feitas. Cada elemento na lista de resultado é em si mesmo outra lista
152 comh @var{m}+1 elementos: o valor da variável independente, seguido
153 pelos valores das variáveis dependentes correspondentes àquele ponto.
155 @end deffn
157 @deffn {Função} staircase (@var{F}, @var{y0}, @var{n}, ...opções...);
159 Desenha um diagrama em escada para a seq@"{u}ência definida pela relação de
160 recorrência
161 @ifnottex
162 @example
163         y(n+1) = F(y(n))
164 @end example
165 @end ifnottex
166 @tex
167 $$y_{n+1} = F(y_n)$$
168 @end tex
170 A interpretação e os valores permitidos dos parâmetros de entrada são os
171 mesmos que para a função @code{evolution}. Um diagrama em escada consiste
172 de um gráfico da função @var{F(y)}, juntamente com a linha
173 @var{G(y)} @code{=} @var{y}. Um segmento vertical é desenhado a partir das
174 point (@var{y0}, @var{y0}) on that line until the point where it
175 intersecções com a função @var{F}. A partir daquele ponto um segmento horizontal é
176 desenhado até encontrar o ponto (@var{y1}, @var{y1}) sobre a linha, e
177 o procedimento é repetido @var{n} vezes até que o ponto (@var{yn}, @var{yn})
178 é encontrado.
180 @end deffn
182 @b{opções}
184 Cada opção é uma lista de dois ou mais itens. O primeiro item é o nome
185 da opção, e os restantes compreendem os argumentos para a opção.
187 As opções aceitas pelas funções @code{evolution}, @code{evolution2d},
188 @code{staircase}, @code{orbits}, @code{ifs} e @code{chaosgame} são as mesmas opções para
189 @code{plot2d}. Adicionalmente para aquelas opções, @code{orbits} aceita a
190 opção extra @var{pixels} que escolhe o número máximo de pontos
191 diferentes que irão ser representados na direção vertical.
194 @b{Exemplos}
196 Representação gráfica e diagrama em escada para a seq@"{u}ência:
197 2, cos(2), cos(cos(2)),...
199 @example
200 (%i1) load("dynamics")$
202 (%i2) evolution(cos(y), 2, 11);
204 (%i3) staircase(cos(y), 1, 11, [y, 0, 1.2]);
205 @end example
207 @ifnotinfo
208 @image{@value{figuresfolder}/dynamics1,8cm}
209 @image{@value{figuresfolder}/dynamics2,8cm}
210 @end ifnotinfo
212 Se seu sistema for lento, você deverá reduzir o número de iterações nos
213 seguintes exemplos. E se os pontos parecerem muito pequenos no seu
214 monitor, você pode querer tentar um estilo diferente, tal como
215 @code{[}@var{style},@code{[}@var{points},0.8@code{]]}.
217 Diagrama de órbitas para o mapa quadrático, com um parâmetro @var{a}.
218 @ifnottex
219 @example
220         x(n+1) = a + x(n)^2
221 @end example
222 @end ifnottex
223 @tex
224 $$y_{n+1} = x + y_n^2$$
225 @end tex
227 @example
228 (%i4) orbits(x^2+a, 0, 50, 200, [a, -2, 0.25], [style, dots]);
229 @end example
231 @ifnotinfo
232 @image{@value{figuresfolder}/dynamics3,8cm}
233 @end ifnotinfo
235 Para ampliar a região em torno da bifurcação menor perto de x @code{=} -1.25 use:
236 @example
237 (%i5) orbits(x+y^2, 0, 100, 400, [a,-1,-1.53], [x,-1.6,-0.8],
238              [nticks, 400], [style,dots]);
239 @end example
241 @ifnotinfo
242 @image{@value{figuresfolder}/dynamics4,8cm}
243 @end ifnotinfo
245 Evolução de um sistemma bidimensional que leva a um fractal:
247 @example
248 (%i6) f: 0.6*x*(1+2*x)+0.8*y*(x-1)-y^2-0.9$
250 (%i7) g: 0.1*x*(1-6*x+4*y)+0.1*y*(1+9*y)-0.4$
252 (%i8) evolution2d([f,g], [x,y], [-0.5,0], 50000, [style,dots]);
253 @end example
255 @ifnotinfo
256 @image{@value{figuresfolder}/dynamics5,8cm}
257 @end ifnotinfo
259 E uma ampliação de uma pequena regial naquele fractal:
261 @example
262 (%i9) evolution2d([f,g], [x,y], [-0.5,0], 300000, [x,-0.8,-0.6],
263                   [y,-0.4,-0.2], [style, dots]);
264 @end example
266 @ifnotinfo
267 @image{@value{figuresfolder}/dynamics6,8cm}
268 @end ifnotinfo
270 Um gráfico do triângulo de Sierpinsky, obtido com o jogo do caos:
272 @example
273 (%i9) chaosgame([[0, 0], [1, 0], [0.5, sqrt(3)/2]], [0.1, 0.1], 1/2,
274                  30000, [style, dots]);
275 @end example
277 @ifnotinfo
278 @image{@value{figuresfolder}/dynamics7,8cm}
279 @end ifnotinfo
281 A samambaia de Barnsley, obtida com um Sistema de Funções Iteradas:
283 @example
284 (%i10) a1: matrix([0.85,0.04],[-0.04,0.85])$
286 (%i11) a2: matrix([0.2,-0.26],[0.23,0.22])$
288 (%i12) a3: matrix([-0.15,0.28],[0.26,0.24])$
290 (%i13) a4: matrix([0,0],[0,0.16])$
292 (%i14) p1: [0,1.6]$
294 (%i15) p2: [0,1.6]$
296 (%i16) p3: [0,0.44]$
298 (%i17) p4: [0,0]$
300 (%i18) w: [85,92,99,100]$
302 (%i19) ifs(w, [a1,a2,a3,a4], [p1,p2,p3,p4], [5,0], 50000, [style,dots]);
303 @end example
305 @ifnotinfo
306 @image{@value{figuresfolder}/dynamics8,8cm}
307 @end ifnotinfo
309 Para resolver numericamente a equação diferencial
311 @ifnottex
312 @example
313           dx/dt = t - x^2
314 @end example
315 @end ifnottex
316 @tex
317 $${{dx}\over{dt}} = t - x^2$$ 
318 @end tex
320 Com valor inicial x(t=0) = 1, no intervalo de @code{t} de 0 a 8 e com
321 incrementos de 0.1 para @code{t}, use:
323 @example
324 (%i20) results: rk(t-x^2,x,1,[t,0,8,0.1])$
325 @end example
327 os resultados serão salvos na lista de resultados.
329 Para resolver numericamente o sistema:
331 @ifnottex
332 @example
333         dx/dt = 4-x^2-4*y^2     dy/dt = y^2-x^2+1
334 @end example
335 @end ifnottex
336 @tex
337 $$\cases{{\displaystyle{dx}\over\displaystyle{dt}} = 4-x^2-4y^2 &\cr &\cr {\displaystyle{dy}\over\displaystyle{dt}} = y^2-x^2+1}$$
338 @end tex
340 para @code{t} entre 0 e 4, e com valores de -1.25 e 0.75 para x e y em t=0:
342 @example
343 (%i21) sol: rk([4-x^2-4*y^2,y^2-x^2+1],[x,y],[-1.25,0.75],[t,0,4,0.02])$
344 @end example