Tentti 31.3.2007
Alustukset
| > | restart: |
| > | with(LinearAlgebra):with(linalg):alias(Inv=MatrixInverse,Diag=DiagonalMatrix,Det=Determinant,Id=IdentityMatrix,ref=GaussianElimination,rref=ReducedRowEchelonForm): |
Warning, the name GramSchmidt has been rebound
Warning, the protected names norm and trace have been redefined and unprotected
| > |
1.
| > | A:=<<0,1,4>|<1,0,-3>|<2,3,8>>; |
| > |
Katsotaan ensin tulos ja periaate valmiista Maple-funktiota käyttäen.
| > | <A | Id(3)>,rref(<A|Id(3)>); # A:n viereen 3 x 3-yksikkömatriisi ja rref koko höskälle käyttäen Maplen valmista rref-funktiota |
Koska vasemmalle saadaan yksikkömatriisi, ts. kaikki sarakkeet ovat tukisarakkeita, on käänteismatriisi olemassa ja se koostuu yllä olevista
kolmesta viimeisestä rivistä.
Tehdään laskut nyt vaiheittain (Maplella käsinlaskua simuloiden):
| > | AE:=<A | Id(3)>; |
| > | AE:=Matrix(swaprow(AE,1,2)); # Vaihdetaan 1. ja 2. rivi |
| > | AE[3,1..-1]:=AE[3,1..-1]-4*AE[1,1..-1]: AE; # rivi3:=-4*rivi1+rivi3 |
| > | AE[3,1..-1]:=AE[3,1..-1]+3*AE[2,1..-1]:AE; # rivi3:=3*rivi2+rivi3 |
Tästä nähdään, että A:n kaikki sarakkeet ovat tukisarakkeita ja niin ollen käänteismatriisi on olemassa.
| > | AE[3,1..-1]:=AE[3,1..-1]/2:AE; # Skaalataan alin tukialkio 1:ksi. |
Alhaalta ylös:
| > | AE[2,1..-1]:=AE[2,1..-1]-2*AE[3,1..-1]:AE; # rivi2:=-3*rivi3+rivi2 |
| > | AE[1,1..-1]:=AE[1,1..-1]-3*AE[3,1..-1]:AE; # rivi1:=-3*rivi3+rivi1 |
Päästiin siten samaan tulokseen kuin yllä valmiilla rref-funktiolla ja käänteismatriisi on siten
| > |
Huomioita: Tässä ei todellakaan tarvitse laskea yhtään determinanttia, johtopäätös tulee suoraan laskenta-algoritmista.
Teoriassa voisi esiintyä ratkaisu, jossa johtopäätös olemassaolosta tehdään determinantista. Kyllä sekin hyväksytään, vaikka
onkin hiukan "huonoa makua" osoittava.
2
| > | A:=<<5,0,0,0>|<-2,3,0,0>|<6,c,5,0>|<-1,0,4,1>>; |
Koska kyseessä on yläkolmiomatriisi, ovat ominaisarvot matriisin diagonaalialkiot. Jos et sattuisi tätä muistamaan, saat sen suoraan kehittämällä
n (alideterminantteineen) ensimmäisen sarakkeen mukaan.
| > |
| > |
Matriisi (n x n) on diagonalisoituva, jos sillä on n LRT ominaisvektoria, mikä on yhtäpitävää sen kanssa, että kunkin ominaisrvon algebrallinen ja
geometrinen kertaluku yhtyvät. Tässä tapauksessa näin on jos ja vain jos ominaisarvon
geometrinen kertaluku yhtyy algebralliseen = 2
Toisin sanoen, laskettava ominaisarvoa
vastaavat ominaisvektorit ja järjestettävä parametrin c avulla tilanne sellaiseksi, että saadaan
2 LRT ominaisvektoria.
| > | (lam,V):=Eigenvectors(A); |
| > | eigenvectors(A); |
![]()
Kumpikaan ei ota huomioon mahdollisuutta: c=6, poikkeusarvot on aina ja kaikkialla käsiteltävä erikseen.
| > |
| > | A-5*Id(4); # A - 5*I |
| > |
Ominaisvektoriyhtälö on siis
. Merkitään B :llä M5:n kanssa riviekvivalenttia matriisia, joka syntyy rivioperaatioilla.
(Olkoon B yleisnimi tällaisille.)
| > |
| > |
Seuraava rivioperaatio riippuu siitä, onko
vai ei. Selvyyden vuoksi nollataan ensin alin rivi:
| > |
Jos c ei ole 6, on systeemin matriisilla 3 tukialkiota (-2,c-6,4) ja siis yksi vapaa parametri, ja siis 1-ulotteinen ominaisavaruus.
Jos c=6, on tukialkioita vain 2 (-2 ja 1), joten vapaita parametreja on 2 ja siten ominaisavaruus on 2-ulotteinen.
Siis matriisi on diagonalisoituva, jos ja vain jos c=6.
Voidaan viedä selvyyden vuoksi loppuun saakka : c=6, lisätään -4*rivi2 kolmanteen riviin:
| > |
Tukialkiot sarakkeissa 2 ja 4, vapaat muuttujat sarakkeissa 1 ja 3.
| > |
3.
| > | restart: with(LinearAlgebra): with(linalg): with(plots): |
Warning, the name GramSchmidt has been rebound
Warning, the protected names norm and trace have been redefined and unprotected
Warning, the name changecoords has been redefined
| > | A:=<<-2,-5>|<1,4>>; |
Aloitetaan laskemalla ominaisarvot ja -vektorit. Sitä laskua en enää näytä, kaikkihan sen osaavat!
Antaa Maplen laskea valmiilla funktiolla:
| > | (lambda,ov):=Eigenvectors(A); |
Siis ominaisarvot ovat -1 ja 3 ja vastaavat ominaisvektorit ovat ov-matriisin sarakkeet:
| > | v1:=ov[1..-1,1]; v2:=ov[1..-1,2]; |
| > |
Yleinen ratkaisu:
| > | y:=t->C1*exp(lambda[1]*t)*v1+C2*exp(lambda[2]*t)*v2; |
| > |
Alkuarvotehtävä:
| > | y(0)=<1,3>; |
| > | LinearSolve(ov,<1,3>); # Ratkaistaan vakiot C1 ja C2: |
| > | ya:=unapply(subs(C1=1/2,C2=5/2,y(t)),t): # Maple-tekniikkaa, ei tarvitse lukea. |
| > | ya(t); # Alkuarvotehtävän ratkaisu koordinaattimuodossa: |
| > |
| > | Ya:=ya(t): |
| > |
| > | plot([Ya[1],Ya[2],t=-2..2],view=[0..5,0..5]); |
| > | AAratkuva:=%: |
| > | Ys:=map(eval,subs(t=log(s),y(t))); |
| > | YY:=evalm(Ys); |
| > | #YYa:=subs(C1=1/2,C2=1/2,op(YY)); |
| > | #YYa; |
| > | parvi:=seq(seq([YY[1],YY[2],s=0..4],C2=-2..2),C1=-2..2): |
| > |
| > | parvikuva:=plot([parvi]): |
| > | display(parvikuva,AAratkuva,plot([[1,3]],style=point,symbol=circle,symbolsize=17),arrow([v1,v2]),view=[-5..5,-5..5]); |
| > | kuva:=%: |
| > | with(DEtools): |
Warning, the previous bindings of the names RationalCanonicalForm and adjoint have been removed and they now have an assigned value
| > | DEplot([D(y1)(t)=-2*y1(t)+y2(t),D(y2)(t)=-5*y1(t)+4*y2(t)],
[y1(t),y2(t)],t=-5..2,y1=-5..5,y2=-5..5,color=grey): |
| > | display(kuva,%,title="Satula"); |
| > |
Selityksiä:
Yleinen ratkaisu:
missä
| > | 'v1'=v1, 'v2'=v2; |
| > |
Ominaisvektorilla
(C2=0) kuljetaan O:a kohti (
) ja ominaisvektorilla v[2] (C1=0) O:sta poispäin (
).
Kyseessä on satulapiste, joka on epästabiili (jo pelkästään ominaisvektorikäytös kertoo sen).
Suuntakenttänuolet annetuissa pisteissä lasketaan yksinkertaisesti näin:
| > | p1:=<1,0>; s1:=A.p1: s1:=s1/10;#arrow([p1],[s1/10]); |
| > |
| > |
| > |
| > |
Piirrettiin kuhunkin annettuun pisteeseen p derivaatan suuntainen nuoli s, joka saadaan kertomalla
, kun kerran y'=A p. Normeerataan tässä jakamalla 10:llä.
| > |
| > |
4.
| > |
Kriittiset pisteet: Ratkaistaan yhtälöryhmä: "oikeat puolet = 0", ts.
| > | yhtaloryhma:={200*x-4*x*y=0,-150*y+2*x*y=0}; |
| > | solve(yhtaloryhma,{x,y}); |
Käsin laskien:
nähdään välittömästi ratkaisuksi (sukupuuttoratkaisu). Jos x ei ole 0, saadaan 1. yhtälöstä:
ja sitten toisesta
.
Muita mahdollisuuksia ei ole.
| > | krp:=<75,50>; # Hengissä säilymisen kriittinen piste |
| > |
Linearisointi:
| > | f:=200*x-4*x*y;g:=-150*y+2*x*y; |
| > | J:=Matrix(jacobian([f,g],[x,y])); # Jacobin matriisi |
| > | A:=subs(x=75,y=50,J); # Sijoitetaan kriittinen piste |
| > | Eigenvalues(A); |
Puhtaasti imaginaariset ominaisarvot, KRP:n tyyppi on siten keskus ja siis stabiili.
Huom: Keskuksen tapauksessa linearisoidun systeemin (O:n) tyyppi ei välttämättä kerro alkuperäisen systeemin (KRP:n) tyyppiä.
Tässä tapauksessa se on sama, mutta sitä ei tehtävässä pyydetty pohtimaan (keinoja siihen ei kurssilla ole edes opetettu).
| > |
5.
Tehtävä on periaatteessa samanlainen kuin kahdessa edellisessä tentissä. Nyt on alkuarvofunktio määritelty paloittain kahdessa osassa.
Se on tehty edelleenkin mahdollisimman humaanisti integrointivaivoja säästäen.
Älä välitä ylimääräisistä Maple-komennoista. (Vaikka ovat punaisella, niin älä sinä ala nähdä punaista!)
| > |
| > | with(plots):setoptions3d(orientation=[-30,50],axes=box): |
Warning, the name changecoords has been redefined
| > | read("c:/usr/heikki/numsym05/maple/ns05.mpl"); |
Ratkaisun muoto on annettu.
Jotta alkuehto toteutuisi, on
- kertoimet valittava alkuehtofunktion f sinisarjan kertoimiksi:
.
Tarvitsemme siis sinisarjaa.
| > | bn:=(2/L)*int(f(x)*sin(n*Pi*x/L),x=0..L); |
| > | bn := (2/10)*(Int(100*sin(n*Pi*x/10),x=0..5)+Int(O*sin(n*Pi*x/10),x=5..10)); |
| > |
| > |
![]()
![]()
![]()
| > | seq(-1+cos((n*Pi)/2),n=1..10); |
Kertoimet ovat siis muotoa:
| > |
Muodostetaan yleinen n:s osasumma:
| > | lambda:=n-> n*Pi/10; summaf:=(x,t,N)-> sum(B[n]*sin((n*Pi*x)/10)*exp(-lambda(n)^2*t),n=1..N); |
Kysytty 3:n termin summa on siis:
| > |

| > | plot3d(summaf(x,t,3),x=0..10,t=0..20,title="n=3");plot3d(summaf(x,t,20),x=0..10,t=0..20,title="n=20");plot3d(summaf(x,t,40),x=0..10,t=0..20,title="n=40"); |
Huomataan, että n=3 on varsin karkea alkuapproksimaatio, n=20 näyttää Gibbsin ilmiön hyvin selvästi. Toki Gibbsin ilmiö esiintyy isommillakin,
mutta kokonaisuus näkyy sileämpänä isommalla n:n arvolla. (Gibbs-piikit ovat hyvin lähellä epäjatkuvuuskohtia, eikä 3D-grafiikka välttmättä näytä
niitä.) Kun aikaa kuluu, niin ratkaisu siliää varsin nopeasti, johtuen exp-termeistä.
| > |
| > |
| > |