complex roots of a transcendental equation

9 次查看(过去 30 天)
I have a transcendental equation which needs to be solved to obtain real roots and complex roots. The equation reads as follows:
((((k2z./mu_2).^2-(1i.*k0z.*k1z./(mu_0*mu_1)).*(cot(k1z.*d1))).*((1-exp(-2.*1i.*k2z.*d2))./(k2z./mu_2)))+((k0z./mu_0-(1i.*(k1z./mu_1).*cot(k1z.*d1))).*(1+exp(-2.*1i.*k2z.*d2))))
where, k0z= -1i*sqrt(x^2-k0^2), k1z= sqrt(k1^2-x^2), k2z= sqrt(k2^2-x^2), k0= 20.9585, k1= 31.0864, k2= 37.7834, d1= 0.027, d2= 0.03 and mu_0=mu_1=mu_2=1.
I have tried all the in built functions available in MATLAB (fzero, fsolve, solve), but none of them seems to predict the location of complex roots. I have had no issues with finding out the real root, however, I am facing problems in finding out the complex roots and there could be infinite number of complex roots.
Can anyone please help me with this problem ?
Thank you in advance.
  1 个评论
John D'Errico
John D'Errico 2017-8-1
How do you expect to find an infinite number of potentially complex roots? It would take an infinite amount of time and an infinite amount of memory to generate them all anyway.
Note that fzero & fsolve in general are designed to solve for real roots anyway. Most people will be unhappy if fsolve starts generating complex results.

请先登录,再进行评论。

回答(1 个)

T S Singh
T S Singh 2017-12-26
See this link https://in.mathworks.com/matlabcentral/fileexchange/6924-newtzero it might help you. If this does not help then you have to look for the complex root numerically and also make sure that you choose the range by analyzing the nature of the function (i.e by plotting the function).

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by