MathGroup Archive 2011

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

Search the Archive

Re: from Rumen, MEXICO, petition

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118130] Re: from Rumen, MEXICO, petition
  • From: "Stephen Luttrell" <steve at _removemefirst_stephenluttrell.com>
  • Date: Wed, 13 Apr 2011 05:54:56 -0400 (EDT)
  • References: <io17i2$i7g$1@smc.vnet.net>

For this problem you can use the Method option to get an error-free result:

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}}, Method -> 
"PrincipalAxis"]

which gives


-- 
Stephen Luttrell
West Malvern, UK


"DrMajorBob" <btreat1 at austin.rr.com> wrote in message 
news:io17i2$i7g$1 at smc.vnet.net...
> 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 change the page margin?
  • Next by Date: FindFit[] Blues
  • Previous by thread: Re: from Rumen, MEXICO, petition
  • Next by thread: Selecting round parentheses arguments