ti 11.9.Tapahtumat: LAODE, Matlab, nimilista sähkökatko!
Käytiin KRE-kirjasta ss. 2-12
(1) F(x,y,y')=0 (2) y'=f(x,y)Muoto (1) on kaikkein yleisin, useimmiten lähtökohtanamme on muoto (2).
> 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); 0Ei hullumpaa!
% 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) % havainnollistukseen, 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