suivant: La méthode du point
monter: La méthode des trapèzes
précédent: La méthode des trapèzes
Table des matières
Index
La méthode des trapèzes
On partage [a ; b] en n parties égales et trapeze renvoie la
somme des aires des n trapèzes déterminés par la courbe
représentative de f et la subdivision de [a ; b].
trapeze(f,a,b,n):={
local s,k;
s:=evalf((f(a)+f(b))/2);
for (k:=1;k<n;k++) {
s:=s+f(a+k*(b-a)/n);
}
return s/n*(b-a);
}
On partage [a ; b] en 2p parties égales et trapezel renvoie
la liste de la
somme des aires des n = 2k trapèzes déterminés par la courbe
représentative de f et la subdivision de [a ; b], liste de longueur
p + 1, obtenue en faisant varier k de 0 à p.
On pourra 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.
trapezel(f,a,b,p):={
local s,n,k,lt,s1,j;
s:=evalf((f(a)+f(b))/2);
n:=1;
lt:=[s*(b-a)];
for (k:=1;k<=p;k++) {
s1:=0;
for (j:=0;j<n;j++) {
s1:=s1+f(a+(2*j+1)*(b-a)/(2*n));
}
s:=s+s1;
n:=2*n;
lt:=concat(lt,s/n*(b-a));
}
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 26=64 parties égales) :
trapezel(x->x^
2+1,0,1,6)
On obtient :
[1.5,1.375,1.34375,1.3359375,1.333984375,1.33349609375,1.33337402344]
On sait que int(x^
2+1,x,0,1)=
=1.3333333333
On tape (on partage [0;1] en 26=64 parties égales) :
trapezel(exp,0,1,6)
On obtient :
[1.85914091423,1.75393109246,1.72722190456,1.72051859216,
1.71884112858,1.71842166032,1.71831678685]
On sait que int(exp(x),x,0,1)=e-1=1.71828182846
suivant: La méthode du point
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