http://www.math.hut.fi/teaching/v/3/L/L4.html
Päivitetty 18.9.00
Luento 4 osa 2
ti 19.9.
Differentiaaliyhtälöt
Luokitteluja
Tavallinen (ODE) / osittais (PDE)
Esimerkki jälkimmäisestä: Laplacen yhtälö: Nabla2 u = 0.
Käsittelemme tässä tavallisia.
Esimerkkejä ratkaisemisesta arvaamalla sivistyneesti
Esim: Lineaarinen, ei-vakiokertoiminen
> restart:t^2*diff(x(t),t,t)-3*t*diff(x(t),t)+4*x(t)=0;
/ 2 \
2 |d | /d \
t |--- x(t)| - 3 t |-- x(t)| + 4 x(t) = 0
| 2 | \dt /
\dt /
Arvataan (erittäin sivistyneesti), että ratkaisu voisi olla
x(t)=t2ln(t) .
No tutkitaan sivistyksen taso:
> x:=t^2*ln(t);
2
x := t ln(t)
> dx:=diff(x,t);
dx := 2 t ln(t) + t
> d2x:=diff(dx,t);
d2x := 2 ln(t) + 3
> vasen:=t^2*d2x-3*t*dx+4*x;
2 2
vasen := t (2 ln(t) + 3) - 3 t (2 t ln(t) + t) + 4 t ln(t)
> simplify(vasen);
0
Ei hullumpaa!
Suuntakentät
Oma skripti
% Matlab-skripti: suuntak.m
% Kts. myös exasuuntak.m
% HA 18.9.2000
%
clf
h=1;a=-2;b=2;c=-2;d=2; % Muutettavat parametrit
t=a:h:b;x=c:h:d;
f=inline('t.*x','t','x') % Muutettava funktio
[T,X]=meshgrid(t,x);
Z=f(T,X)
flipud(Z) % havainnolistukseen, tosi käytössä kommentti tai puolipiste
plot(T(:),X(:),'x')
hold on
U=ones(size(Z));
normit=sqrt(1+Z.^2);
quiver(T,X,0.5*h*U./normit,0.5*h*Z./normit,0)
axis equal
axis([a-1,b+1,c-1,d+1])
grid
title('x''=tx')
shg
%
% Jos haluat pelkän suuntakentän, lopeta tähän.
%
% Seuraavassa piirretään Matlabin numeerisen ODE-ratkaisijan laskemia
% ratkaisukäyräapproksimaatioita hiirellä valittavaan alkupisteeseen.
%
display('Valitse hiirellä alkupisteitä, lopuksi ENTER grafiikkaikkunassa')
[t,x]=ginput;
for i=1:length(t)
[T,Y]=ode45(f,[t(i),b+0.5],x(i));
plot(T,Y,'r')
[T,Y]=ode45(f,[t(i),a-0.5],x(i));
plot(T,Y,'r')
end;
shg
>> flipud(Z) % havainnollistukseen, tosi käytössä kommentti tai puolipiste
ans =
-4 -2 0 2 4
-2 -1 0 1 2
0 0 0 0 0
2 1 0 -1 -2
4 2 0 -2 -4
Laode-funktio dfield5
Hieno väline, dokumentoitu kirjassa, käytetään paljon.