MATLAB: Complex eigenvalues for hermitian matrix

complexeigeigenvalueshermitian matrixMATLAB

I have been trying to find the eigenenergies the Hamiltonian using the eig() function
% constants and parameters
hbar = 6.58211*10^-4;
w1 = 2000/hbar;
w2 = 2001/hbar;
syms wph;
g = 120;
pump = 10;
% the hamiltonian
h = [w1-wph pump 0;
pump w1-wph g;
0 g w2];
This gives complex valued eigenenergies in terms of the parameter wph. This was expected because Matlab might be using an algorithm sue to which this happens. I also expected that when I plot these values against wph, they should be real but instead they come out to be complex valued with a fairly big imaginary part (code attached).
Can anyone explain why this is happening? The hamiltonian is hermitian and thus should have real eigenenergies which is not happening.

Best Answer

I suspect it is because you lack the float precision with which to crunch those huge integers in your expressions, like 17373258711169930298161307553886039650995152377.
Why exactly are you using symbolic (as oposed to numeric) eigenvalue analysis here?