아래 JSL 코드는 사다리꼴 법칙을 사용합니다. 적분 범위("xmin"과 "xmax")를 입력해야 합니다. "pdf"라는 변수에 적분하려는 함수를 입력하세요. 사다리꼴 법칙은 적분 범위를 여러 구간으로 나누고, 각 구간의 곡선 아래 면적을 사다리꼴의 면적으로 근사합니다. 그런데 구간은 몇 개나 사용해야 할까요? 이 코드는 구간 1개, 그다음 구간 2개, 이런 식으로 면적을 근사합니다. 증분 차이가 "stop"보다 작아질 때까지 구간의 개수를 계속 증가시킵니다. 이렇게 하면 구간 개수를 지정할 필요 없이, 수렴할 때까지 코드가 계속 실행됩니다.
코드의 예시는 -10에서 10 사이의 표준 정규 분포입니다. 이 코드는 로그 창에 결과를 출력합니다. 사용된 구간의 개수와 수렴한 결과가 함께 표시됩니다. 이 예시에서는 26개의 구간을 사용하며 1.00000000000001로 수렴합니다. 정규 곡선 아래의 총 면적은 1입니다. 꽤 비슷하다고 생각합니다.
중간점 규칙과 심슨 가족 규칙도 흥미로울 수 있습니다. 자세한 내용은 위키백과를 참조하세요. 아래 코드는 다른 규칙을 사용하도록 쉽게 변경할 수 있습니다.
데이터 표를 사용하여 수치 적분을 수행할 수도 있습니다. 적분 범위에 더 많은 행을 사용할수록 근사값이 더 정확해집니다.
코드는 아래와 같습니다.
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);