MathGroup Archive 2011

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

Search the Archive

Re: Root finding needs higher accuracy

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123172] Re: Root finding needs higher accuracy
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 25 Nov 2011 04:56:19 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111241157.GAA29024@smc.vnet.net>

This problem is trivial for Mathematica, because Mathemtica can solve it *exactly*:

Reduce[
 Log[x] + x^2/(2 Exp[1]) - 2 x/Sqrt[Exp[1]] + 1 == 0, x, Reals]

x==Root[{4 #1-4 Sqrt[E]&,1.64872127070012814685}]

N[%, 100]


x==1.648721270700128146848650787814163571653776100710148011575079311640661021194215608632776520056366643

Andrzej Kozlowski


On 24 Nov 2011, at 12:57, HwB wrote:

> I would like to numerically find the root of the following function
> with up to 20 digits.
>
>    f12[x_] := Log[x] + x^2 / (2 Exp[1]) - 2 x / Sqrt[Exp[1]] + 1
>
> This problem is known to be difficult for solvers in double precision
> arithmetics. I thought it should be easy with Mathematica, but the
> following attempts were not successful.
>
>    SetPrecision[
>        x /. FindRoot[f12[x], {x, 1.0, 3.4}, Method -> "Brent",
>                 AccuracyGoal -> Infinity, PrecisionGoal -> 20], 16]
>    # 1.648732212532746
>    SetPrecision[
>        x /. FindRoot[f12[x], {x, 1.0, 3.4}, Method -> "Secant",
>                 AccuracyGoal -> Infinity, PrecisionGoal -> 20], 16]
>    # 1.648710202030051
>
> The true root obviously is Sqrt[Exp[1]]//N = 1.648721270700128...
>
> The symbolic solver explicitely says it cannot solve this expression.
> What do I need to do to get a much more exact result out of
> Mathematica?
>
> Many thanks, Hans Werner
>




  • Prev by Date: Re: Root finding needs higher accuracy
  • Next by Date: Re: Bad Precision output for SphericaBesselY and BesselY
  • Previous by thread: Re: Root finding needs higher accuracy
  • Next by thread: Re: Root finding needs higher accuracy