MATLAB: Hello, i have eigen values and eigen vectors and now i need the matriz of that eigen vectors, how i do the opposite of the [V, D] = eig()

eigeneigen valueeigen vectormatrix

tell me if there's a function or if i have to do it by hand

Best Answer

If A is symmetric, then V*D*V' should suffice to recover A. For example:
A = rand(5); A = A + A';
[V,D] = eig(A);
norm(A - V*D*V')
ans =
3.25783800474617e-15
So A has been recovered, down to some floating point crap in the least significant bits. You can expect no more than that.
If A is not symmetric, then you will probably need to be more creative. Thus use V*D/V.
A = rand(5);
[V,D] = eig(A);
norm(A - V*D*V')
ans =
1.0896468435987
norm(A - V*D/V)
ans =
4.32565298165668e-15
If A is sufficiently nasty that it lacks a complete set of eigenvectors, then you cannot recover A. The classic example is a simple one:
A = [1 1;0 1];
[V,D] = eig(A)
V =
1 -1
0 2.22044604925031e-16
D =
1 0
0 1
Here neither form I showed will suffice, since V is essentially a singular matrix, whereas A has full rank. In this case, nothing you can do will recover A.
Related Question