MathGroup Archive 2011

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

Search the Archive

Re: from Rumen, MEXICO, petition

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118092] Re: from Rumen, MEXICO, petition
  • From: DrMajorBob <btreat1 at austin.rr.com>
  • Date: Tue, 12 Apr 2011 05:56:51 -0400 (EDT)

As frequently (almost always) happens with FindMinimum, I'm unable to find
a combination of WorkingPrecision, PrecisionGoal, and AccuracyGoal that
doesn't yield an error "beep":

Clear[f]
f[z_?NumericQ] :=
     11 Exp[-(z/135)] + 10.5` Exp[-(z/425)] + 4.899` Exp[-(z/1754)] +
      2.02912`;
FindMinimum[Abs[f[x + I y]], {{x, -58.01}, {y, 478.8}}]

{2.04123*10^-7, {x -> -55.0724, y -> 546.446}}

Why is that?

If I specify 100 digits of precision, I get an error term about 3.7 x
10^-10 -- that's pretty good! -- AND AN ERROR BEEP:

FindMinimum[Abs[f[x + I y]], {{x, -58.01}, {y, 478.8}},
    WorkingPrecision -> 100]

{3.7417291260789341618520296735945444149828986724060086999088525772094\
72656250000000000000000000000000*10^-10, {x -> \
-55.072371653747465948819809486578026882606265653690941720656235026717\
07064618557852507862459624203599,
     y -> 546.44562649186209162707047010589625017824622590382086270949585\
77673240377626127957248849440925278654}}

That result (for x and y) agrees with the previous one to 4 decimals, so
surely if I only request 4-digits of precision, FindMinimum can satisfy
itself, yes?

But no:

FindMinimum[Abs[f[x + I y]], {{x, -58.01}, {y, 478.8}},
    WorkingPrecision -> 100, PrecisionGoal -> 4]

{0.0004481017216523239016408297619165068681468255817890167236328125000\
000000000000000000000000000000000000, {x -> \
-55.076570390485819928017008351162075996398925781250000000000000000000\
00000000000000000000000000000000,
     y -> 546.44783762081999611837090924382209777832031250000000000000000\
00000000000000000000000000000000000000}}

Still an error beep.

Is the accuracy goal too high? Let's ask for only TWO digits:

FindMinimum[Abs[f[x + I y]], {{x, -58.01}, {y, 478.8}},
    WorkingPrecision -> 100, PrecisionGoal -> 2, AccuracyGoal -> 2]

{0.0291102550424682353369387755037678289227187633514404296875000000000\
0000000000000000000000000000000000, {x -> \
-55.377760257873731575273268390446901321411132812500000000000000000000\
00000000000000000000000000000000,
     y -> 546.40671819512863294221460819244384765625000000000000000000000\
00000000000000000000000000000000000000}}

Still an error beep.

What am I not getting?

Bobby

On Mon, 11 Apr 2011 06:05:18 -0500, Stephen Luttrell
<steve at _removemefirst_stephenluttrell.com> wrote:

> The roots are complex-valued. Here is a way of finding them:
>
> Define the function whose roots you want.
>
> f[z_] := 11 Exp[-(z/135)] + 10.5` Exp[-(z/425)] + 4.899` Exp[-(z/1754)] +
> 2.02912`;
>
> Contour plot the absolute value over a large enough region to get a feel  
> for
> what the function looks like.
>
> ContourPlot[Abs[f[x + I y]], {x, -200, 300}, {y, -3000, 3000},  Contours  
> ->
> 50]
>
> The zeros all lie at around Re(z) = -50, and they repeat periodically in
> Im(z) as you would expect from the exponential dependence of f(z) on z.
>
> Use your mouse to grab the approximate position of one of the zeros (I  
> got
> {-58.01, 478.8}), and find the minimum.
>
> FindMinimum[Abs[f[x + I y]], {{x, -58.01}, {y, 478.8}}]
>
> which gives
>
> {2.04123*10^-7,{x->-55.0724,y->546.446}}
>


-- 
DrMajorBob at yahoo.com


  • Prev by Date: Re: How to Compile this code (multiple random walks)
  • Next by Date: Re: CDF browser plugin and Wolfram library archive
  • Previous by thread: Re: from Rumen, MEXICO, petition
  • Next by thread: Re: from Rumen, MEXICO, petition