Re: Stuck in a For Loop
- To: mathgroup at smc.vnet.net
- Subject: [mg31044] Re: Stuck in a For Loop
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Sat, 6 Oct 2001 03:32:07 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <9p2pdo$30a$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
When will the test c0 <=c0+0.1 give you False ? with a high precision arithmetic ? Regards Jens Moranresearch at aol.com wrote: > > I am trying to iterate from c0 -.1 to c0+.1 in steps of 0.001 and from K=-2 > to k= 2 insteps of 0.01 > > The code below hangs up. Any suggestions appreciated. Thank you. > > de = {0.221`, 0.45225`, 0.6602777777777777`, 0.8903611111111112`, > 1.0920277777777778`, 1.3204166666666668`, 1.5235833333333335`, > 1.7480833333333334`}; > ce = {6.1280277777777785`, 6.129388888888888`, 6.129833333333334`, > 6.130222222222223`, 6.1306111111111115`, 6.130916666666667`, > 6.131055555555555`, 6.130972222222223`}; > c0 = ce[[1]]; > MAXERR = 100000; K = 10; > minErr = MAXERR; > bestK = STARTK; > numConvergence = 0; > For[c0 = c0 - 0.1, c0 <= c0 + 0.1, c0 += 0.001, > For[K = -2.0, K <= 2.0, K += 0.01, sum = 0.0; num = 0; > c02 = c0*c0; > For[j = 0, j < 7, j++, > If[(c0 > 0), r = de[j]; c = ce[j]; > sum += Abs[(Sqrt(c02 - K*r*r) - c)]; num++;]]; > If[(num <= 0), Continue]; > err = sum/num; > If[(err < minErr), bestc0 = c0; bestK = K; minErr = err; > numConvergence++;];];]; > If[(numConvergence == 1), STARTK, bestK]