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