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 )