Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I am looking for a numerical solution of a equation which contains, in general, one polynomial equation with unknown variable x. I have tried Reduce, Solve, NSolve and FindRoot, but I'm getting nothing after running my code for a few days. Probably there is solution in some of numerical iterative or other methods, unknown for me.

 a1 = Sqrt[2*10^11*3.055*10^-5];
 a2 = 0.01;
 a3 = 7849;
 a4 = 10;
 a5 = 50;
 a6 = 11;
 a7 = 700;

 k1 = Rationalize[
 Solve[(k (k^3 a1 - I a2 - k (a4 + a5^2 a3)) + x - 2 k a5 a3 a6 - 
      a3 a6^2) == 0, k][[4]][[1]][[2]], 0];
 k2 = Rationalize[
 Solve[(k (k^3 a1 - I a2 - k (a4 + a5^2 a3)) + x - 2 k a5 a3 a6 - 
      a3 a6^2) == 0, k][[1]][[1]][[2]], 0];
 k3 = Rationalize[
 Solve[(k (k^3 a1 - I a2 - k (a4 + a5^2 a3)) + x - 2 k a5 a3 a6 - 
      a3 a6^2) == 0, k][[3]][[1]][[2]], 0];
 k4 = Rationalize[
 Solve[(k (k^3 a1 - I a2 - k (a4 + a5^2 a3)) + x - 2 k a5 a3 a6 - 
      a3 a6^2) == 0, k][[2]][[1]][[2]], 0];

 expr = (I  a1 (k1 - k3) (k2 - k3) (k1 - k4) (k2 - k4))/(
 k1 + k2 - k3 - k4) - a7 a6^2;

 NSolve[expr == 0, x]
share|improve this question

1 Answer 1

up vote 0 down vote accepted

Looks like there are at least two solutions (real or "almost real"): You can get initial approximations from the following plot:

Plot[Log[Abs[expr]], {x, 3.8 10^10, 4.0 10^10}, PlotRange -> Full]

To get more accurate results use FindRoot

FindRoot[expr, {x, 3.85 10^10}] (* x->3.84004 10^10-0.609932 I*)
FindRoot[expr, {x, 3.95 10^10}] (* x->3.94883 10^10-0.631114 I*)
share|improve this answer
    
how to be sure that there are only two roots. I know that all of them should be complex, but more then two. Thank you anyway. –  Pipe Mar 9 at 22:55
    
I found only two roots. The problem is that analytical expressions for k1, k2, k3, k4 involves square roots. That means that analytic continuation of these functions (in case of complex x) is multivalued... So either function expr should be treated as multivalued or it will wave branch cuts (that depends on the problem you were solving in the first place). –  bcp Mar 10 at 5:27
    
thank you very much –  Pipe Mar 11 at 13:15

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.