**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);