MathGroup Archive 2012

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

Search the Archive

Re: New to Mathematica

  • To: mathgroup at smc.vnet.net
  • Subject: [mg126423] Re: New to Mathematica
  • From: Andrzej Kozlowski <akozlowski at gmail.com>
  • Date: Wed, 9 May 2012 03:52:05 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201205080809.EAA24083@smc.vnet.net>

On 8 May 2012, at 10:09, Bill Rowe wrote:

>
>> For example, proper syntax for the equation would be:
>
>>> (x/Log[x]) (1 + 1/Log[x]) == 108.2 + k
>
>>> Third, the equation itself looks really nasty. Aside from the fact
>>> that it mixes exact formulas with an approximate real (108.2), the
>>> left-hand side is transcendental.
>
> This is a key point. Typically, transcendental equations do not
> have closed form symbolic solutions and are only solved
> numerically. In general, when there is a closed form symbolic
> solution, it is because the equation occurs often enough in some
> field someone created a special function to represent the solution.
>
> So, assuming the only possible solution is a numerical solution
> you will have to substitute specific values for k to get a
> solution such as was done with:
>
>>> FindRoot[Evaluate[f[x] /. k -> 2], {x, 1.1}] {x -> 1.11137}
>
>

Fortunately a lot of the above statements are just common misconceptions. (The theory of analytic functions should be known better than it is=85).

 For a specific value of k this equation can be solved exactly over the reals (after rationalising the approximate real):

Reduce[
 Rationalize[(x/Log[x]) (1 + 1/Log[x]) == 108.2 + 2], x, Reals]

x ==
  Root[{-551 Log[#1]^2 + 5 #1 + 5 Log[#1] #1 &,
    0.91655356819195758220}] ||
 x == Root[{-551 Log[#1]^2 + 5 #1 + 5 Log[#1] #1 &,
    1.11136974029598568569}] ||
 x == Root[{-551 Log[#1]^2 + 5 #1 + 5 Log[#1] #1 &,
    611.73540466624378639}]

Here are the roots up to 100 digits of precision:

N[%,100]
=
x==0.9165535681919575821998639486658463342079956098564453564243356800068216487397040612892576102889039493||x==1.111369740295985685694830683326766064449132868778567205972175922174908981470452916818992744170828709||x==611.7354046662437863906028332693439714403775868818658732548079967219000636161918364613962070890846790

Note that this means that there are only three real roots and not that Reduce only found three real roots. Unlike FindRoot Reduce (and Solve) solve this kind of equation completely.

Andrzej Kozlowski







  • Prev by Date: Re: Question about Initialization Cells
  • Next by Date: Concurrency issues with callback functions through MathLink (KernelLink)
  • Previous by thread: Re: New to Mathematica
  • Next by thread: Re: New to Mathematica