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