| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
| 22.1 Introdução às Equações Diferenciais | ||
| 22.2 Definições para Equações Diferenciais |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Esta secção descreve as funções disponíveis no
Maxima para obter a solução analítica de alguns
tipos específicos de equações diferencias de
primeira e segunda ordem. Para obter a solução numérica dum
sistema de equações diferenciais, consulte o pacote adicional
dynamics. Para obter representações gráficas no
espaço de fase, consulte o pacote adicional plotdf.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Resolve um problema de valores fronteira para uma equação
diferencial de segunda ordem. Aqui: solução é
uma solução geral para a equação,
calculada por ode2; xval1 define o valor da variável
independente, num primeiro ponto, na forma x = x1, e
yval1 define o valor da variável dependente, no mesmo ponto, na
forma y = y1. As expressões xval2 e
yval2 definem os valores das mesmas variáveis, num segundo
ponto, usando a mesma forma.
Veja um exemplo da sua utilização na documentação de
ode2.
A função dsolve resolve sistemas de
equações diferenciais ordinárias lineares usando transformada de
Laplace. Aqui as expressões eqn são equações
diferenciais nas variáveis dependentes x_1, ..., x_n. A
relação funcional de x_1, ..., x_n na variável
independente deve ser indicada explicitamente nas variáveis e nas suas
derivadas. Por exemplo, esta forma de definir as equações não
seria correcta:
eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x); eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
A forma correcta seria:
eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x); eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
Assim, a chamada à função desolve seria:
desolve([eqn_1, eqn_2], [f(x),g(x)]);
Se as condições iniciais em x=0 forem conhecidas, poderão
ser fornecidas antes de usar desolve, através de
atvalue.
(%i1) 'diff(f(x),x)='diff(g(x),x)+sin(x);
d d
(%o1) -- (f(x)) = -- (g(x)) + sin(x)
dx dx
(%i2) 'diff(g(x),x,2)='diff(f(x),x)-cos(x);
2
d d
(%o2) --- (g(x)) = -- (f(x)) - cos(x)
2 dx
dx
(%i3) atvalue('diff(g(x),x),x=0,a);
(%o3) a
(%i4) atvalue(f(x),x=0,1);
(%o4) 1
(%i5) desolve([%o1,%o2],[f(x),g(x)]);
x
(%o5) [f(x) = a %e - a + 1, g(x) =
x
cos(x) + a %e - a + g(0) - 1]
(%i6) [%o1,%o2],%o5,diff;
x x x x
(%o6) [a %e = a %e , a %e - cos(x) = a %e - cos(x)]
Se desolve não pode obter uma solução, retorna false.
Resolve problemas de valor inicial para equações diferenciais de
primeira ordem. Aqui solução é uma solução geral
para a equação, na forma dada por ode2, xval dá um
valor inicial para a variável independente, na forma x =
x0, e yval dá o valor inicial para a variável
dependente, na forma y = y0.
Veja um exemplo da sua utilização na documentação de
ode2.
Resolve problemas de valores iniciais para equações diferenciais
de segunda ordem. Aqui solução é uma solução geral
para a equação, na forma dada por ode2, xval dá um
valor inicial para a variável independente, na forma x =
x0, yval dá o valor inicial para a variável dependente,
na forma y = y0 e dval dá o valor inicial
para a primeira derivada da variável dependente, em função da
variável independente, na forma diff(y,x) =
dy0 (diff não tem que ser precedido por apóstrofo).
Veja um exemplo da sua utilização na documentação de
ode2.
A função ode2 resolve uma equação diferencial
ordinária (EDO) de primeira ou de segunda ordem. Precisa de três
argumentos: uma EDO dada por eqn, a variável dependente
dvar, e a variável independente ivar. Quando conseguir,
retorna uma solução para a variável dependente, na forma
explícita ou implícita. %c é usado
para representar a constante de integração no caso de
equações de primeira ordem, e %k1 e %k2 as
constantes para equações de segunda ordem. A dependência da
variável dependente na variável independente não tem que ser
escrita em forma explícita, como no caso de
desolve, mas a variável independente deverá ser indicada
sempre no terceiro argumento.
Se por alguma razão ode2 não conseguir encontrar a
solução, retornará false, após talvez mostrar uma
mensagem de erro. Os métodos implementados para equações
diferenciais de primeira ordem, na ordem em que serão testados, são:
linear, separável, exacta - talvez requerendo um factor de
integração, homogénea, equação de Bernoulli, homogénea
generalizada. Os tipos de equações de segunda ordem que podem ser
resolvidas são: coeficientes constantes, exactas, linear homogéneas
com coeficientes não-constantes que possam ser transformados para
constates, equação de Euler ou equi-dimensional, equações que
possam ser resolvidas pelo método de variação dos parâmetros,
e equações que não dependam ou da variável independente ou da
variável dependente de modo que possam ser reduzidas a duas
equações lineares de primeira ordem a serem resolvidas
sequêncialmente.
Durante o processo de resolução da EDO, serão dados valores a
várias variáveis locais, com fins puramente informativos:
método denota o método de solução usado (por exemplo,
linear), intfactor denota qualquer factor integrante
utilizado, odeindex denota o índice para o método
de Bernoulli ou para o método homogéneo generalizado, e yp
denota a solução particular no método de variação dos
parâmetros.
Para resolver problemas de valores iniciais (PVI) estão
disponíveis as funções ic1 e ic2e, para
equações de primeira e segunda ordem, e para resolver problemas de
valores fronteira (PVF) de segunda ordem pode usar-se a função
bc2.
Exemplo:
(%i1) x^2*'diff(y,x) + 3*y*x = sin(x)/x;
2 dy sin(x)
(%o1) x -- + 3 x y = ------
dx x
(%i2) ode2(%,y,x);
%c - cos(x)
(%o2) y = -----------
3
x
(%i3) ic1(%o2,x=%pi,y=0);
cos(x) + 1
(%o3) y = - ----------
3
x
(%i4) 'diff(y,x,2) + y*'diff(y,x)^3 = 0;
2
d y dy 3
(%o4) --- + y (--) = 0
2 dx
dx
(%i5) ode2(%,y,x);
3
y + 6 %k1 y
(%o5) ------------ = x + %k2
6
(%i6) ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));
3
2 y - 3 y
(%o6) - ---------- = x
6
(%i7) bc2(%o5,x=0,y=1,x=1,y=3);
3
y - 10 y 3
(%o7) --------- = x - -
6 2
| [ << ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
This document was generated by Viktor T. Toth on Janeiro, 22 2019 using texi2html 1.76.