ares@alessia.dei.unipd.it (Nicola Catacchio 259126) (03/08/91)
The following are functions that allow to integrate ,numerically,many kinds
of functions that the default integrator of hp28 can`t solve.
Next, I'll post the version for hp48.
First,the volume integrator:
VOL
Arguments:
3: 'Algbraic'
2: {List}
1: Real Number
Where 'Algebraic' is a function of two variables:
{List} must be formed with two lists each containing a variable and
its lower and upper limits : note that the first variable MUST
have real limits,but the ones that refers to the second variable
can be algebraics ; that is to say they can be functions of the
first variable, allowing integration on non-rectangular domains.
Real Number expresses the maximum relative error on the final result.
The procedure returns:
2: Real number ; the approximation of integral
1: Real Number ; the max. relative error that could occur.
Note that the `$` symbol is used instead of the integral symbol you can
obtain pressing [SHIFT][5] on hp28 keyboard.
<< SWAP LIST-> DROP -> | List with variable lists in stack ...
F P x y |
<< |
<< F y P $ DROP | Program that performs the y-integration ...
>> x P $ | integrated varying the variable in list x
>> |
>>
Now , if you understood what this program does , guess what`s the function
performed by the next program .
<< SWAP LIST-> DROP ->
F P x y z
<<
<<
<< F z P $ DROP
>> y P $ DROP
>> x P $
>>
>>
The next program allows you to integrate a function whose right limit
is +oo (infinite).The use is similar to that of the standard numerical
integrator but doesn`t request the right limit of integratin, being assumed
equal to +oo .
Arguments
3: `Algebraic` "function of a variable"
2: {List} "containining variable name and left limit"
1: Real number "max. relative error"
Return the same arguments as shown below.
INF
<< SWAP LIST-> DROP 1
- 'INV(y)' + OVER
STO ROT 'y' SHOW
SWAP PURGE 'SQ(y)' /
{ y 0 1 } ROT $
>>
The following can integrate functions whose left value is +oo,on a
limited interval,and its usage is equal to the standard integrator.
SNGL
<< SWAP LIST-> DROP 1
- 'EXP(INV(y))' +
OVER STO ROT 'y'
SHOW SWAP PURGE
'SQ(INV(y))*EXP(INV(y))'
/ { y 0 1 } ROT $
>>
ARES ( Nicola Catacchio 259126 IL
e-mail ares@deipd1.unipd.it
mail Cannaregio 4389 Venice,Italy )