kill(all)$

math : How to use gamma function evaluation gauss function 0 to inf,version1.0
peter.vlasschaert@gmail,22/05/2023

info :file:///C:/maxima-5.46.0/share/maxima/5.46.0/doc/html/maxima_singlepage.html#index-gammalim

plot : gauss function : exp(-x^2)
------------------------------------------

wxplot2d([exp(-x^2)], [x,-10,10])$

symmetric along y-axis,seefig.

gauss : integration from -∞ to ∞
-------------------------------------------

pa1:'integrate(exp(-x^2),x,0,inf) = integrate(exp(-x^2),x,0,inf);

pa2:'integrate(exp(-x^2),x,-inf,0) = integrate(exp(-x^2),x,-inf,0);

even function : f(x) =f(-x)
---------------------------------

paa1:args(lhs(pa1));

paa2:paa1[1];

f(x):=''paa2;

paa3:f(-x)=f(x);

check : even

paa4:is(paa3);

How to use : integral 
----------------------------

pb:'integrate(exp(-x^2),x,-inf,inf) =2*'integrate(exp(-x^2),x,0,inf);

pb1:ev(pb,nouns);

check ;

pb2:is(pb1);

How to use : change of variables with integration
-----------------------------------------------------------------
see : also , "below"

p1:'integrate(1/(1+x),x) =integrate(1/(1+x),x);

p11:'integrate(1/(1+x),x) = changevar(p1, y=1+x, y, x);

Gamma Function :Γ(z)
=================
        →  gamma_expand:true           

→ my Gamma:
============

Gamma(z) := integrate(x^(z-1)*exp(-x),x,0,∞);

→build Maxima:
=============
When gamma_expand is true, Maxima expands gamma for arguments z+n and z-n where n is an integer. 

p3:gamma(z+1);

p3a:gamma_expand:true$
p3b:ev(p3,nouns);

convert : gamma to factorial

p3c:makefact(gamma(z+1));

declare(n,integer);

assume(a>0,n>0);

p4a:'integrate(x^n*exp(-a*x^2),x,0,inf) =integrate(x^n*exp(-a*x^2),x,0,inf);

assume(m>0);

rem : example m: 0.1,1/2,3/2,4

p4b:'integrate(x^n*exp(-a*x^m),x,0,inf) =integrate(x^n*exp(-a*x^m),x,0,inf);

Menu : Calculus → Change variables :
=============================
--------------------------------------------------------
integral : rhs(p4b)
old   variable : x
new variable : y
equation       : y=-a*x^m
--------------------------------------------------------

p4ba:changevar(rhs(p4b), y=a*x^m, y, x);

check :

p4ba1:is(rhs(p4b) =p4ba);

example : m = 3/2

v: 3/2;

p4b1:'integrate(x^n*exp(-a*x^v),x,0,inf) =integrate(x^n*exp(-a*x^v),x,0,inf);

try : solve : integrate(x^n*exp(-a*x^m),x,0,inf);
------------------------------------------------------------

first step: args
-------------------
use :p4b

p5a:args(lhs(p4b));

p5a1:p5a[1];

second step :  y=a*x^m, see "above why"
-----------------------------------------------------

p5b:y=-1*args(args(p5a1)[2])[2];

declare(m,integer);

p5b1:ratsimp(solve(p5b,x)[1]);

because : x^n , into integrandum

p5b2:(p5b1)^n;

thrid step : dy for dx 
----------------------------

p5c:dy = diff(rhs(p5b),x)*dx;

p5c1:solve(p5c,dx)[1];

use :p5b1

p5c2:subst([p5b1],p5c1);

p5c2a:ratsimp(rhs(p5c2)/dy);

fourth step : y integrandum
-------------------------------------

x : old variables

p5d:p5a1;

y : new variables

                  →  y: step 1

p5d1:reverse(p5b);

p5d2:p5b2;

p5d2:subst([p5d1,p5d2],p5d);

                 → y: step 2

use : dx ."p5c2a"

p5d3 :ratsimp(p5d2*p5c2a);

ask : rerun document,type y; then shift-enter.
-----------------------------------------------------------

use :"Is "(n+1)/m" an "integer"?"y;

p5d4:ratsimp(integrate(p5d3,y,0,∞));

p5d4:rhs(p4b);

check :

is(p5d4=rhs(p4b));

variables : n= 0
                 m=2

use :p5d4

use : variables :

n:0;
m:2;
a:1;

p6:'integrate(exp(-x^2),x,0,inf) =p5d4;

see : above , check out,see "pa2"

p6a:ev(%);

-----------------------------------------------------------------------------------