Nächste: Functions and Variables for abs_integrate, Vorige: abs_integrate, Nach oben: abs_integrate [Inhalt][Index]
The package abs_integrate
extends Maxima’s integration code to
some integrands that involve the absolute value, max, min, signum, or
unit step functions. For integrands of the form \(p(x) |q(x)|\),
where \(p\) is a polynomial and \(q\) is a polynomial that
factor
is able to factor into a product of linear or constant
terms, the abs_integrate
package determines an antiderivative
that is continuous on the entire real line. Additionally, for an
integrand that involves one or more parameters, the function
conditional_integrate
tries to determine an antiderivative that
is valid for all parameter values.
Examples:
To use the abs_integrate
package, you’ll first need to load it:
(%i1) load("abs_integrate.mac")$ (%i2) integrate(abs(x),x); x abs(x) (%o2) -------- 2
To convert (%o2) into an expression involving the absolute value function,
apply signum_to_abs
; thus
(%i3) signum_to_abs(%); x abs(x) (%o3) -------- 2
When the integrand has the form \(p(x) |x - c1| |x - c2| ... |x - cn|\),
where \(p(x)\) is a polynomial and \(c1, c2, ..., cn\) are constants,
the abs_integrate
package returns an antiderivative that is valid on the
entire real line; thus without making assumptions on \(a\) and \(b\);
for example
(%i4) factor(convert_to_signum(integrate(abs((x-a)*(x-b)),x,a,b))); 3 2 (b - a) signum (b - a) (%o4) ----------------------- 6
Additionally, abs_integrate
is able to find antiderivatives of some
integrands involving max
, min
, signum
, and
unit_step
, examples:
(%i5) integrate(max(x,x^2),x); 3 2 3 2 2 x - 3 x 1 1 x x (%o5) ((----------- + --) signum(x - 1) + --) signum(x) + -- + -- 12 12 12 6 4 (%i6) integrate(signum(x) - signum(1-x),x); (%o6) abs(x) + abs(x - 1)
A plot indicates that indeed (%o5) and (%o6) are continuous at zero and at one.
For definite integrals with numerical integration limits (including
both minus and plus infinity), the abs_integrate
package
converts the integrand to signum form and then it tries to subdivide
the integration region so that the integrand simplifies to a
non-signum expression on each subinterval; for example
(%i1) load("abs_integrate")$ (%i2) integrate(1 / (1 + abs(x-5)),x,-5,6); (%o2) log(11) + log(2)
Finally, abs_integrate
is able to determine antiderivatives of
some functions of the form \(F(x, |x - a|)\); examples
(%i3) integrate(1/(1 + abs(x)),x); signum(x) (log(x + 1) + log(1 - x)) (%o3) ----------------------------------- 2 log(x + 1) - log(1 - x) + ----------------------- 2 (%i4) integrate(cos(x + abs(x)),x); (signum(x) + 1) sin(2 x) - 2 x signum(x) + 2 x (%o4) ---------------------------------------------- 4
Barton Willis (Professor of Mathematics, University of Nebraska at
Kearney) wrote the abs_integrate
package and its English
language user documentation. This documentation also describes the
partition
package for integration. Richard Fateman wrote
partition
. Additional documentation for partition
is
located at
http://www.cs.berkeley.edu/~fateman/papers/partition.pdf
Nächste: Functions and Variables for abs_integrate, Vorige: abs_integrate, Nach oben: abs_integrate [Inhalt][Index]