Solving complex nonpolynomial equation and find all complex roots
古いコメントを表示
I am trying to solve a nonpolynomial equation like z^n*exp(a*(1-z))+a_0z^0+a_1z^1+...+a_nz^n=0. z is within or on the unit circle in complex plane. When using the solve(eqn,var) function, it only returns one numeric solution. Actually, the above equation will have n roots in z<=1. I checked the feature of "solve" function:"The numeric solver does not try to find all numeric solutions for this equation. Instead, it returns only the first solution it finds."
Can anyone help me solve all n roots of complex nonpolynomial equations?
4 件のコメント
Walter Roberson
2016 年 10 月 3 日
In the exp(a*(1-z)) part, is that a vector a like in the a_* part? So that each a_k would occur twice in the sum, once multiplied by z^k and once z^n*exp(a_k*(1-z)) ?
Xiang Zhong
2016 年 10 月 3 日
Walter Roberson
2016 年 10 月 4 日
The coefficients that I tested with had more than n roots for this, even if you filtered down to abs(z) <= 1 . The exp() term introduces the possibility of two values (possibly related by LambertW in theory) modifying the normal n roots you would expect for order n.
Is there a specific limited range for the a_[i] coefficients?
sasahan mawani
2018 年 10 月 17 日
編集済み: Walter Roberson
2018 年 10 月 25 日
Walter Roberson , can you help me to solve a similar problem? https://www.mathworks.com/matlabcentral/answers/424395-find-all-complex-roots-of-complex-nonpolynomial-equation
回答 (1 件)
Massimo Zanetti
2016 年 10 月 3 日
3 投票
To find all solutions you need global solvers, but they don't exist.. One thing that you can do is trying to initialize fsolve with different guesses, so that at least you can try to find some different solutions. Suggestion: try to start the solver with points equally spaced on the unit circle boundary.
カテゴリ
ヘルプ センター および File Exchange で Numerical Integration and Differentiation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!