suivant: Accélération de convergence :
monter: La méthode des trapèzes
précédent: La méthode des trapèzes
Table des matières
Index
On partage [a ; b] en n parties égales et ptmilieu renvoie la
somme des aires des n rectangles déterminés par la courbe
représentative de f et les milieux des segments de la subdivision de
[a ; b].
ptmilieu(f,a,b,n):={
local s,k;
s:=0.0;
for (k:=0;k<n;k++) {
s:=s+f(a+(b-a)/(2*n)+k*(b-a)/n);
}
return s/n*(b-a);
}
On partage [a ; b] en 3p parties égales et ptmilieul renvoie
la liste de la
somme des aires des n = 3k rectangles déterminés par la courbe
représentative de f et les milieux de la subdivision de [a ; b],
liste de longueur p + 1, obtenue en faisant varier k de 0 à p.
On peut ensuite appliquer à cette liste une accélération de convergence.
On remarquera qu'à chaque étape, on ajoute des "nouveaux" points
à la subdivision, et, que le calcul utilise la somme s précédente
en lui ajoutant la contribution s1 des "nouveaux" points
de la subdivision.
ptmilieul(f,a,b,p):={
local s,n,k,lt,s1,j;
s:=evalf(f((a+b)/2));
n:=1;
lt:=[s*(b-a)];
for (k:=1;k<=p;k++) {
s1:=0.0;
for (j:=0;j<n;j++) {
s1:=s1+f(a+(6*j+1)*(b-a)/(6*n))+f(a+(6*j+5)*(b-a)/(6*n));
}
s:=s+s1;
n:=3*n;
lt:=concat(lt,s*(b-a)/n);
}
return lt;
}
On met ce programme dans un niveau éditeur de programmes (que l'on ouvre avec
Alt+p), puis on le teste et on le valide avec OK.
On tape (on partage [0;1] en 34=81 parties égales) :
ptmilieul(x->x^
2+1,0,1,4)
On obtient :
[1.25,1.32407407407,1.33230452675,1.33321902149,1.33332063202]
On sait que int(x^
2+1,x,0,1)=
=1.3333333333
On tape (on partage [0;1] en 34=81 parties égales) :
ptmilieul(exp,0,1,4)
On obtient :
[1.6487212707,1.71035252482,1.7173982568,
1.71818362241,1.71827091629]
On sait que int(exp(x),x,0,1)=e-1=1.71828182846
suivant: Accélération de convergence :
monter: La méthode des trapèzes
précédent: La méthode des trapèzes
Table des matières
Index
Documentation de giac écrite par Renée De Graeve