Solve nonlinear complex equations
9 次查看(过去 30 天)
显示 更早的评论
Hello,
I am trying to numerically solve a nonlinear complex equation and I would like to find all the complex roots. The equation is of the type:
cot(z)*z = 1-z^2*(1+i*z)
Does a specific function exist to find all the complex roots or do I need to separate z in the real and imaginary parts?
Thanks in advance for your help!
0 个评论
采纳的回答
Matt J
2013-2-10
编辑:Matt J
2013-2-10
If you have the Symbolic Math Toolbox, I think SOLVE can be used to get complex-valued solutions. For the numerical solvers, I'm pretty sure you do have to reformulate the problem in terms of real and complex parts. Also, I've never heard of a numerical solver that will robustly find multiple roots for anything except polynomials.
11 个评论
Walter Roberson
2015-7-21
You should start a new Question on this.
eff does not appear on the right hand side of your question so I do not know what the (eff) on the left relates to.
You define alpha_n and beta_n in terms of Delta(a) and Delta(c) but there is no obvious way of calculating either of those.
In your Delta(eff) formula, is 4ac = 4*a*c ?
Is alpha_n indicating alpha indexed at n?
Is the sum over odd n from 1 to infinity?
If Delta is being defined recursively (because it is defined in terms of alpha_n and beta_n that are defined in terms of Delta) then you need an initial condition.
Meng Li
2015-7-21
Delta(eff) is a experimentally measured value and this value can be separated into Delta(a) and Delta(c) through the first equation.
Yes. 4ac=4*a*c; Yes. alpha_n indicating alpha at n; Yes. the sum is over integer from 1 to infinity;
If I want to solve the equation, I should give some initial guess value for Delta(a) and Delta(c). Because the function 'fminsearch' can only give local solutions, I think the initial guess will be very important.
更多回答(1 个)
Azzi Abdelmalek
2013-2-10
Use fzero function
doc fzero
f=@(z)cot(z)*z -(1-z^2*(1+i*z))
z0=i;
sol=fzero(f,z0); % the solution is near z0
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!