stop when not converge
- To: mathgroup at smc.vnet.net
- Subject: [mg7597] stop when not converge
- From: "H.J. Wang" <hungjen at umich.edu>
- Date: Thu, 19 Jun 1997 03:13:59 -0400 (EDT)
- Organization: University of Michigan
- Sender: owner-wri-mathgroup at wolfram.com
How to stop Mma when iterations are not converging? For example, I want to increase x in the function f[x,y] until the value of y solved from FindRoot[ f[x,y]==0, ...] is not a real number OR FindRoot does not converge. More specificly, I tried to do something like the following: g[x_,yIni_] := FindRoot[ f[x_,y_]==0, {y,yIni} ][[1,2]]; (* the Part at the end of the expression is to take out the solution of y *) m=0; xV0=1; yV0=2; (* or something like that *) While[ tem = g[xV0+m, yV0]; Im[tem]==0 && the_findroot_do_converge, m=m+0.01 ]; ( The Im[tem] is to test whether the solution of y is a real number.) So the problem I have is how to specify the condition for "the_findroot_do_converge", or, maybe more easily, "the_findroot_donot_converge"? I want it stops when not converging even though it may return a real number. Thank you in advance for any suggestion. -- H.J. Wang