Roots switching in an eigenvalue eigenvector problem as a function of frequency

1 view (last 30 days)
Hello,
I'm solving a system of 4 equations and 4 unknowns as a function of frequency and wavenumber. I'd like to find the dispersion relation of the system.
To do this I'm using the Matlab symbolic math toolbox and solving the following.
k_symbolic=solve(det(M)==0,k); %det(M) is of the form Ak^4 + Bk^2 + C
where M is my matrix representing my system of equations and k is the wavenumber.
I then substitute values for frequency as follows.
k_numeric=subs(k_symbolic,{omega},{2*pi*(1:1000)}) % or whatever frequency range I want
My problem is that when I plot my roots as a function of frequency (k_numeric(omega)) it is clear that the roots are switching. In other words the first root will continue as expected then there will be a discontinuous jump (at say 5 Hz) to the other root solution and vice-versa.
I'd like k_numeric(x) to always be the same root independent of frequency. Is this possible?
Thanks for your help!
Jeff
More details: I'm actually using subs to replace other symbolic values with numeric values which include bessel functions (not sure if this influences anything).

Accepted Answer

Matt J
Matt J on 29 Nov 2013

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!