El código JSL a continuación utiliza la regla del trapezoide. Debe introducir el rango de integración ("xmín" y "xmáx"). Introduzca la función que desea integrar en la variable "pdf". La regla del trapezoide divide el rango de integración en varios intervalos y aproxima el área bajo la curva de cada intervalo mediante el área de un trapezoide. ¿Pero cuántos intervalos utiliza? El código aproxima el área utilizando un intervalo, luego dos, y así sucesivamente. Continúa aumentando el número de intervalos hasta que la diferencia incremental sea menor que "stop". De esta manera, no es necesario especificar el número de intervalos; el código simplemente continúa hasta converger.
El ejemplo del código es la distribución normal estándar entre -10 y 10. El código muestra los resultados en la ventana de registro: el número de intervalos utilizados y el resultado al que convergió. En este ejemplo, toma 26 intervalos y converge a 1,00000000000001. El área total bajo la curva normal es 1. Diría que bastante cerca.
También podrían interesarle la regla del punto medio y la regla de Simpson. Consulte Wikipedia para más detalles. El código a continuación se puede modificar fácilmente para usar esas otras reglas.
También se puede usar una tabla de datos para realizar la integración numérica. Cuantas más filas se utilicen para abarcar el rango de integración, mejor será la aproximación.
El código está a continuación:
Clear Globals();
xmin=-10;
xmax=10;
stop=0.0000000000001;
pdf=function( {x} , 1/(sqrt(2*pi()))*exp(-x^2/2) );
intervals=1;
last=0;
new=0;
flag=0;
while(flag==0,
intervals=intervals+1;
increment=(xmax-xmin)/intervals;
total=0;
for(i=1, i<=intervals, i++,
if(i==1, x=xmin);
if(i>1, x=x+increment);
total=total + ((pdf(x)+pdf(x+increment))/2)*increment;
);
last=new;
new=total;
diff=abs(last-new);
if(diff<=stop, flag=1);
);
show(intervals);
show(total);