MathGroup Archive 2005

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

Search the Archive

Re: NIntegrate::inum continued

  • To: mathgroup at smc.vnet.net
  • Subject: [mg59131] Re: NIntegrate::inum continued
  • From: Peter Pein <petsie at dordos.net>
  • Date: Sat, 30 Jul 2005 01:25:04 -0400 (EDT)
  • References: <dcccp4$3gd$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

wtplasar at lg.ehu.es schrieb:
> Hi,
>
> I have these code which is a modification on a code which was improved =

> by one of the mathgroup members (see the original message below). When =

> I evaluate it a get a Recursion Limit problem. Can you help me?
>
>
> In[1]:=
> datanw={{0.04`,36.38`,0.19`},{0.05`,36.84`,0.21`},
> {0.0307`,35.9`,0.2`}};
>
> In[2]:=
> ndat=3;
>
> In[3]:=
> Nn = ndat;
>
> In[4]:=
> z =datanw[[#1,1]]  & ; mi = datanw[[#1,2]] & ;
>  smi =datanw[[#1,3]] & ; SetAttributes[smi, Listable]; f[
>     x_, om_, w_] := 1/Sqrt[om*(1 + x)^3 + (
> 1 - om)*(1 + x)^(3*(1 + w))]; rr[1, om_, w_] := rr[1, om, w] =
>       NIntegrate[f[x, om, w], {x, 0, 1}];
>       rr[zz_, om_, w_] := rr[zz, om, w] = NIntegrate[f[x,
>                  om, w], {x, zz -
>                   1, zz}] + rr[zz - 1, om, w]; ff[zz_, om_, w_] :=
> 5*Log[
>       10, rr[zz, om,
>     w]*(1 + zz)]; ci = Sum[1/smi[
>       i]^2, {i, 1, Nn}]; chi2f2[(om_)?
>           NumericQ, (w_)?NumericQ] := Module[{vec = ((mi[#1] - ff[z=

> [#1], om,
>       w])/smi[#1] & ) /@
>         Range[Nn]}, vec . vec - Total[vec/smi[Range[Nn]]]^2/ci];
>
>
>
> ---------- Mensaje reenviado ----------
> Para: mathgroup at smc.vnet.net
> Asunto: NIntegrate::inum
> De: <wtplasar at lg.ehu.es>
> Fecha: Thu, 28 Jul 2005 02:35:51 +0200 (CEST)
>
> Hi,
>
> I have to minimize a function which is defined through a numerical
> integral. I get the "NIntegrate::inum .." error message. I know I can
> switch it off, but I wonder if there is a more elegant way to deal
> with the problem.
>
> These my input and output lines:
> In[1]:=
> Do[z[i] = i, {i, 1, 50}]
> Do[mi[i] = i^2, {i, 1, 50}]
> Do[smi[i] = i^3, {i, 1, 50}]
>
> In[4]:=
> f[x_, om_, w_] := 1/Sqrt[om (1 + x)^3 + (1 - om)(1 + x)^(3*(1 + w))];=

> rr[zz_?NumberQ, om_, w_] := NIntegrate[f[x, om, w], {x, 0, zz}];
> ff[zz_?NumberQ, om_, w_] := 5*Log[10, rr[zz, om, w]*(1 + zz)];
> Nn = 50;
>
> In[8]:=
> ci = Sum[1/smi[i]^2, {i, 1, 50}];
>
> In[9]:=
> chi2f2[om_, w_] := Sum[(mi[i] - ff[z[i], om, w])^2/smi[i]^2, {i, 1,
> Nn}] -
> (Sum[(mi[i] - ff[z[i], om, w])/smi[i]^2, {i, 1, Nn}])^2/ci
>
> In[10]:=
> Timing[NMinimize[{chi2f2[om, w], 0 =A1=DC om =A1=DC 1}, {om, w}]]
>
> NIntegrate::inum: Integrand ..... is not numerical at {x} = {0.5}
>
> Out[10]=
> {38.966 Second, {0.26337, {om -> 0.999998, w -> 0.0738109}}}
>
>
> Thanks in advance,
>
> Ruth Lazkoz
>

In this case, there are other first arguments for rr possible than
positive Integers. Replace the two definitions for rr by
rr[zz_?NumericQ,om_?NumericQ,w_?NumericQ]:=NIntegrate[f[x,om,w],{x,0,zz=
}];
and chi2f2[(om_)?NumericQ, (w_)?NumericQ]:=... by chi2f2[om_,w_]:=...=
=2E

Good luck,
Peter
--
Peter Pein
Berlin
http://people.freenet.de/Peter_Berlin/


  • Prev by Date: Re: Add terms surrounded by zero together in matrix
  • Next by Date: Re: Add terms surrounded by zero together in matrix
  • Previous by thread: NIntegrate::inum continued
  • Next by thread: "Gilmar's Postulate"