Function: splitup - break up an integral, sum or product
Calling Sequence:
splitup(f, a);
splitup(f, a, vflag);
splitup(f, x = a);
splitup(f, x = a, vflag);
Parameters:
f - an expression, usually containing at least one unevaluated definite integral, sum, or product
a - a value for the dummy or index variable of the int, sum or product
x - a dummy or index variable name (possibly indexed)
vflag - (optional) true or false.
Description:
Splits up an integral, sum or product at the value
a
of the dummy variable, separating the values of the dummy variable
< a
and those
>= a
into separate integrals, sums or products. Thus
becomes
and
becomes
.
The inert forms Int , Sum , Product may be used instead of int , sum , or product to ensure that the integral, sum or product is not evaluated before being split.
If the variable name x is specified, only those integrals, sums or products with dummy variable named x will be split. Otherwise, for nested integrals, sums or products, the outermost one is split.
No splitting is done if it is known that the value
a
is outside the interval of the integral, sum or product. Note that the result is still valid even if
a
is outside the interval, according to the conventions Maple uses: e.g. for a sum, if
,
.
The value a need not be numeric, but in the case of a sum or product, if it is numeric it must be an integer.
For a sum or product, unless the optional third argument
vflag
is
false
, if in any of the results of the split the difference between the bounds is an integer, that part is evaluated explicitly (even though it is a
Sum
or
Product
). Thus if
is split at
n
the result would be
. If
vflag
is
false
this would be
. In the case of
Int
, no evaluation is done. The non-inert forms
sum
,
product
and
int
will always attempt to evaluate.
splitup is automatically mapped into arrays, lists, sets, functions, +, * and ^.
This function is part of the Maple Advisor Database library, and must be loaded before use by the command readlib(splitup); .
Examples:
> readlib(splitup):
> splitup(Int(f(x),x=a..c), b);
> splitup(Sum(b[i], i=1 .. infinity) - Sum(b[i], i = 3 .. infinity), i = 3);
> splitup(Sum(Product(c[i,j], i=k .. n), j = 1 .. m), i = p);
See also: Int , Sum , Product , combine , assume , interface
Maple Advisor Database R. Israel, 1997