Re: Using FindRoot on an equation involving Log terms
- To: mathgroup at smc.vnet.net
- Subject: [mg115714] Re: Using FindRoot on an equation involving Log terms
- From: Matthias Bode <lvsaba at hotmail.com>
- Date: Wed, 19 Jan 2011 05:25:09 -0500 (EST)
Hola Andrew,
please try:
In[18]:= expr =
110.52499999999998 + (300. - 135.52499999999998/(1 - x))*(1 - x) -
300.*x -
135.52499999999998*Log[1 - x] + 135.52499999999998*Log[x]
FindRoot[expr == 0, {x, 0.1, 0.9}]
Out[18]= 110.52499999999998 + (300. -
135.52499999999998/(1 - x))*(1 - x) - 300.*x -
135.52499999999998*Log[1 - x] + 135.52499999999998*Log[x]
Out[19]= {x -> 0.849823089232009}
Saludos,
MATTHIAS BODE
S 17.35775=B0, W 066.14577=B0
2'740 m
AMSL.
> Date: Tue, 18 Jan 2011 05:51:50 -0500
> From: adeyoung at andrew.cmu.edu
> Subject: [mg115690] Using FindRoot on an equation involving Log terms
> To: mathgroup at smc.vnet.net
>
> Hi,
>
> I am trying to find the root of a certain expression in Mathematica
> version 7:
>
> expr = 110.52499999999998 + (300. - 135.52499999999998/(1 - x)) (1 -
> x) - 300. x - 135.52499999999998 Log[1 - x] + 135.52499999999998
> Log[x]
>
> It appears to plot fine, for example using Plot[expr, {x, 0, 1}]. The
> plot shows that there should be a root at about x=0.85. However, when
> I try to find this root, using for example the following:
>
> FindRoot[expr, {x, 0.5}]
>
> I get an error message:
>
> "FindRoot::lstol: The line search decreased the step size to within
> tolerance specified by AccuracyGoal and PrecisionGoal but was unable
> to find a sufficient decrease in the merit function. You may need
> more than MachinePrecision digits of working precision to meet these
> tolerances."
>
> and it prints a seemingly incorrect (according to the qualitative form
> of the plot) result: {x -> 0.344678}. Only if I use for example
>
> FindRoot[expr, {x, 0.7}]
>
> do I get the seemingly "correct" root: {x -> 0.849823}.
>
> Can you help me see why the FindRoot is getting stuck at {x ->
> 0.344678} when I use starting values far away from 0.7 or 0.8? I will
> ultimately want to find the roots of many similar functions, which may
> have more than one "actual" root, so it would be helpful if I could
> see why FindRoot[expr, {x, 0.5}] does not give {x -> 0.849823}. (also
> when I tried NSolve[expr==0,x], Mathematica will not solve it.)
>
> Thank you,
>
> Andrew DeYoung
> Carnegie Mellon University
>