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

2 次查看(过去 30 天)
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).

采纳的回答

Matt J
Matt J 2013-11-29

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by