If you are trying to find the general form of the eigenvectors (as columns of your `NewMatrix3`) of the Matrix of data in your `NewInput3` then your methodology looks suspect.

I do not see how your general equation,

{seq(seq((NewMatrix3 . NewInput3(1..-1,i))[j]=(v[i]* NewInput3(1..-1,i))[j], j=1..3), i=1..3)}

properly represents the definition

A . X[i] = lambda[i] . X[i]

where NewInput3 = A is the data, NewMatrix3[..,i] = X[i] is the ith eigenvector, and v[i] = lambda[i] is the ith eigenvalue. Using those equivalences then shouldn't you instead have,

NewInput3 . NewMatrix3[..,i] = v[i] . NewMatrix3[..,i]

?

As for how LinearAlgebra:-Eigenvectors does it for a Matrix **A** of exact rational data, the rough answer is that it first finds the eigenvalues. And then for each eigenvalue v[i] it evaluates the characteristic Matrix **A-lambda*Id** at **lambda=v[i] **and then computes the nullspace (kernel) of that.

For floating-point data the eigen-solving is passed to a LAPACK function. If you have float data then you might want to consider letting Maple use the fact that **NewInput3 = ****InputMatrix3^%T . ****InputMatrix3** is symmetric. In the case of float data that will allow Maple to produce purely real results with no very small imaginary (numerical roundoff) artefacts. Ie,

NewInput3 := Matrix( InputMatrix3^%T . InputMatrix3, shape=symmetric );

Or you could consider squaring the singular values of InputMatrix3, and taking care for the ordering. Consider,

restart:
with(LinearAlgebra):
InputMatrix3 := Matrix([[31.25,30.8,30.5],[30.8,30.5,0],[30.5,0,0]]):
map(t->t^2, SingularValues(InputMatrix3));
[4789.06261226748]
[ ]
[591.210617040193]
[ ]
[284.319270692331]
Eigenvalues(Matrix(InputMatrix3^%T . InputMatrix3, shape=symmetric));
[284.319270692331]
[ ]
[591.210617040193]
[ ]
[4789.06261226748]
Eigenvalues(InputMatrix3^%T . InputMatrix3);
[4789.06261226748 + 0. I]
[ ]
[591.210617040192 + 0. I]
[ ]
[284.319270692331 + 0. I]

So,...

G := Matrix(InputMatrix3^%T . InputMatrix3, shape=symmetric):
evals:=Eigenvalues(G);
[284.319270692331]
[ ]
evals := [591.210617040193]
[ ]
[4789.06261226748]
seq( NullSpace(CharacteristicMatrix(G,evals[i])), i=1..3 );
/[ 0.326650403460829]\ /[-0.588317874678543]\ /[0.739717238039373]\
|[ ]| |[ ]| |[ ]|
< [-0.737693385300777] >, < [ 0.330570994334320] >, < [0.588669081053437] >
|[ ]| |[ ]| |[ ]|
\[ 0.590853605559242]/ \[ 0.737973506325627]/ \[0.326017055932820]/
Eigenvectors(G);
[284.319270692331] [-0.326650403460830 -0.588317874678544 0.739717238039373]
[ ] [ ]
[591.210617040193], [ 0.737693385300778 0.330570994334321 0.588669081053437]
[ ] [ ]
[4789.06261226748] [-0.590853605559242 0.737973506325627 0.326017055932820]

For exact data Maple will compute the nullspace by solving the linear system with the zero-Vector as the right hand side. For floats it will use... (wait for it..), the full SVD.

Why do you want to do it all by hand?

acer