Difference between revisions of "Integral"
Line 108:  Line 108:  
which describes about how many of the values in a normal distribution lie within one, two, and three standard deviations from the mean.  which describes about how many of the values in a normal distribution lie within one, two, and three standard deviations from the mean.  
+  
+  ==Numerical Differentiation==  
+  
+  Note that [[Derivative]], the inverse of this operator, has also been implemented.  
==Acknowledgements==  ==Acknowledgements==  
This feature is entirely based on Laurent Fousse's [https://github.com/lfousse/crq Numerical Integration] code written in MPFR as described in [https://tel.archivesouvertes.fr/tel00477243/document this paper].  This feature is entirely based on Laurent Fousse's [https://github.com/lfousse/crq Numerical Integration] code written in MPFR as described in [https://tel.archivesouvertes.fr/tel00477243/document this paper]. 
Revision as of 05:11, 12 January 2020


L is an optional Real numeric singleton which represents the lower bound of the definite Integral. If it is omitted, 0 is used.  
R is a Real numeric singleton which represents the upper bound of the definite Integral.  
f is an arbitrary monadic function whose argument and result are both Real numeric singletons. 
Introduction
TBD
Variants
There are several different algorithms which may be used for Numerical Integration, two of which are GaussLegendre and NewtonCotes. The default algorithm is GaussLegendre, however the faster but less accurate NewtonCotes algorithm may be selected via the Variant operator as in
⎕FPC←128 {1+1○⍵}∫⍠'g' ○2x ⍝ GaussLegendre 6.28318530717958647692528676655900576839 {1+1○⍵}∫⍠'n' ○2x ⍝ NewtonCotes 6.28318530717958647692528676655899537749 ○2x ⍝ Exact answer 6.28318530717958647692528676655900576839
The Order of the Numerical Integration (the number of rectangles used to approximate the result) is, by default, 100. That number may be changed via the Variant operator as in
N←17x {÷1+⍵*2}∫⍠'g' N 1.51204050407629183188001289665203330309 {÷1+⍵*2}∫⍠('g' 60) N 1.51204050407917392727026418786910512212 {÷1+⍵*2}∫⍠('g' 70) N 1.51204050407917392633179507126314397112 {÷1+⍵*2}∫⍠('g' 80) N 1.512040504079173926329142042030891168 {÷1+⍵*2}∫⍠('g' 90) N 1.51204050407917392632913839289394666393 ¯3○N ⍝ Exact answer 1.51204050407917392632913838918797965662
Examples
For example,
The Integral of {⍵*2} is {(⍵*3)÷3}, and so the Integral of that function from 0 to 1 is ÷3:
⎕FPC←128 {⍵*2}∫1 0.333333333333333333333333333333333333334
The Integral of the 1+Sine function from 0 to ○2 is ○2:
{1+1○⍵}∫○2x ⋄ ○2x 6.28318530717958647692528676655900576839 6.28318530717958647692528676655900576839
and the Integral of the Sine function from 0 to ○2 is (essentially) 0
{1○⍵}∫○2x ¯5.12499200004882449667902954237053816394E¯40
A Normal Distribution is defined as nd←{(*¯0.5×⍵*2)÷√○2x}. Integrating it over the entire width from ¯∞ to ∞ yields an answer of 1 (the area under the curve). However, this Integration code doesn't handle infinities as yet, so instead we integrate the function over 20 standard deviations on either side with more rectangles used in the approximation to yield a number within rounding error of the correct answer:
¯20 nd∫⍠150 20 1.00000000000000000000000000000000000002
Integrating this same function for one, two, and three standard deviations on either side yields the 3sigma rule of :
⍪¯1 ¯2 ¯3 nd∫¨ 1 2 3 0.682689492137085897170465091264075844955 ⍝ 68% 0.954499736103641585599434725666933125056 ⍝ 95% 0.997300203936739810946696370464810045244 ⍝ 99.7%
which describes about how many of the values in a normal distribution lie within one, two, and three standard deviations from the mean.
Numerical Differentiation
Note that Derivative, the inverse of this operator, has also been implemented.
Acknowledgements
This feature is entirely based on Laurent Fousse's Numerical Integration code written in MPFR as described in this paper.