Le code JSL ci-dessous utilise la règle du trapèze. Vous devez saisir la plage d'intégration (« xmin » et « xmax »). Saisissez la fonction à intégrer dans la variable « pdf ». La règle du trapèze divise la plage d'intégration en plusieurs intervalles et approxime l'aire sous la courbe de chaque intervalle par l'aire d'un trapèze. Mais combien d'intervalles utilisez-vous ? Le code approxime l'aire en utilisant un intervalle, puis deux intervalles, et ainsi de suite. Le nombre d'intervalles augmente continuellement jusqu'à ce que la différence incrémentale soit inférieure à « stop ». Ainsi, vous n'avez pas besoin de spécifier le nombre d'intervalles ; le code continue jusqu'à ce qu'il converge.
L'exemple du code est la distribution normale standard entre -10 et 10. Le code affiche les résultats dans la fenêtre de journal : le nombre d'intervalles utilisés et la valeur vers laquelle il a convergé. Dans cet exemple, il prend 26 intervalles et converge vers 1,00000000000001. L'aire totale sous la courbe normale est de 1. Assez proche, je dirais.
La règle du point médian et la règle de Simpson pourraient également vous intéresser. Consultez Wikipédia pour plus de détails. Le code ci-dessous peut être facilement modifié pour utiliser ces autres règles.
Vous pouvez également utiliser un tableau de données pour effectuer une intégration numérique. Plus vous utilisez de lignes pour couvrir la plage d'intégration, meilleure est l'approximation.
Le code est ci-dessous :
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);