# ∫

Calculator Key: ■∫

None
Argument Types:
Real
List
Symbol
Expression
Program
Result Type(s):
Real
Expression
Invertible:
No
Valid In Expression:
No
Stack Diagram:
 Expression1 Symbol2 Real3 → Expression4 Expression1 List2 Real3 → Real4 Real5 Program1 List2 Real3 → Real4 Real5

This operation can be used to determine the symbolic or numeric integral of the input expression or program. For symbolic integration, the arguments are the expression to integrate, a symbol to integrate against and a real number which should be a positive integer which is the degree approximation. Symbolic integrals are done by first determining a Taylor series approximation of the input expression (see the TAYLR operation for more information). The result of the Taylor series is a polynomial approximation which is then integrated using the simple rules for integrating polynomials. So, symbolic integrals are approximations unless the input expression is already a polynomial.

Numeric integrals can be determined for both expressions and programs. The second argument is a list which has information about the symbol against which to integrate and the bounds of the integral. The third argument is a real number which is the acceptable error in the result.

For example, to determine the integral of 'SQ(X)' from 0 to 1 against X to an accuracy of 0.00001, you would push these arguments onto the stack:

'SQ(X)'
{ X 0 1 }
0.00001

And then press the integral button to get the following results on the stack:

0.333333333333
9.87519399895E-06

The first value is the approximation of the numeric integral and the second number is an estimation of the actual error in that approximation and should be less than the error requested. Actual integration is done by evaluating the expression at "N" points between the two bounds to estimate the integral. The lower the error bounds you request, the more points are evaluated and the longer the calculation will take. So consider how much actual accuracy you need because lower error bounds can significantly increase the execution time.

This same integral can be calculated using a program:

≪ X SQ ≫
{ X 0 1 }
0.00001

In this case, the integral is done with respect to X and X is used explicitly in the program. Finally, you can also do an integral of a program without specifying a symbol of integration. If the program pops a value off the stack and pushes a result onto the stack, then the symbol of integration is implicit. For example:

≪ SQ ≫
{ 0 1 }
0.00001

This program pops the value off the stack and pushes the square of that value onto the stack. The result of the integration with these arguments is the same as the previous two examples. The difference is that there is no explicit symbol of integration and the list argument has only an upper and lower bound.