k = [1750 -750 0; -750 1250 -500; 0 -500 500];
m = [75 0 0; 0 75 0; 0 0 50];
eqn = DET==0
eqn =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1669741/image.png)
At this point, you have generated a cubic polynomial. It is a symbolic polynomial in x. That would be a good start. You needed to make only one more step.
But, what do you think root does? (Nothing. There is no function named root.) You can use solve.
xsol = solve(eqn,'maxdegree',3)
xsol =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1669746/image.png)
And that looks pretty messy, but the fact is, the roots of a cubic polynomial are a bit messy for a completely general polynomial.
vpa(xsol)
ans =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1669751/image.png)
So there are three real roots. They look like they are complex roots, because they have an imaginary part, but it is an infinitessimal one. Just discard that part.
real(vpa(xsol))
ans =
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1669756/image.png)
Those are the three roots. Are they correct?
eig(D)
ans =
31.6965
15.6084
2.6951
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
Indeed, what you did was valid. At least until that very last line.