MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Help with FindRoot

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39861] Re: [mg39830] Help with FindRoot
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Sun, 9 Mar 2003 05:26:57 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

If you use sufficient WorkingPrecision and a reasonable starting point 
than you will be able to get rid of the tiny complex part with Chop. Eg:


FindRoot[3*x^4 - 46 + I*(x - 2) == 2, {x, 1}]


{x -> 2.0000000005164145 - 3.195328365745672*^-10*I}

but
Chop[FindRoot[3*x^4 - 46 + I*(x - 2) == 2, {x, 1},
    WorkingPrecision -> 30]]


{x->2.00000000000000000000000000000}

Of course you can simply get rid of the unwanted small complex part 
"manually":


FindRoot[3*x^4 - 46 + I*(x - 2) == 2, {x, 1}] /.
   Complex[a_, b_]/;b<10^-8 -> a

{x->2.}

This get rids of the imaginary part if it is less than 10^-8.
There is however no way to make Mathematica "look for" real solutions 
in such cases, since there no purely numerical way to distinguish a 
"real" solution from a complex one with a very small imaginary part.

Andrzej Kozlowski
Yokohama, Japan
http://www.mimuw.edu.pl/~akoz/
http://platon.c.u-tokyo.ac.jp/andrzej/


On Saturday, March 8, 2003, at 04:48  pm, Stefano Fricano wrote:

> Dear friend,
>
> I've problem with FindRoot[lhs==rhs, {x, x0}] .
> The description of the function in Help suggest that,
> if lhs and rhs are real then x will be real;
> if lhs and/or rhs are complex the x likely will be complex;
> if lhs and rhs are real but you want also x be complex then you
> need to add "+0.I" to lhs or rhs.
> My problem is that lhs is complex, rhs is real and I want only real
> solutions for x.
> How can I do it? How say to Mathematica to look for only real solution?
>
> Thanks
>
>
> This email has been scanned by RAV antivirus on server 
> dsfa.fisica.unipa.it
>
>
>



  • Prev by Date: Re: Conclusion: Mathematica will output plain text
  • Next by Date: Re: Symbols and Lists
  • Previous by thread: RE: Help with FindRoot
  • Next by thread: Conclusion: Mathematica will output plain text