Question: how to calculate null space by hand for matrix containing one variable

i googled nullspace from ReducedRowEchelonForm

but when calculate it, ReducedRowEchelonForm do not contain the eigenvector in nullspace

how to calculate nullspace by hand?

 

i find that in maple 12 and maple 15 null space are different , however the common thing is that they are different from eigenvector by one of column multiply -1

is multiplication to one of column is due to rank=2 < 3, 3-2 = 1, so that random choose a column to multiply -1?

 

then i use elementary transformation, still can not get a rref which is like eigenvector, where is wrong?

sys1:=NewInput3-Matrix([[FirstEigenValue, 0, 0], [0, FirstEigenValue, 0], [0, 0, FirstEigenValue]]); sys1 := Matrix([[sys1[1,1], sys1[1,2], sys1[1,3]], [sys1[2,1]-sys1[2,1]/sys1[1,1]*sys1[1,1], sys1[2,2]-sys1[2,1]/sys1[1,1]*sys1[1,2], sys1[2,3]-sys1[2,1]/sys1[1,1]*sys1[1,3]], [sys1[3,1], sys1[3,2], sys1[3,3]]]);

sys1 := Matrix([[sys1[1,1], sys1[1,2], sys1[1,3]], [sys1[2,1], sys1[2,2], sys1[2,3]], [sys1[3,1]-sys1[3,1]/sys1[1,1]*sys1[1,1], sys1[3,2]-sys1[3,1]/sys1[1,1]*sys1[1,2], sys1[3,3]-sys1[3,1]/sys1[1,1]*sys1[1,3]]]);

sys1 := Matrix([[sys1[1,1]/sys1[1,1], sys1[1,2]/sys1[1,1], sys1[1,3]/sys1[1,1]], [sys1[2,1], sys1[2,2], sys1[2,3]], [sys1[3,1], sys1[3,2], sys1[3,3]]]);

sys1 := Matrix([[sys1[1,1], sys1[1,2], sys1[1,3]], [sys1[2,1], sys1[2,2], sys1[2,3]], [sys1[3,1]-sys1[3,2]/sys1[2,2]*sys1[2,1], sys1[3,2]-sys1[3,2]/sys1[2,2]*sys1[2,2], sys1[3,3]-sys1[3,2]/sys1[2,2]*sys1[2,3]]]);

sys1 := Matrix([[sys1[1,1], sys1[1,2], sys1[1,3]], [sys1[2,1]/sys1[2,2], sys1[2,2]/sys1[2,2], sys1[2,3]/sys1[2,2]], [sys1[3,1], sys1[3,2], sys1[3,3]]]);

 

http://rosettacode.org/wiki/Reduced_row_echelon_form#C.23

change c# code from integer to double, it return only an identity matrix. same as maple, how eigenvector come from rref?

 

when compare maple with sympy in python27,

sympy even do not have solution in nullspace!!!

from sympy import *
InputMatrix3 = Matrix([[31.25,30.8,30.5],[30.8,30.5,0],[30.5,0,0]])
NewInput3 := InputMatrix3.T*InputMatrix3
NewInput3.nullspace()

 

InputMatrix3 := Matrix([[31.25,30.8,30.5],[30.8,30.5,0],[30.5,0,0]]);
NewInput3 := MatrixMatrixMultiply(Transpose(InputMatrix3), InputMatrix3);
Old_Asso_eigenvector := Eigenvectors(NewInput3);
FirstEigenValue := solve(Determinant(NewInput3-Matrix([[lambda1, 0, 0], [0, lambda1, 0], [0, 0, lambda1]])), lambda1)[3]; # find back eigenvalue from eigenvector
SecondEigenValue := solve(Determinant(NewInput3-Matrix([[lambda1, 0, 0], [0, lambda1, 0], [0, 0, lambda1]])), lambda1)[2]; # find back eigenvalue from eigenvector
ThirdEigenValue := solve(Determinant(NewInput3-Matrix([[lambda1, 0, 0], [0, lambda1, 0], [0, 0, lambda1]])), lambda1)[1]; # find back eigenvalue from eigenvector
sys1:=NewInput3-Matrix([[FirstEigenValue, 0, 0], [0, FirstEigenValue, 0], [0, 0, FirstEigenValue]]);
sys2:=NewInput3-Matrix([[SecondEigenValue, 0, 0], [0, SecondEigenValue, 0], [0, 0, SecondEigenValue]]);
sys3:=NewInput3-Matrix([[ThirdEigenValue, 0, 0], [0, ThirdEigenValue, 0], [0, 0, ThirdEigenValue]]);
sys1b:=MatrixMatrixMultiply(NewInput3-Matrix([[FirstEigenValue, 0, 0], [0, FirstEigenValue, 0], [0, 0, FirstEigenValue]]),Matrix([[x],[y],[z]]));
sys2b:=MatrixMatrixMultiply(NewInput3-Matrix([[SecondEigenValue, 0, 0], [0, SecondEigenValue, 0], [0, 0, SecondEigenValue]]),Matrix([[x],[y],[z]]));
sys3b:=MatrixMatrixMultiply(NewInput3-Matrix([[ThirdEigenValue, 0, 0], [0, ThirdEigenValue, 0], [0, 0, ThirdEigenValue]]),Matrix([[x],[y],[z]]));

sys1:=NewInput3-Matrix([[FirstEigenValue, 0, 0], [0, FirstEigenValue, 0], [0, 0, FirstEigenValue]]);
sys2:=NewInput3-Matrix([[SecondEigenValue, 0, 0], [0, SecondEigenValue, 0], [0, 0, SecondEigenValue]]);
sys3:=NewInput3-Matrix([[ThirdEigenValue, 0, 0], [0, ThirdEigenValue, 0], [0, 0, ThirdEigenValue]]);
ReducedRowEchelonForm(sys1);
NullSpace(sys1);
NullSpace(sys2);
NullSpace(sys3);

 

Please Wait...