Powers of Matrices and Eigenvectors

> with(linalg):

Warning, new definition for norm

Warning, new definition for trace

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

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

> id := diag(1,1);

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

> vects := 'vects';

vects := 'vects'

> evalf(Eigenvals(A,vects));

VECTOR([1.000000000, 2.000000000])

> print(vects);

MATRIX([[-.8320502943, -3.605551275], [-.5547001962...

> n := 10;

n := 10

> v := vector([1,0]);

v := VECTOR([1, 0])

The power method for finding eigenvalues and eigenvectors.

> for i from 1 to 10 do
v := evalm(A &* v);
v_len := evalf(sqrt(dotprod(v,v))):
v := map(evalf,evalm(1/v_len * v)):
print(v):

od:

VECTOR([-.4472135954, -.8944271908])

VECTOR([-.6401843998, -.7682212797])

VECTOR([-.6804510995, -.7327934918])

VECTOR([-.6950220970, -.7189883761])

VECTOR([-.7013347676, -.7128320588])

VECTOR([-.7042840329, -.7099183055])

VECTOR([-.7057107206, -.7085000909])

VECTOR([-.7064125186, -.7078003628])

VECTOR([-.7067605841, -.7074528086])

VECTOR([-.7069339156, -.7072796046])

>