Re: Do loop is faulty
- To: mathgroup at smc.vnet.net
- Subject: [mg55386] Re: [mg55368] Do loop is faulty
- From: DrBob <drbob at bigfoot.com>
- Date: Mon, 21 Mar 2005 03:01:53 -0500 (EST)
- References: <200503200912.EAA28772@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
First, note that this statement has no effect or purpose whatsoever: Array[c,10]; (except to make c a Global variable). You probably thought you were "declaring" an array, specifying its length, or some such thing. But you weren't. Second, this statement is incomplete: Do[c[i]=NIntegrate[a[i]*x*Sin[b[i]*x],{x,0,b[i]}] You omitted Do's iterator, so possibly you meant something like Do[c[i]=NIntegrate[a[i]*x*Sin[b[i]*x],{x,0,b[i]}],{i,1,10}] That is fine if a, b, and c are functions, but you said a and b were arrays. In that case, here's a solution that makes c a function, ending with an array formed from it: a = Range[10]; b = Range[10]; Clear[c] Do[c[i] = NIntegrate[ a[[i]]*x*Sin[b[[i]]*x], {x, 0, b[[i]]}], {i, 1, 10}] c /@ Range[10] {0.301169, 0.928886, 2.87076, 3.75866, -4.98248, 0.602486, -2.2404, -3.01985, \ -7.06016, -8.67383} Here's a solution that makes c an array: Clear@c c = Table[NIntegrate[a[[i]]*x*Sin[b[[i]]*x], {x, 0, b[[i]]}], {i, 1, 10}] {0.301169, 0.928886, 2.87076, 3.75866, -4.98248, 0.602486, -2.2404, -3.01985, \ -7.06016, -8.67383} And here's another interesting method: c = NIntegrate[#1,{x,0,#2}]&@@@Transpose@{a x Sin[b x],b} {0.301169, 0.928886, 2.87076, 3.75866, -4.98248, 0.602486, -2.2404, -3.01985, \ -7.06016, -8.67383} > This is sheer headache. I will never try to use Mathematica for > numerical analysis again. Did you expect to master the language without study or practice? I hope you don't give up on everything in life so quickly. Bobby On Sun, 20 Mar 2005 04:12:05 -0500 (EST), dumb_founded <andreajagger_8 at hotmail.com> wrote: > I define array a[i] and array b[i] of dimension 10. Then I go through > the following Do loop, or try to, that is. > > > Array[c,10]; > Do[c[i]=NIntegrate[a[i]*x*Sin[b[i]*x],{x,0,b[i]}] > > I get numerous error messages saying that b[i] is not a valid limit of > integration. > > This is sheer headache. I will never try to use Mathematica for > numerical analysis again. > > All your efforts on this matter are sincerely appreciated. > > > > Thanks > > > > -- DrBob at bigfoot.com
- References:
- Do loop is faulty
- From: "dumb_founded" <andreajagger_8@hotmail.com>
- Do loop is faulty