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