From: Robert D. <rob...@us...> - 2009-08-02 21:01:14
|
Update of /cvsroot/maxima/maxima/share/matrix In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv25575/share/matrix Modified Files: eigen.mac Log Message: Change return value of eigenvector function so that it is possible to distinguish eigenvectors when there are multiple eigenvectors per eigenvalue. Raised on mailing list 2009-05-27 "eigenvectors in maxima" and again on 2009-07-27 "patch for eigenvector to consider". Index: eigen.mac =================================================================== RCS file: /cvsroot/maxima/maxima/share/matrix/eigen.mac,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- eigen.mac 22 Nov 2007 17:11:14 -0000 1.4 +++ eigen.mac 2 Aug 2009 21:01:03 -0000 1.5 @@ -114,7 +114,7 @@ unknowns:endcons(concat(notknwn,index1),unknowns), vectr:columnvector(unknowns),matrx:mat.vectr, nondiagonalizable:false, - listall:[eigvals],realonly:false,algebraic:true, + eigvecs:[],realonly:false,algebraic:true, for index1 thru count do (count:mi(count-part(multiplicities,index1)+1), mmatrx:matrx-part(eigvals,1,index1)*vectr, @@ -132,8 +132,8 @@ (print(" "),print("algsys failure: the eigenvector(s) for the", index1,"th eigenvalue will be missing.")), if hermitianmatrix and %rnum>1 then unit:gramschmidt(unit), - listall:append(listall,unit)), - return(listall)))$ + eigvecs:append(eigvecs,[unit])), + return([eigvals, eigvecs])))$ /* the first arg is of the form [r1,r2,r3]. |