Be a little careful that A is not in symbolic form, even if it is real and SPD.
A = randn(4,3); A = A'*A
A =
6.7750 -0.4223 -0.3969
-0.4223 0.5515 -0.1101
-0.3969 -0.1101 3.1915
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
[V,D] = eig(A)
V =
-0.0705 0.1021 -0.9923
-0.9962 -0.0585 0.0647
-0.0514 0.9930 0.1059
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
D =
0.5159 0 0
0 3.1572 0
0 0 6.8449
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
It is true the columns of V are unit normalized when A is single or double precision.
diag(V'*V)
ans =
1.0000
1.0000
1.0000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
However, the symbolic version of A will not produce the same unit 2-normalized vectors.
vpa(diag(Vs'*Vs))
ans =
