If & NIntegrate

• To: mathgroup at smc.vnet.net
• Subject: [mg72573] If & NIntegrate
• From: "Jouvenot, Fabrice" <F.Jouvenot at liverpool.ac.uk>
• Date: Thu, 11 Jan 2007 02:08:16 -0500 (EST)

```Hi all !

I have a problem that I cannot resolve, so I hope some one here will be able to help me.

I am doing many calculus and some of them takes very very long time and other never converged. The fact is that I integrate (NIntegrate (1 or 2 dimensional)) functions that contains a IF.

These functions calculated a result and at some point I test if one part of the calculus is either positive or negative. If it is negative, I want the result to be equal to 0.

They have this pattern :
function[x_]:==Module[{},
(different calculus to calculate f)
If[func[a]<0, 0, func[a]];
];

And after :
b==NIntegrate[function[x],{...

So I am looking for a solution to have a quick integration of this function

If this is not explicit enough, I paste an excerpt of my code at the end of this email.
Cheers,

F.

---------------------------------------
\!\(\*
RowBox[{
RowBox[{
RowBox[{
RowBox[{\(d\[Sigma]bremd\[Epsilon][Emu_, Egam_]\), ":==",
RowBox[{"Module", "[",
RowBox[{\({}\), ",", "\[IndentingNewLine]",

RowBox[{\(\[Epsilon]max[E\[Mu]_] :== E\[Mu] - m\_\[Mu]\), ";"
,
"\[IndentingNewLine]", \(\[Epsilon]max2[E\[Mu]_] :==
E\[Mu]/\((1 + m\_\[Mu]\^2/\((2\ \(m\_e\) E\[Mu])\))\)\),

";", "\[IndentingNewLine]",
"\[IndentingNewLine]", \(D\_n == 1.54\ A\^0.27\), ";",
"\[IndentingNewLine]", \(D\_np == D\_n\^\(1 - 1/Z\)\), ";",

"\[IndentingNewLine]",
StyleBox["\[IndentingNewLine]",

FontSize->14], \(v[E\[Mu]_, \[Epsilon]_] :== \[Epsilon]/
E\[Mu]\), ";",
"\[IndentingNewLine]", \(\[Delta][
E\[Mu]_, \[Epsilon]_] :== \(m\_\[Mu]\^2\ v[E\[Mu], \
\[Epsilon]]\)\/\(2 \((E\[Mu] - \[Epsilon])\)\)\), ";", "\[IndentingNewLine]
",
"\[IndentingNewLine]", \(\[CapitalPhi]nTemp[
E\[Mu]_, \[Epsilon]_] :==
Log[\(B\ Z\^\(\(-1\)/3\)\ \((m\_\[Mu] + \[Delta][E\[Mu],
\
\[Epsilon]] \((D\_np\ \@\[ExponentialE] - 2)\))\)\)\/\(\(D\_np\) \((m\_e +
\
\[Delta][E\[Mu], \[Epsilon]] \(\@\[ExponentialE]\) B\ Z\^\(\(-1\)/3\))\)\)]
\),
";", "\[IndentingNewLine]",
"\[IndentingNewLine]", \(\[CapitalPhi]n[
E\[Mu]_, \[Epsilon]_] :==
If[\[CapitalPhi]nTemp[E\[Mu], \[Epsilon]] < 0,
0, \[CapitalPhi]nTemp[E\[Mu], \[Epsilon]]]\), ";",
"\[IndentingNewLine]", "\[IndentingNewLine]",
" ", \(\[CapitalPhi]eTemp[E\[Mu]_, \[Epsilon]_] :==
Log[\(B\ Z\^\(\(-2\)/3\)\ m\_\[Mu]\)\/\(\((1 + \(\[Delta]
\ \
[E\[Mu], \[Epsilon]] m\_\[Mu]\)\/\(\(m\_e\^2\) \@\[ExponentialE]\))\) \((m\
_e \
+ \[Delta]\ [E\[Mu], \[Epsilon]] \(\@\[ExponentialE]\) \(B\_p\) Z\^\(\(-2\)
/3\
\))\)\)]\), ";",
"\[IndentingNewLine]", \(\[CapitalPhi]e[
E\[Mu]_, \[Epsilon]_] :==
If[\[CapitalPhi]eTemp[E\[Mu], \[Epsilon]] <
0 || \((\[Epsilon] >== \ \[Epsilon]max2[E\[Mu]])\),

0, \[CapitalPhi]eTemp[E\[Mu], \[Epsilon]]]\), ";",
"\[IndentingNewLine]", "\[IndentingNewLine]",
"\[IndentingNewLine]", \(dsbremdE[E\[Mu]_, \[Epsilon]_] :==

16\/3\ \[Alpha]\ \(\((r\_e\ m\_e\ /m\_\[Mu])\)\^2\ Z\ \((
Z\ \
\[CapitalPhi]n[E\[Mu], \[Epsilon]] + \[CapitalPhi]e[E\[Mu], \
\[Epsilon]])\)\)\/\[Epsilon]\ \((1 -
v[E\[Mu], \[Epsilon]] + \(3  v[E\[Mu], \[Epsilon]]\
^2\
\)\/4)\)\), ";", "\[IndentingNewLine]", \(dsbremdE[Emu, Egam]\)}]}],
"\[IndentingNewLine]", "]"}]}], ";"}], "\[IndentingNewLine]",

"\[IndentingNewLine]",
StyleBox[\( (*\ Total\ cross\ section\ \[Sigma]\_Brem\ /m\ *) \),
FontColor->RGBColor[0, 0, 1]],
StyleBox["\[IndentingNewLine]",
FontSize->14], \(sectionbrem[E\[Mu]_] :==
Module[{},
NIntegrate[
d\[Sigma]bremd\[Epsilon][E\[Mu], \[Epsilon]], {\[Epsilon],
Eminbrem, E\[Mu] - m\_\[Mu]}]*unit]\)}], ";"}]\)

```

• Prev by Date: Re: ListDimension function
• Next by Date: Re: ListDimension function
• Previous by thread: Re: Problem with Position applied on 2D list?
• Next by thread: Re: If & NIntegrate