Re: FindRoot with Logarithmic terms
- To: mathgroup at smc.vnet.net
- Subject: [mg116026] Re: FindRoot with Logarithmic terms
- From: psycho_dad <s.nesseris at gmail.com>
- Date: Sat, 29 Jan 2011 05:28:57 -0500 (EST)
- References: <ihu8is$1pj$1@smc.vnet.net>
On Jan 28, 12:16 pm, skunkwerk <skunkw... at gmail.com> wrote: > Hi, > I'm trying to find the roots of a logarithmic equation that I've plotted successfully (I can see both roots are between 0 and 1). > > expr = 7500*x*(1 - x) + 325*8.314*(x*Log[x] + (1 - x)*Log[(1 - x)]) > FindRoot[expr == 0, {x, 0, 1}] > > FindRoot:nlnum: the function value(indeterminate) is not a list of numbers with dimensions {1} at {x} = {0.} > > any ideas? > > thanks I forgot to mention in my previous message that doing a series expansion of your expression around x=1/2, keeping only the terms up to 4th order and then solving the resulting polynomial equation is enough to get (semi)analytic approximations to the roots: In[68]:= ss = Series[expr, {x, 1/2, 4}]; Solve[(ss // Normal) == 0, x] // Flatten; Select[%[[All, 2]], Im[#] == 0 && 1 > # > 0 &] (* In the last step we keep only the real roots in the range (0,1) *) Out[70]= {0.468458, 0.531542} My guess is that perhaps you could generalize this method and get the exact roots but I don't have the time to check this. Cheers