MathGroup Archive 2007

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

Search the Archive

Re: Mathematica Numerical Integration and For Loop

  • To: mathgroup at smc.vnet.net
  • Subject: [mg81978] Re: Mathematica Numerical Integration and For Loop
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Mon, 8 Oct 2007 00:05:50 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <fea9tf$k99$1@smc.vnet.net>

General wrote:

> I have a function which I have numerically integrated in Mathematica. I would like to be able to change a parameter of that function and re-evaluate that integral and then record the answer. 
> 
> Since this needs to be done for vary small changes of that independent variable it would be impossible for me to sit down and do it one by one. 
> 
> I am thinking of using a for loop but I cannot understand how to use it in my case.
> 
> I would appreciate anyones help/
> 
> Here is the form of the function that I am integrating
> 
> NIntegrate[
>  ref[\[lambda], \[Theta], \[Phi], \[Pi]/5, (2 \[Pi])/5], {\[Theta], 
>   0, \[Pi]}, {\[Phi], 0, 2 \[Pi]}]
> 
> I would like to be able to change the first variable within my ref function. This is lambda. So I want lambda to take different values within a range of 0 to 10 with increments of 0.01 and then store the output of the numerical integration. I would then like to plot lambda against the values obtained from the numerical integration. 

Forget about the for-loop construction and use *Table* instead. Below, I 
have cooked up a fully working example (though not very interesting from 
the mathematical point of view).

(* First, we define a function with a check on each variable to ensure 
that   f will be called by *NIntegrate* only if its arguments are 
numeric. *)

f[x_?NumericQ, y_?NumericQ, p_?NumericQ] := Exp[-x + y] Sin[p]

(* Then, we construct a list of points. Each point is a pair of values
that hold the value of p and the result of the numerical integration. *)

data = Table[{p,
     NIntegrate[f[x, y, p], {x, 0, \[Infinity]}, {y, 0, 1}]}, {p, 1,
     10, 1/10}];

(* Finally, we plot this list of pairs with *ListPlot*. *)

ListPlot[data]

Regards,
-- 
Jean-Marc


  • Prev by Date: Re: What is the purpose of the Defer Command?
  • Next by Date: Re: Why is FindRoot[] HoldAll?
  • Previous by thread: Re: Mathematica Numerical Integration and For Loop
  • Next by thread: Re: Mathematica Numerical Integration and For Loop