MathGroup Archive 1999

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

Search the Archive

Re: goto & Findmininimum

  • To: mathgroup at
  • Subject: [mg20922] Re: [mg20914] goto & Findmininimum
  • From: Hartmut Wolf <hwolf at>
  • Date: Wed, 1 Dec 1999 01:49:53 -0500 (EST)
  • Organization: debis Systemhaus
  • References: <>
  • Sender: owner-wri-mathgroup at

Albert Maydeu-Olivares schrieb:
> Greetings,
> I have a Do loop of the type
> Do[
> Label[begin]
> Generate Data
> FindMinimum
> Do something to the result, {times}]
> When FindMinimum does not converge in x iterations it gives the message
> FindMinimum::"fmlim": "The minimum could not be bracketed in x iterations."
> How do I get Mathematica to transfer control to "begin" using Goto when
> FindMininumn does not converge?

Dear Albert,

you may proceed along these lines

  Generate Data;
  Check[FindMinimum, Continue[]];
  Do something to the result,

(no Label), so e.g. try

Do[x = i^2; y = Sin[i Pi/2];
  Print[Check[x/y, Continue[]]],
  {i, 1, 5}]

you will get reasonable answers for i=1,3,5 and error massage for i=2,4.

In case you don't want to have your output cluttered with the error
messages (and you know very well, when your calculations won't succeed),
you may use Carl K.Woll's <mailto:carlw at>
SilentCheck, which he published recently. For your convenience I copy it

SetAttributes[SilentCheck, {HoldAll}]

SilentCheck::usage = 
    "SilentCheck[expr,failexpr] evaluates expr, and returns the result,
unless messages were generated, in which case it evaluates and returns \
failexpr. SilentCheck suppresses the output of the messages generated in
evaluating expr.";

SilentCheck[expr_, err_] := Module[{ans, flag}, Unprotect[Message];
    _Message := Throw[flag, SilentCheck];
    ans = Catch[expr, SilentCheck];
    If[ans === flag, err, ans]]

So then

Do[x = i^2; y = Sin[i Pi/2];
  x=SilentCheck[x/y, Continue[]];
  {i, 1, 5}]

Kind regards, Hartmut

  • Prev by Date: Re: the new @@@ thing, MapApply?
  • Next by Date: Re: Convex Hull
  • Previous by thread: Re: goto & Findmininimum
  • Next by thread: Re: Calling a c++ dll with Mathlink