Luento 16
23.10.2001 HA
Warning, the name changecoords has been redefined
Esimerkki kompleksisista ominaisarvoista
> restart: with(linalg): with(LinearAlgebra):
Warning, the name changecoords has been redefined
Warning, the protected names norm and trace have been redefined and unprotected
Warning, the assigned name GramSchmidt now has a global binding
> A:=<<-1,2>|<-5,-3>>;
> eigenvectors(A);
> om:=Eigenvectors(A);
> lambda:=(om[1])[1];w:=Column(om[2],1);
> alpha:=Re(lambda);beta:=Im(lambda);
> u:=map(Re,w);v:=map(Im,w);
Yleinen ratkaisukaava:
> y:=exp(alpha*t)*((a*cos(beta*t)+b*sin(beta*t))*u+(b*cos(beta*t)-a*sin(beta*t))*v);
> yy:=evalm(%);
> matrix(2,1,yy): Y:=convert(%,Matrix);
> A.Y;
> map(simplify,%);
> opp:=%:
> vp:=map(diff,Y,t):vp:=map(simplify,%);
> vp-opp;
Siis yleinen ratkaisu on oikein.
Alkuehto:
> subs(t=0,Y)=<1,1>;
> C:=<<1/2|3/2>,<1|0>>;b:=<1,1>;
> LinearSolve(C,b);
> y:=subs(a=%[1],b=%[2],y);
> yy:=evalm(%);
Tarkistetaan vielä AE (derivointitarkistus jo suoritettiin).
> subs(t=0,op(yy));map(eval,%);
> subs(t=0,y);map(eval,%);
Jälkimmäisessä ei tarvittu op :ia.
Katsotaan dsolvella:
> dys:=diff(y1(t),t)=-y1(t)-5*y2(t),diff(y2(t),t)=2*y1(t)-3*y2(t);
> AE:=y1(0)=1,y2(0)=1;
> ratk:=dsolve({dys,AE},{y1(t),y2(t)});
> Y1:=subs(ratk,y1(t));Y2:=simplify(subs(ratk,y2(t)));
> op(yy);
Kyllä saatiin samat