next up previous contents index
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

La méthode du point milieu

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)= $ {\frac{{4}}{{3}}}$=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
next up previous contents index
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