Bug [1965640] Problems with $specint - commit message
Subject: Bug [1965640] Problems with $specint - commit message
From: Dieter Kaiser
Date: Sat, 5 Jul 2008 10:18:32 +0200
Because the commit message is missing I post it:
Modified Files: hypgeo.lisp
Log Message:
Bug [1965640] Problems with $specint
Correction of bugs:
1. More special pattern C*T^V for LT-ARBPOW1:
The pattern was too general. Maxima matched integrands like u(t)*t^v and got a
wrong results. Now the pattern match will fail when C depends on the integration
variable.
2. More special pattern A*X^M+C:
This pattern is used for the argument of the Hypergeometric respresentation of
the special function. The pattern was too general. Maxima matched cases like
a*x^2+b*x+c and got wrong results.
3. Bug in LTW for the Laguerre function:
The algorithm to transform the Generalized Laguerre function used the Factorial
function and a representation as Whittaker W function. The Factorial function
doesn't work for symbols. The correct Gamma factors have to be used. Furthermore
the correct transformation is in terms of the Whittaker M function.
4. PSEY problem:
A rule for the sign of PSEY is added. In a lot of cases Maxima no longer ask for
the sign of PSEY. BUT: For more complicated integrals Maxima ask futher for the
sign of expressions which involve the variable PSEY. Remark: The question arise
in the code for simplification of the Hypergeometric represensation, but after
the extension to integrate sums we can get the question also when simplifying
sums.
5. Bessel I without phase factors:
When inserting %i directly in the transformation from Bessel I to Bessel J all
extra phase factors vanish. The results are much more simple. There are lot of
more places this change could be done.
6. Bug in LT-Exp and F35P147:
Trigonometric and Hyperbolic functions with sqrt(t) as argument didn't work. We
lost the sign in the calculation and got wrong results. The algorithm is
corrected.
7. Bug in LT-EXP and F29P149, F36P147 and F37p147:
The constant term C was omitted in the calculation. We got wrong results.
Additionally we have to check for V=0. Because Maxima has no algorithm for
V<>0.
Extensions of $specint to get more results:
8. More general mechanism to return a noun form:
It is not possible to build up the noun form in a simple way at all places of
the code. It is more easy to set a global flag which is called
*hyp-return-noun-form- flag*. The noun form is generated at one place in the
routine defexec. At this point we have allready split up the integral in a sum
and we could get partially evaluated integrals. This mechanism can be fully
implemented at all places we need to signal the return of a noun form.
9. Extracting a constant denominator:
The algorithm to evalute the integral distribute the exponential terms over a
sum of a denominator of the form (a+b+c+...). Maxima can do the correct
calculation when we extract such a denominator in the routine DEFINTEGRATE.
10. Try do factor when we don't get a parameter:
A constant denominator is allready extracted. But when we have a denominator
which depends on the variable of the integration e.g. (1+t)^-1 Maxima didn't
find the parameter of the integration. So we try to factor the integrand in the
routine DEFEXEC to get the parameter.
11. Sum of Exponential functions:
Implementation of patterns to match sums of Exponential functions. Maxima now
get results for integrands with factors t^-1 or t^-2 and Trigonometric or
Hyperbolic functions e.g. t^-1*sin(a*t) or t^-2*(1-cosh(a*t))
12. Algorithm for C*T^V*(A+B*T)^W:
The general solution can be expressed in terms of the Hypergeometric U function.
Besides the general solution some special cases are implemented.
13. Algorithm for T^(V-1)*LOG(A*T):
The integration of the Hypergeometric representation of the Logarithmic function
doesn't work. Therefore an special algorithm is implemented.
14. Algorithm for a sum:
$specint now has an algorithm to integrate the summand of a sum.
15. Algorithm for the Unit Step:
The translation of the Laplace transform by a Unit Step function is implemented.
This works also for sums which include the Unit Step function.
Changes to rtest14.mac:
The Problems 55,150,157 now give a more correct noun form. The expexted results
are adjusted.
Add the test file rtest_hypgeo.mac to the testsuite.
Changes to testsuite.lisp:
Appending rtest_hypgeo.mac to the list of test files. The tests 143 and 226 are
declared to be an expected error.
The testsuite runs without problems. Without the corrections and extensions to
the code 125 Problems of rtest_hypgeo.mac will fail.
Dieter Kaiser