A = [ 3.0 -2.0 -0.9 2*eps;
-2.0 4.0 1.0 -eps;
-eps/4 eps/2 -1.0 0;
-0.5 -0.5 0.1 1.0];

Calculate the eigenvalues and right eigenvectors using
the default (balancing) behavior.

[VB,DB] = eig(A)

VB =
0.6153 -0.4176 -0.0000 -0.1437
-0.7881 -0.3261 -0.0000 0.1264
-0.0000 -0.0000 -0.0000 -0.9196
0.0189 0.8481 1.0000 0.3432
DB =
5.5616 0 0 0
0 1.4384 0 0
0 0 1.0000 0
0 0 0 -1.0000

Check to see if the results satisfy `A*VB = VB*DB`.

A*VB - VB*DB

ans =
0.0000 0.0000 -0.0000 0.0000
0 -0.0000 0.0000 -0.0000
0.0000 -0.0000 0.0000 0.0000
0 0.0000 0.0000 0.6031

This result does not satisfy `A*VB = VB*DB`.
Ideally, the eigenvalue decomposition satisfies this relationship.
Since `eig` performs the decomposition using floating-point
computations, then `A*V` can, at best, approach `V*D`.
In other words, `A*V - V*D` is close to, but not
exactly, `0`.

Now, try calculating the eigenvalues and right eigenvectors
without the balancing step.

[VN,DN] = eig(A,'nobalance')

VN =
0.6153 -0.4176 -0.0000 -0.1528
-0.7881 -0.3261 0 0.1345
-0.0000 -0.0000 -0.0000 -0.9781
0.0189 0.8481 -1.0000 0.0443
DN =
5.5616 0 0 0
0 1.4384 0 0
0 0 1.0000 0
0 0 0 -1.0000

Verify that the results satisfy `A*VN = VN*DN`.

A*VN - VN*DN

ans =
1.0e-14 *
-0.1776 -0.0111 -0.0559 -0.0167
0.3553 0.1055 0.0336 -0.0194
0.0017 0.0002 0.0007 0
0.0264 -0.0222 0.0222 0.0097

`A*VN - VN*DN` is much closer to `0`,
so the `'nobalance'` option produces more accurate
results in this case.