Re: error function
- To: mathgroup at smc.vnet.net
- Subject: [mg65996] Re: [mg65985] error function
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 26 Apr 2006 04:37:55 -0400 (EDT)
- References: <200604250919.FAA07113@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
ann wrote:
> Hello everybody,
> I would be greatful if someone can help me with the following
> problem..
>
>
> i have a task of integrating a complicated funtion which upon
> execution gives the result with Erf[] how to get it solved.
>
> To say the problem in detail , i have to do the following operation
>
> Integrate[ (F^2 + C*G^2 ) * Real part of (F*complex conjugate of F *
> exp(I*theta) ] with the limits [-infinity to infinity] where F and G
> are of the form
>
> F=x1 * exp{ (-(t-x2)^2/x3^2 + i/2 * x4(t-xc) + i x4* (t-xc) + i x5 and
> g is of the same form with x replaced with y.
>
> now this results in the erf[of another complicated function]
>
> how to get it solved..or to how should i help mathematica to get it
> completely solved??
>
> expecting suggestions
>
> thankyou in advance
>
> ann.
I'm at a bit of a loss to understand what it is you tried to do, and
what you would like to see happen. What do you wish to solve? What was
your specific input? Output?
Let's start with something that might represent the integral you have in
mind, making certain assumptions in translating to viable Mathematica
format.
ff = x1 * Exp[-(t-x2)^2/x3^2 + I/2*x4*(t-xc) + I*x4*(t-xc) + I*x5]
gg = y1 * Exp[-(t-y2)^2/y3^2 + I/2*y4*(t-yc) + I*y4*(t-yc) + I*y5]
I assume i was meant as I(=Sqrt[-1]), and that t is the variable of
integration. Moreover where you use Exp[I*theta] I assume you had in
mind t (so effectively you will be taking a cosine transform). I also
assume that all constants are real valued and will impose that they are
positive to make the task easier for Integrate's proviso mechanism (I
did not check to see if this made a difference, either in speed or in
the result).
Then the integral can be found as below.
ii = Integrate[(ff^2+gg^2)*
ComplexExpand[Re[ff*Conjugate[ff]+gg*Conjugate[gg]]]*Cos[t],
{t,-Infinity,Infinity},
Assumptions->{x1>0,y1>0,x3>0,x2>0,y2>0,y3>0,x4>0,
y4>0,xc>0,yc>0,x5>0,y5>0}]
From this I obtain the result below.
((E^((3*x3^2*x4*y3^2)/(2*(x3^2 + y3^2))) +
E^(((2*I)*(x3^2*y2 + x2*y3^2))/(x3^2 + y3^2)))*Sqrt[Pi/2]*x1^2*y1^2)/
(2*E^((16*x2^2 - 8*x2*(4*y2 + I*(-1 + 3*x4)*y3^2) +
8*(2*y2^2 - I*(2*x5 - 3*x4*xc)*y3^2) +
x3^2*((-16*I)*x5 + (8*I)*y2 + y3^2 + 9*x4^2*y3^2 +
6*x4*((4*I)*xc - (4*I)*y2 + y3^2)))/(8*(x3^2 + y3^2)))*
Sqrt[x3^(-2) + y3^(-2)]) +
((E^(((2*I)*(x3^2*y2 + x2*y3^2))/(x3^2 + y3^2)) +
E^((3*x3^2*y3^2*y4)/(2*(x3^2 + y3^2))))*Sqrt[Pi/2]*x1^2*y1^2)/
(2*E^((16*x2^2 - 8*x2*(4*y2 + I*y3^2*(-1 + 3*y4)) +
8*(2*y2^2 - I*y3^2*(2*y5 - 3*y4*yc)) +
x3^2*((-8*I)*y2*(-1 + 3*y4) + (y3 + 3*y3*y4)^2 +
(8*I)*(-2*y5 + 3*y4*yc)))/(8*(x3^2 + y3^2)))*
Sqrt[x3^(-2) + y3^(-2)]) +
(E^(I*y2*(-1 + 3*y4) - (y3 + 3*y3*y4)^2/16 + (2*I)*y5 - (3*I)*y4*yc)*
(E^((2*I)*y2) + E^((3*y3^2*y4)/4))*Sqrt[Pi]*y1^4*y3)/4 +
(E^(I*x2*(-1 + 3*x4) - (x3 + 3*x3*x4)^2/16 + (2*I)*x5 - (3*I)*x4*xc)*
Sqrt[Pi]*x1^4*x3*(2*(E^((2*I)*x2) + E^((3*x3^2*x4)/4))*
Sqrt[(8*x2 + I*x3^2*(1 + 3*x4))^2] + E^((2*I)*x2)*
(8*x2 + I*x3^2*(1 + 3*x4))*Erf[Sqrt[(8*x2 + I*x3^2*(1 + 3*x4))^2]/
(4*x3)] - E^((2*I)*x2)*(8*x2 + I*x3^2*(1 + 3*x4))*
Erf[Sqrt[((2*x2)/x3 + (I/4)*(x3 + 3*x3*x4))^2]]))/
(8*Sqrt[(8*x2 + I*x3^2*(1 + 3*x4))^2])
We'll check at a specific set of values for the parameters.
subs = {x1->1.1,y1->1.7,x3->0.4,x2->1.9,y2->0.2,y3->0.5,x4->0.8,
y4->1.6,xc->1.1,yc->0.8,x5->1.2,y5->0.9};
In[8]:= ii /. subs
Out[8]= 1.16009 - 2.10437 I
In[9]:= NIntegrate[(ff^2+gg^2)*
ComplexExpand[Re[ff*Conjugate[ff]+gg*Conjugate[gg]]]*Cos[t] /. subs,
{t,-Infinity,Infinity}]
Out[9]= 1.16009 - 2.10437 I
So it passes a basic sanity check.
In the development version of Mathematica I get a different, Erf-free
result:
(E^(I*x2*(-1 + 3*x4) - (x3 + 3*x3*x4)^2/16 + (2*I)*x5 - (3*I)*x4*xc)*
(E^((2*I)*x2) + E^((3*x3^2*x4)/4))*Sqrt[Pi]*x1^4*x3)/4 +
(E^(I*y2*(-1 + 3*y4) - (y3 + 3*y3*y4)^2/16 + (2*I)*y5 - (3*I)*y4*yc)*
(E^((2*I)*y2) + E^((3*y3^2*y4)/4))*Sqrt[Pi]*y1^4*y3)/4 +
((E^((3*x3^2*x4*y3^2)/(2*(x3^2 + y3^2))) +
E^(((2*I)*(x3^2*y2 + x2*y3^2))/(x3^2 + y3^2)))*Sqrt[Pi/2]*x1^2*x3*y1^2*
y3)/(2*E^((16*x2^2 - 8*x2*(4*y2 + I*(-1 + 3*x4)*y3^2) +
8*(2*y2^2 - I*(2*x5 - 3*x4*xc)*y3^2) +
x3^2*((-16*I)*x5 + (8*I)*y2 + y3^2 + 9*x4^2*y3^2 +
6*x4*((4*I)*xc - (4*I)*y2 + y3^2)))/(8*(x3^2 + y3^2)))*
Sqrt[x3^2 + y3^2]) + ((E^(((2*I)*(x3^2*y2 + x2*y3^2))/(x3^2 + y3^2)) +
E^((3*x3^2*y3^2*y4)/(2*(x3^2 + y3^2))))*Sqrt[Pi/2]*x1^2*x3*y1^2*y3)/
(2*E^((16*x2^2 - 8*x2*(4*y2 + I*y3^2*(-1 + 3*y4)) +
8*(2*y2^2 - I*y3^2*(2*y5 - 3*y4*yc)) +
x3^2*((-8*I)*y2*(-1 + 3*y4) + (y3 + 3*y3*y4)^2 +
(8*I)*(-2*y5 + 3*y4*yc)))/(8*(x3^2 + y3^2)))*Sqrt[x3^2 + y3^2])
It gives the same numeric value on substitution as above.
It is not clear to me if either of these results are what you seek but I
would guess they at least provide a start for either further computation
or refining the question.
Daniel Lichtblau
Wolfram Research
- References:
- error function
- From: "ann" <annjo.puphy@gmail.com>
- error function