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