![]() ![]() |
<SCRIPT
LANGUAGE=JavaScript>var x,fonc
var pi=3.141592653589793;
var e=2.7182818284590452;
function go()
{
with (Math)
{
fonc="1/x"
a=1;b=2;
p=5;
fonc=prompt("Entrez votre fonction :",fonc)
a=eval(prompt("Entrez a :",a));if (a==null) {return};
b=eval(prompt("Entrez b :",b));if (b==null) {return};
p=eval(prompt("Précision voulue en nombre de décimales :",p));if (p==null)
{return};
n=6;if(b-a>10 || p>5){n=8}
max=pow(2,n)
if(p>=8){alert("Risque de divergence. Dans ce cas diminuez p ou augmentez n")}
n=eval(prompt("Je propose n = "+n+", soit 2^n = "+max+" points
maxi."+"\n"+"Sinon entrez n :",n));
if (n==null) {return};
max=pow(2,n)
r = new Array(max);
for(i=0;i<=max;i++){r[i]=new Array()}
r[0][0]=(b-a)*(f(a)+f(b))/2
r[1][0]=(b-a)*(f(a)+f(b)+2*f(a/2+b/2))/4
nn=1;
while(nn<=n)
{
nn++;ns=pow(2,nn)
h=(b-a)/ns;
r[nn][0]=(f(a)+f(b))/2
for(i=1;i<=ns-1;i++){r[nn][0]=r[nn][0]+f(a+i*h)}
r[nn][0]=h*r[nn][0] // fin des calculs de r(i,j) de i = 0 à n
}
dp=0;j=0
while(j<=n && dp==0)
{
j++;i=j-1
while (i<=n)
{
i++
k=pow(4,j);
r[i][j]=(k*r[i][j-1]-r[i-1][j-1])/(k-1)
test=abs(r[i][j]-r[i-1][j])
if(test<pow(10,-p)){dp=1;break}
} // fin boucle i
} // fin boucle j
if(dp==1)
{alert("Integrale Trapèzes = "+r[n][0]+"\n"+"Integrale Romberg =
"+r[n][j])}
else
{alert("L'algorithme ne converge pas")}
}
}
function f(x)
{
with(Math)
{
y=eval(fonc)
return y
}
}
</SCRIPT>
JavaScript dans ChronoMath : »