(HY) Y' = A Y
Käytetään isoa Y:tä vektoria merkitsemään.
Jospa hetkiseksi merkittäisiin ratkaistavia funktioita x(t):llä ja y(t):llä,
eli
[x(t)]
Y(t) = [ ]
[y(t)]
Trajektoriksi sanotaan xy-tason käyrää, joka koostuu pisteistä
(x(t),y(t)), missä t on käyräparametrina.
Voidaan ajatella, että piirros esittää y:tä x:n funktiona. Erityisesti, jos kyse on fysikaalisesta systeemistä, kuten jousi-massa- systeemistä, niin piirros esittää nopeutta paikan funktiona. Tästä nimitys "faasitaso".
Ratkaisukäyrät voidaan tietysti piirtää myös aikatasoon.
Yksinkertaisin havainnollistus lienee ajatella tilannetta, jossa ratkaisut ovat x(t)=cos t, y(t)=sin t .
Faasikuva on yksikköympyrä t -> (cos t, sin t) ja "aikakuvassa"
ovat cos- ja sin-käyrät.
Matlab-istunto, jonka voit tästä leikata/liimata.
t=linspace(0,2*pi);
x=cos(t);y=sin(t);
plot(t,x,'r',t,y,'b'); grid;title('Aikakuva');shg
figure(2)
plot(x,y); grid;title('Faasitaso');axis equal;shg
Kun käyrä on annettu parametrimuodossa X(t)=(x(t),y(t)), niin käyrän
tangenttivektori parametrin t=t[0] määräämässä pisteessä X[0]=(x(t[0],y(t[0]))
saadaan derivoimalla vektorifunktio X, ts. tangenttivektori on vektorin
X'(t[0])=(x'(t[0]),y'(t[0])) suuntainen.
Siispä pisteen X[0]=(x[0],y[0]) kautta kulkevan trajektorin suunta on A X[0], koska kerran X' = A X.
(Trajektori)suuntakenttä voidaan siten muodostaa laskemalla X[0]=(x[0],y[0])- pisteissä v= A X[0] ja piirtämällä pisteestä X[0] alkava v:n suuntainen pikkunuoli kuvaan. Tällaista työtä tekee pplane5 . Siinä kannattaa valita "gallery", josta "linear". Käyttö on hyvin helppoa. Tämän jälkeen lienee ymärrettävissä, mitä nuo kauniit kuvat tarkoittavat. (Jos ei, niin asia kristallisoituu viimeistään huomisella luennolla.)
y1'=f1(y1,y2) y2'=f2(y1,y2)Tällöinhän trajektorin suunta määräytyy yksinomaan paikan (x[0],y[0]) perusteella. Ei-autonomisessa tapauksessa pitäisi tarkastella (t,y1,y2)-faasiavaruutta, jota on aika paljon vaikeampi tulkita. Tällöin on parasta tyytyä piirtelemään ratkaisukäyriä aikakuvaan.
format compact; format rational A=[-3 1;1 -3] [V,D]=eig(A); lam=diag(D) V=V/V(1,1) % jaetaan "normaaraus pois", saadaan mukavampia lukuja.
>> A=[-3 1;1 -3]
A =
-3 1
1 -3
>> [V,D]=eig(A);
>> lam=diag(D)
lam =
-4
-2
>> V=V/V(1,1)
V =
1 1
-1 1
Lasketaan ratkaisut sopivassa t-pistejoukossa (tässä 100 pistettä)
ja piirretään eri vakioiden C1 ja C2 arvoilla.
Näitä voi sitten säädellä tilanteen mukaan.
t=linspace(0,10); % Kokeile sopivaa, usein voi jokin exp-muoto olla parempi.
y1=V(:,1)*exp(lam(1)*t); % Huomaathan ulkotulon kätevyyden
y2=V(:,2)*exp(lam(2)*t); % ... pysty * vaaka .
varit=['rb']
vari=0
figure(1);clf;hold on
for C1=-6:2:6
disp('Paina ENTER:iä')
pause % Pysähdytään ulkoluupissa.
vari=mod(vari+1,2); % Leikitään vähän: vaihdetaan ulkoluupissa väri
% sinisen ja punaisen välillä.
for C2=-10:2:10
y=C1*y1+C2*y2;
title('Faasikuva')
hold on
plot(y(1,:),y(2,:),varit(vari+1))
end
end
figure(2);clf;hold on
for C1=-6:2:6
disp('Paina ENTER:iä')
pause
for C2=-10:2:10
y=C1*y1+C2*y2;
title('Aikakuva')
hold on
plot(t,y(1,:),'r',t,y(2,:),'b')
end
end
grid;shg
