load(eigen); /* yl 365 a */ A: matrix( [1,1], [1,1] ); p: expand(factor(charpoly(A,x))); sols: solve(p=0,x); sols: [ev(x,sols[1]),ev(x,sols[2])]; A-sols[1]*ident(2); %.matrix([x],[y]); transpose(%); args(%)[1]; solve(%,[x,y]); e1: [-1,1]; e1: 1/sqrt(innerproduct(e1,e1))*e1; A-sols[2]*ident(2); %.matrix([x],[y]); transpose(%); args(%)[1]; solve(%,[x,y]); e2: [1,1]; e2: 1/sqrt(innerproduct(e2,e2))*e2; AA: matrix( [sols[1],0], [0,sols[2]] ); V: matrix(e1,e2); /* yl 365 c */ A: matrix( [11,2,-8], [2,2,10], [-8,10,5] ); p: expand(factor(charpoly(A,x))); expand((63-5*x)*(180-49*x+x^2)-2*(18-4*x)*(63-5*x)-(18-4*x)*(585-58*x+x^2)); sols: solve(p=0,x); sols: [ev(x,sols[1]),ev(x,sols[2]),ev(x,sols[3])]; A-sols[1]*ident(3); %.matrix([x],[y],[z]); transpose(%); args(%)[1]; solve(%,[x,y,z]); e1: [-2,1,2]; e1: 1/sqrt(innerproduct(e1,e1))*e1; A-sols[2]*ident(3); %.matrix([x],[y],[z]); transpose(%); args(%)[1]; solve(%,[x,y,z]); e2: [2,2,1]; e2: 1/sqrt(innerproduct(e2,e2))*e2; A-sols[3]*ident(3); %.matrix([x],[y],[z]); transpose(%); args(%)[1]; solve(%,[x,y,z]); e3: [1,-2,2]; e3: 1/sqrt(innerproduct(e3,e3))*e3; AA: matrix( [sols[1],0,0], [0,sols[2],0], [0,0,sols[3]] ); V: matrix(e1,e2,e3); /* yl 365 e */ A: matrix( [17,-8,4], [-8,17,-4], [4,-4,11] ); p: expand(factor(charpoly(A,x))); sols: solve(p=0,x); sols: [ev(x,sols[1]),ev(x,sols[2]),ev(x,sols[2])]; A-sols[1]*ident(3); %.matrix([x],[y],[z]); transpose(%); args(%)[1]; solve(%,[x,y,z]); e1: [2,-2,1]; e1: 1/sqrt(innerproduct(e1,e1))*e1; A-sols[2]*ident(3); %.matrix([x],[y],[z]); transpose(%); args(%)[1]; solve(%,[x,y,z]); e2: [1,1,0]; e3: [-1,0,2]; e3: gramschmidt(matrix(e2,e3))[2]; e2: 1/sqrt(innerproduct(e2,e2))*e2; e3: 1/sqrt(innerproduct(e3,e3))*e3; AA: matrix( [sols[1],0,0], [0,sols[2],0], [0,0,sols[3]] ); V: matrix(e1,e2,e3); /* yl 365 f */ A: matrix( [1,1,1,1], [1,1,-1,-1], [1,-1,1,-1], [1,-1,-1,1] ); p: factor(charpoly(A,x)); sols: solve(p=0,x); sols: [ev(x,sols[1]),ev(x,sols[2]),ev(x,sols[2]),ev(x,sols[2])]; A-sols[1]*ident(4); %.matrix([x],[y],[z],[u]); transpose(%); args(%)[1]; solve(%,[x,y,z,u]); e1: [-1,1,1,1]; e1: 1/sqrt(innerproduct(e1,e1))*e1; A-sols[2]*ident(4); %.matrix([x],[y],[z],[u]); transpose(%); args(%)[1]; solve(%,[x,y,z,u]); e2: [1,1,0,0]; e3: [1,0,1,0]; e4: [1,0,0,1]; e3: gramschmidt(matrix(e2,e3,e4))[2]; e4: gramschmidt(matrix(e2,e3,e4))[3]; e2: 1/sqrt(innerproduct(e2,e2))*e2; e3: 1/sqrt(innerproduct(e3,e3))*e3; e4: 1/sqrt(innerproduct(e4,e4))*e4; AA: matrix( [sols[1],0,0,0], [0,sols[2],0,0], [0,0,sols[3],0], [0,0,0,sols[4]] ); V: matrix(e1,e2,e3,e4);