Harj. 4 Av ratkaisuja

V3 10.10.2000

Teht. 1

> restart:with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

> A:=matrix([[cos(Theta),-sin(Theta)],[sin(Theta),cos(Theta)]]);

A := matrix([[cos(Theta), -sin(Theta)], [sin(Theta)...

> eigenvectors(A);

Error, (in eigenvectors) eigenvects only works for a matrix of rationals, rational functions, algebraic numbers, or algebraic functions at present

> id:=diag(1,1);

id := matrix([[1, 0], [0, 1]])

> p:=det(A-lambda*id);

p := cos(Theta)^2-2*cos(Theta)*lambda+lambda^2+sin(...

> solve(p=0,lambda);map(simplify,[%],{cos(Theta)^2=1-sin(Theta)^2});

cos(Theta)+sqrt(cos(Theta)^2-1), cos(Theta)-sqrt(co...

[cos(Theta)+sqrt(-sin(Theta)^2), cos(Theta)-sqrt(-s...

> lambda:=cos(Theta)+I*sin(Theta);

lambda := cos(Theta)+I*sin(Theta)

> Cmat:=evalm(A-lambda*id);gausselim(%);

Cmat := matrix([[-I*sin(Theta), -sin(Theta)], [sin(...

matrix([[sin(Theta), -I*sin(Theta)], [0, 0]])

> v1:=vector([I,1]);v2:=map(conjugate,v1);

v1 := vector([I, 1])

v2 := vector([-I, 1])

Teht. 2

> restart: with(linalg):

Warning, the protected names norm and trace have been redefined and unprotected

a)

> A:=matrix([[2,-3],[0,0]]);

A := matrix([[2, -3], [0, 0]])

> Cmat:=A-lambda*diag(1,1); p:=det(Cmat);

Cmat := A-lambda*matrix([[1, 0], [0, 1]])

p := -(2-lambda)*lambda

Kaksi erillistä reaalista ominaisarvoa, joten 2 LRT om. vektoria. Siten matriisi on diagva.

> Cmatit:=[subs(lambda=0,evalm(Cmat)),subs(lambda=2,evalm(Cmat))];

Cmatit := [matrix([[2, -3], [0, 0]]), matrix([[0, -...

> map(gaussjord,Cmatit);

[matrix([[1, -3/2], [0, 0]]), matrix([[0, 1], [0, 0...

> v0:=vector([3/2,1]);v2:=vector([1,0]);

v0 := vector([3/2, 1])

v2 := vector([1, 0])

> T:=augment(v0,v2);DD:=diag(0,2);TI:=inverse(T);
# Huom! D ei sovellu nimeksi, se on (derivaatalle) varattu nimi.

T := matrix([[3/2, 1], [1, 0]])

DD := matrix([[0, 0], [0, 2]])

TI := matrix([[0, 1], [1, -3/2]])

Tarkistus: Pannaan rinnakkain: Samathan siitä tulee.

> evalm(T&*DD&*TI),op(A);

matrix([[2, -3], [0, 0]]), matrix([[2, -3], [0, 0]]...

b)

> A:=matrix([[2,4],[-1,-2]]);eigenvectors(A);

A := matrix([[2, 4], [-1, -2]])

[0, 2, {vector([-2, 1])}]

Kaksinkert. ominaisarvo 0, vastaava ominaisavaruus vain 1-ulotteinen. Ts. matriisilla

ei ole kahta LRT ominaisvektoria, joten se ei diagonalisoidu.

Lasketaan vielä "käsin".

> restart: with(linalg):A:=matrix([[2,4],[-1,-2]]);

Warning, the protected names norm and trace have been redefined and unprotected

A := matrix([[2, 4], [-1, -2]])

> Cmat:=evalm(A-lambda*(diag(1,1))); p:=det(Cmat);

Cmat := matrix([[2-lambda, 4], [-1, -2-lambda]])

p := lambda^2

Siis lambda = 0 on kaksinkertainen ominaisarvo. Tutkitaan ominaisavaruuden domensiota, eli määrätään ominaisvektorit:

> Cmat:=subs(lambda=0,op(Cmat));gaussjord(Cmat);

Cmat := matrix([[2, 4], [-1, -2]])

matrix([[1, 2], [0, 0]])

Saadaan vain yksi LRT ominaisvektori [2,-1].

Teht. 3

> with(LinearAlgebra):

Warning, the assigned name GramSchmidt now has a global binding

> A:=Matrix([[2,10],[-1,4]]);

A := _rtable[540917900]

> omsys:=Eigenvectors(A);

omsys := _rtable[540576420], _rtable[540532012]

> omvekt:=omsys[2];

> oma:=omsys[1];

omvekt := _rtable[540532012]

oma := _rtable[540576420]

> w:=Column(omvekt,1);

w := _rtable[539971544]

> lambda:=oma[1];

lambda := 3+3*I

> alpha:=Re(lambda);beta:=Im(lambda);

alpha := 3

beta := 3

> u:=map(Re,w);v:=map(Im,w);

u := _rtable[540095656]

v := _rtable[540095696]

> uv:=<u | v>;

uv := _rtable[540391536]

> X:=uv.Transpose(<exp(alpha*t)*(a*cos(beta*t)+b*sin(beta*t))|exp(alpha*t)*(b*cos(beta*t)-a*sin(beta*t))>);

X := _rtable[540086748]

>

>

> AEa:={subs(t=0,X[1])=1,subs(t=0,X[2])=0};
AEb:={subs(t=0,X[1])=0,subs(t=0,X[2])=1};

AEa := {exp(0)*(a*cos(0)+b*sin(0))-3*exp(0)*(b*cos(...
AEa := {exp(0)*(a*cos(0)+b*sin(0))-3*exp(0)*(b*cos(...

AEb := {exp(0)*(a*cos(0)+b*sin(0)) = 1, exp(0)*(a*c...
AEb := {exp(0)*(a*cos(0)+b*sin(0)) = 1, exp(0)*(a*c...

> kerta:=solve(AEa,{a,b});kertb:=solve(AEb,{a,b});

kerta := {a = 0, b = -1/3}

kertb := {b = 1/3, a = 1}

> Xa:=subs(kerta,X);Xb:=subs(kertb,X);

Xa := _rtable[540889732]

Xb := _rtable[540873948]

> plot([Xa[1],Xa[2],t=-3..0.5],x=-5..2,y=-1..1);plot([Xa[1],Xa[2]],t=-3..0.5);

[Maple Plot]

[Maple Plot]

> plot([Xb[1],Xb[2],t=-3..2],x=-1.2..0.3,y=-0.2..1.5);plot([Xb[1],Xb[2]],t=-3..2,xy=-2..2);

[Maple Plot]

[Maple Plot]

>

Ominaisarvot/vektorit käsinlaskutyylillä

> restart:with(linalg):A:=matrix([[2,10],[-1,4]]);

Warning, the protected names norm and trace have been redefined and unprotected

A := matrix([[2, 10], [-1, 4]])

Kompleksisten ominaisarvojen tapauksessa rarkaisu on

> X:=exp(alpha*t)*(a*cos(beta*t)+b*sin(beta*t))*u+exp(alpha*t)*(b*cos(beta*t)-a*sin(beta*t))*v;

X := exp(alpha*t)*(a*cos(beta*t)+b*sin(beta*t))*u+e...

> p:=det(A-lambda*diag(1,1));

p := 18-6*lambda+lambda^2

> lambda:='lambda':lam:=solve(p=0,lambda);lambda:=lam[1];alpha:=Re(lambda);beta:=Im(lambda);

lam := 3+3*I, 3-3*I

lambda := 3+3*I

alpha := 3

beta := 3

> Cmat:=evalm(A-lambda*diag(1,1));gaussjord(Cmat);

Cmat := matrix([[-1-3*I, 10], [-1, 1-3*I]])

matrix([[1, -1+3*I], [0, 0]])

> w:=vector([1-3*I,1]);u:=map(Re,w);v:=map(Im,w);

w := vector([1-3*I, 1])

u := vector([1, 1])

v := vector([-3, 0])

> uv:=augment(u,v);

uv := matrix([[1, -3], [1, 0]])

a)

> ab:=linsolve(uv,vector([1,0]));

ab := vector([0, -1/3])

> Xa:=subs(a=aba[1],b=aba[2],X);
evalm(Xa);

Xa := exp(3*t)*(aba[1]*cos(3*t)+aba[2]*sin(3*t))*u+...

vector([exp(3*t)*(aba[1]*cos(3*t)+aba[2]*sin(3*t))-...
vector([exp(3*t)*(aba[1]*cos(3*t)+aba[2]*sin(3*t))-...

b)

> ab:=linsolve(uv,vector([0,1]));

ab := vector([1, 1/3])

> Xb:=subs(a=ab[1],b=ab[2],X);
evalm(Xb);map(simplify,%);

Xb := exp(3*t)*(cos(3*t)+1/3*sin(3*t))*u+exp(3*t)*(...

vector([exp(3*t)*(cos(3*t)+1/3*sin(3*t))-3*exp(3*t)...
vector([exp(3*t)*(cos(3*t)+1/3*sin(3*t))-3*exp(3*t)...

vector([10/3*exp(3*t)*sin(3*t), 1/3*exp(3*t)*(3*cos...

dsolve-"nappia painamalla"

> restart:dys:=diff(x(t),t)=2*x(t)+10*y(t),diff(y(t),t)=-x(t)+4*y(t);

dys := diff(x(t),t) = 2*x(t)+10*y(t), diff(y(t),t) ...

> xa:=dsolve({dys,x(0)=1,y(0)=0},{x(t),y(t)});

xa := {x(t) = exp(3*t)*(-1/3*sin(3*t)+cos(3*t)), y(...

> xb:=dsolve({dys,x(0)=0,y(0)=1},{x(t),y(t)});

xb := {x(t) = 10/3*exp(3*t)*sin(3*t), y(t) = 1/10*e...

Teht. 4

> restart:with(LinearAlgebra):

> A:=Matrix([[-2/25,1/50],[2/25,-2/25]]);

A := _rtable[539598732]

> esys:=Eigenvectors(A);

esys := _rtable[540052828], _rtable[540066596]

> lambda:=esys[1];V:=esys[2];

lambda := _rtable[540052828]

V := _rtable[540066596]

> X:=C1*exp(lambda[1]*t)*Column(V,1)+C2*exp(lambda[2]*t)*Column(V,2);

X := C1*exp(-1/25*t)*_rtable[539860108]+C2*exp(-3/2...

> xy:=evalm(%);

xy := vector([C1*exp(-1/25*t)+C2*exp(-3/25*t), 2*C1...

> AE:=subs(t=0,xy[1])=25,subs(t=0,xy[2])=0;

AE := C1*exp(0)+C2*exp(0) = 25, 2*C1*exp(0)-2*C2*ex...

> Ceet:=solve({AE},{C1,C2});

Ceet := {C1 = 25/2, C2 = 25/2}

> xy:=subs(Ceet,op(xy));

xy := vector([25/2*exp(-1/25*t)+25/2*exp(-3/25*t), ...

> x:=xy[1];y:=xy[2];

x := 25/2*exp(-1/25*t)+25/2*exp(-3/25*t)

y := 25*exp(-1/25*t)-25*exp(-3/25*t)

> plot([x,y],t=0..100);

[Maple Plot]

> solve(x=y,t);evalf(%);

25/2*ln(3)

13.73265361

> plot([x,y,t=0..100]);

[Maple Plot]

>

Katsotaan, miten pannaan pakettiin dsolvella

> restart:dys:=diff(x(t),t)=-2/25*x(t)+1/50*y(t),diff(y(t),t)=2/25*x(t)-2/25*y(t);

dys := diff(x(t),t) = -2/25*x(t)+1/50*y(t), diff(y(...

> dsolve({dys,x(0)=25,y(0)=0},{x(t),y(t)});

{y(t) = -25*exp(-3/25*t)+25*exp(-1/25*t), x(t) = 25...

>