MathGroup Archive 2011

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

Search the Archive

Replacements and NIntegrate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118561] Replacements and NIntegrate
  • From: Giacomo Ciani <jackspam79 at gmail.com>
  • Date: Tue, 3 May 2011 05:44:43 -0400 (EDT)

Hi all,

I've been reading quite a bit in the Mathematica docs and in this
newsgroup, but didn't find (or didn't recognize...) an answer to my
problem.

I want to evaluate the following expression:

NIntegrate[h[z] z/Sqrt[L^2 + z^2], {z, -L, L}]

where h[z] has a delayed value set previously in the notebook. Also, I
have previously defined a set of replacement rules in the form:

vals = {a->1, b->2, ec....}

to be used to specify the numerical values of the various parameters
(including those present in the delayed value of h[z]).

As for now, the only (brute force) way I found to have my expression
correctly evaluated is to apply replacement rules separately to each
argument of NIntegrate (including integration limits):

NIntegrate[ h[z] z / Sqrt[L^2 + z^2]  /.vals, {z, -L /.vals, L/.vals}]

I think you agree with me that this does not look very elegant.
Instead, I would like to be able to write something like this:

NIntegrate[h[z] z/Sqrt[L^2 + z^2], {z, -L, L}]/.vals

I know this can't work, as Mathematica tries to evaluate NIntegrate
and then apply the replacement rules... but how can I ask Mathematica
to apply all the replacement rules and delayed values to an expression
without (or before) actually trying to evaluate it?

I found a lot of commands to hold the function from evaluating the
arguments, while I need pretty much the opposite...

Maybe there is something very simple I am overlooking...

Thanks

Giacomo


  • Prev by Date: RuleDelayed and Integration
  • Next by Date: Re: Limit[f[x], x->a] vs. f[a]. When are they equal?
  • Previous by thread: RuleDelayed and Integration
  • Next by thread: Re: Replacements and NIntegrate