Question
Asked 12th Jul, 2017

How to find complex root of a transcendental equation having infinitely many purely imaginary roots and 4 complex roots and a pair of real roots?

i tried converting the equation to system of non linear equation and then applied Newton Raphson method for system of non linear equation. For initial guess I used matlab inbuilt command "roots ". But this initial guess did not work.

Most recent answer

Jonathan Stone
University of Southampton
The complex roots (when z^{4} is eliminated) for the parameters I used are very close to those of the full equation. I tried them as seeds using a Newton method and they work well. Furthermore, I perturbed the initial seeds further to see what the domain of convergence for the complex roots is like, and it doesn't seem abnormally small (hence the seeds in my previous answer should work).
1. This might just be a coding issue.
2. Is it imperative you use a Newton method? Other root finding methods are available.
3. Do you have access to another software package? Mathematica's 'FindRoot' (which is based on Newton's method) and 'Reduce' functions are really good for finding complex roots and appear to work.

All Answers (9)

Loopinder Sood
Independent
Can you state what the equation is and whether you want to find the real roots or complex roots or all roots.
To find complex routes see
Convergence Theorem For Newtons Method
see
Newton's method is similar to fixed point iteration in that for fixed point iteration
x(n+1)=g(xn)
In Newtons Scheme
 g(xn)=(xn-f(xn)/f'(xn))
so you can apply the Fixed Point Theorem to get the convergence criteria for Newtons scheme
ie abs[g(xn)]'<1 in the interval [a,b] that contains the root.
so get your g(xn) for your equation according to Newtons Method and find out roughly where the roots are. check that in this interval that
abs[g(n)]'<1. if this condition holds, then any initial guess to the root should converge to the actual root.
Thus for convergence of Newtons Method  x(n+1)=x(n)-f(xn)/f'(xn)
abs[f(x)*f''(x)]<(f'(x))^2 must be satisfied in an interval containing the root.
How to find initial approximations to real roots, with matlab code
see
1 Recommendation
The equation I am working on is (D*x^4 +1-e*K)*x*tanh(x) =K.
Values of parameters : D= 0.001;e=0.01;K=4:0.01:41
Jonathan Stone
University of Southampton
If you want to calculate the roots and have access to Mathematica (7 onwards) you could use the function Reduce, described here:
I tried this on your function using  (D = 0.001, e = 0.01, K = 4)
roots = Reduce[(0.001*z^4 + 1 - 0.01*4)*z*Tanh[z] - 4 == 0 && -30 <
Re[z] < 30 && -3 < Im[z] < 3, z] // Quiet;
This returns (within the domain specified): 
z == -3.56959 || z == 0. - 2.03138 I || z == 0. + 2.03138 I ||
z == 3.56959
For D small (which it is) you could try a (singular) perturbation method to seed your Newton algorithm. 
I.e., start by eliminating the z^{4} term because D is small. Finding the roots and then seeding the full equation with z^{4} present. When z^{4} is turned off the approximate roots are (for the same parameters and domain above)
z == -4.16866 || z == 0. - 2.02274 I || z == 0. + 2.02274 I ||
z == 4.16866
1 Recommendation
Dear Luis - Felipe Velázquez - León
For different values of K ranging from 4:0.01:41 i have to solve the equation.
Best Regards
Sofia
Dear Jonathan
I have already done this .When i use these initial guess i dont get complex roots which are ascertained from the available literature.
These initial approximations are not working for me.
Jonathan Stone
University of Southampton
The complex roots (when z^{4} is eliminated) for the parameters I used are very close to those of the full equation. I tried them as seeds using a Newton method and they work well. Furthermore, I perturbed the initial seeds further to see what the domain of convergence for the complex roots is like, and it doesn't seem abnormally small (hence the seeds in my previous answer should work).
1. This might just be a coding issue.
2. Is it imperative you use a Newton method? Other root finding methods are available.
3. Do you have access to another software package? Mathematica's 'FindRoot' (which is based on Newton's method) and 'Reduce' functions are really good for finding complex roots and appear to work.

Similar questions and discussions

Related Publications

Article
We consider the problem of minimizing over an affine set of square matrices the maximum of the real parts of the eigenvalues. Such problems are prototypical in robust control and stability analysis. Under nondegeneracy conditions, we show that the multiplicities of the active eigenvalues at a critical matrix remain unchanged under small perturbatio...
Article
Full-text available
Due to the advancements in the field of computational mathematics, numerical methods are most widely being utilized to solve the equations arising in the fields of applied medical sciences, engineering and technology. In this paper, the numerical solutions of an important equation of applied dynamics: namely, the Unforced Van der Pol’s Equation (UF...
Got a technical question?
Get high-quality answers from experts.