MathGroup Archive 2011

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

Search the Archive

Re: Replacements and NIntegrate

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118628] Re: Replacements and NIntegrate
  • From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
  • Date: Wed, 4 May 2011 19:48:41 -0400 (EDT)

On Wed, 4 May 2011, Giacomo wrote:

> Wonderful!
>
> Simple idea but... I didn't have it! My bad...
>
> Actually, I was also trying to crate a table with the NIntegrate
> function called with different value of the parameters, and run into the
> same problem (Mathematica trying to evaluate the function before the
> values of the parameters are assigned). This solution makes everything
> much easier!
>
> Thanks!
>
> Giacomo
>
> On 03-May-11 17:15, DrMajorBob wrote:
>> Here it is in TWO replacements:
>>
>> dummy[h[z] z/Sqrt[L^2 + z^2], {z, -L, L}] /. vals /.
>>  dummy -> NIntegrate
>>

How about this:

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

Oliver


>> Bobby
>>
>> On Tue, 03 May 2011 15:36:34 -0500, Giacomo <jackspam79 at gmail.com> wrote:
>>
>>> On 03-May-11 13:41, DrMajorBob wrote:
>>>> You answered your own question, since
>>>>
>>>> NIntegrate[ h[z] z / Sqrt[L^2 + z^2]  /.vals, {z, -L /.vals, L/.vals}]
>>>>
>>>> does the replacements before trying to integrate.
>>>>
>>>
>>> I know, but having to specify three time the same replacement rule in
>>> the same expression doesn't look very elegant. :-)
>>>
>>>> Or, you could properly define h[z_,a_,b_....] as a function of its
>>>> arguments and parameters and L[a_,b_, ...] as a function of ITS
>>>> arguments, rather than leaving most of them out.
>>>
>>> Well, L is just a parameter by itself, whose numerical value is
>>> specified in the set of replacement rules "vals" defined at the very
>>> beginning of the notebook. h is indeed a function, but depends on may
>>> "parameters" that are not really "variables". I don't see it
>>> practical (nor clear from a logical point of view) to specify them as
>>> variables...
>>>
>>> Thanks anyway!
>>>
>>> Giacomo
>>>
>>>>
>>>>
>>>> It's generally a good idea to define functions with ALL their
>>>> dependencies obvious in the definition. It leads to less confusion.
>>>>
>>>> Bobby
>>>>
>>>> On Tue, 03 May 2011 04:44:43 -0500, Giacomo Ciani
>>>> <jackspam79 at gmail.com> wrote:
>>>>
>>>>> 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: Re: Bad design in Set?
  • Next by Date: Re: anything faster than Solve[] for solving sets of polynomial equations symbolically?
  • Previous by thread: Re: Replacements and NIntegrate
  • Next by thread: Expected value of the Geometric distribution