# Strange behviour when trying to integrate gaussian function. bug? I was trying integrate the following function

y=var('y')
integrate(x*exp(-(x-y)*(x-y)*2.0),x)


$$\frac{1}{8} \, {\left(\frac{2 \, {\left(\text{erf}\left(\sqrt{2} \sqrt{{\left(x - y\right)}^{2}}\right) - 1\right)} {\left(x - y\right)} \sqrt{\pi} y}{\sqrt{{\left(x - y\right)}^{2}}} - \sqrt{2} e^{\left(-2 \, {\left(x - y\right)}^{2}\right)}\right)} \sqrt{2}$$ The integral can easily be done by redefining variables and does not have to be expressed in terms of error functions. Also the behavior of sage becomes even strange when I change the coefficient from 2.0 to 2.1. Sage just refuses to do the integral

integrate(x*exp(-(x-y)*(x-y)*2.1),x)


$$\int x e^{\left(-2.1 \, {\left(x - y\right)}^{2}\right)}\,{d x}$$

Any ideas on how to make sage give an answer in the usual exponential form?

Edit: Sorry. My bad. It is an error function. However, I expect error function even for the second example, when I replace 2 by 2.1. Any ideas why that is the case?

edit retag close merge delete

Could you be specific about the transformation you have in mind? As usual, I'm missing something-- I can't see how to do it without an erf popping up. (And you should expect this comment to vanish after I realize how stupid I was. :^)

@DSM - no need to make comments vanish, that's part of the open development process, to keep a record of everyone's thoughts. "Stupid" comments may later turn out to be prescient.

Sort by » oldest newest most voted

I assume this is still not what you want, as it doesn't use any substitution as you suggest, but it does seem to work:

sage: integrate(x*exp(-(x-y)*(x-y)*2.1),x)
-1/882*I*(21*I*(erf(sqrt(21/10)*sqrt((x - y)^2)) - 1)*(x - y)*sqrt(pi)*y/sqrt((x - y)^2) - I*sqrt(10)*sqrt(21)*e^(-21/10*(x - y)^2))*sqrt(10)*sqrt(21)


This is coming from Maxima, of course.

$$-\frac{1}{882} i {\left(\frac{21 i {\left(\text{erf}\left(\sqrt{\frac{21}{10}} \sqrt{{\left(x - y\right)}^{2}}\right) - 1\right)} {\left(x - y\right)} \sqrt{\pi} y}{\sqrt{{\left(x - y\right)}^{2}}} - i \sqrt{10} \sqrt{21} e^{\left(-\frac{21}{10} \, {\left(x - y\right)}^{2}\right)}\right)} \sqrt{10} \sqrt{21}$$

If I do simplify_full() to the answer, I get something that looks like

$$-\frac{1}{882} {\left(10 \sqrt{3} \sqrt{7} e^{\left(\frac{21}{5} x y\right)} + 21 {\left(\sqrt{2} \sqrt{5} y e^{\left(\frac{21}{10} x^{2} + \frac{21}{10} y^{2}\right)} \text{erf}\left(-\frac{1}{10} {\left(\sqrt{3} \sqrt{7} x - \sqrt{3} \sqrt{7} y\right)} \sqrt{2} \sqrt{5}\right) - \sqrt{2} \sqrt{5} y e^{\left(\frac{21}{10} x^{2} + \frac{21}{10} y^{2}\right)}\right)} \sqrt{\pi}\right)} \sqrt{3} \sqrt{7} e^{\left(-\frac{21}{10}x^{2} - \frac{21}{10} y^{2}\right)}$$

which is still messy but at least doesn't have any imaginary components. Is this not sufficient?

more

Can you elaborate on how you got the quoted answer? I am still getting this as the output \int x e^{\left(-2.1 \, {\left(x - y\right)}^{2}\right)}\,{d x}

I literally typed integrate(x*exp(-(x-y)*(x-y)*2.1),x). If you do A=integrate(x*exp(-(x-y)*(x-y)*2.1),x), and then A.simplify_full(), you get the last thing. What version of Sage are you using? Maxima has steadily improved its integration ability, and we try to keep up with it.