## maxima-commits

 [Maxima-commits] CVS: maxima/tests rtest_hypgeo.mac,1.14,1.15 From: Dieter Kaiser - 2009-09-28 21:32:21 ```Update of /cvsroot/maxima/maxima/tests In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv7916/tests Modified Files: rtest_hypgeo.mac Log Message: Adding some tests for the Laplace transform of the Parabolic Cylinder D function. Index: rtest_hypgeo.mac =================================================================== RCS file: /cvsroot/maxima/maxima/tests/rtest_hypgeo.mac,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- rtest_hypgeo.mac 26 Sep 2009 17:39:40 -0000 1.14 +++ rtest_hypgeo.mac 28 Sep 2009 21:32:10 -0000 1.15 @@ -2006,6 +2006,87 @@ ratsimp(specint(exp(-s*t)*t^2*bessel_y(1,t),t) - 1/(2*%i)*(res1-res2)); 0; +/******************************************************************************* + * + * We know the following Laplace transform of the Parabolic Cylinder D function: + * (functions.wolfram.com) + * + * t^(a-1)*D[v](sqrt(t)) + * -> 2^(-a+v/2+1)*sqrt(%pi)*gamma(2*a)/gamma(a+(1-v)/2) + * *2F1([a,a+1/2],[a+(1-v)/2],1/2-2*t) + * + * Check this formula for some values. + */ +(assume(4*?psey-1>0, 4*s-1>0),done); +done; + +(lt(a,v,z):=2^(-a+v/2+1)*sqrt(%pi)*gamma(2*a)/gamma(a+(1-v)/2) + *hgfred([a,a+1/2],[a+(1-v)/2],1/2-2*z),done); +done; + +res:factor(ratsimp(specint(exp(-s*t)*%d[0](sqrt(t)),t))); +4/(4*s+1); + +res-factor(ratsimp(lt(1,0,s))); +0; + +res:factor(ratsimp(specint(exp(-s*t)*%d[1](sqrt(t)),t))); +4*sqrt(%pi)/(4*s+1)^(3/2); + +res-factor(ratsimp(lt(1,1,s))); +0; + +res:factor(ratsimp(specint(exp(-s*t)*%d[2](sqrt(t)),t))); +-4*(4*s-3)/(4*s+1)^2; + +res-factor(ratsimp(lt(1,2,s))); +0; + +res:factor(ratsimp(specint(exp(-s*t)*t*%d[2](sqrt(t)),t))); +-16*(4*s-7)/(4*s+1)^3; + +res-factor(ratsimp(lt(2,2,s))); +0; + +res:factor(ratsimp(specint(exp(-s*t)*t^2*%d[2](sqrt(t)),t))); +-128*(4*s-11)/(4*s+1)^4; + +ratsimp(res-factor(ratsimp(lt(3,2,s)))); +0; + +res:factor(ratsimp(specint(exp(-s*t)*%d[1/2](sqrt(t)),t))); +2^(3/2)*sqrt(%pi)*assoc_legendre_p(3/4,-1/4,sqrt(2)/sqrt(4*s+1)) + /((4*s-1)^(1/8)*(4*s+1)^(7/8)); + +ratsimp(res-factor(ratsimp(lt(1,1/2,s)))); +0; + +/******************************************************************************* + * + * BUG ID: 2867727 - specint: wrong result for Parabolic Cylinder D function + * + * The Laplace transform for the Parabolic Cylinder D function should only + * work for an argument a*t. Check this. + * + * But the Parabolic Cylinder D function has simple expansions for an + * integer order: + * d[0](z):=exp(-z^2/4), + * d[1](z):=z*exp(-z^2/4) + * We show the results for later improvement of the code. + */ + +factor(ratsimp(specint(exp(-s*t)*exp(-t^2/4),t))); +-sqrt(%pi)*%e^s^2*(erf(s)-1); + +factor(ratsimp(specint(exp(-s*t)*%d[0](t),t))); +'specint(exp(-s*t)*%d[0](t),t); + +factor(ratsimp(specint(exp(-s*t)*t*exp(-t^2/4),t))); +2*(sqrt(%pi)*s*%e^s^2*erf(s)-sqrt(%pi)*s*%e^s^2+1); + +factor(ratsimp(specint(exp(-s*t)*%d[1](t),t))); +'specint(exp(-s*t)*%d[1](t),t); + /******************************************************************************/ kill(all); ```