scilab

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: phillipe20

bonjour,je cherche a traduire cette algorithme en scilab qq1 peut m'aider svp

trapezel(f,a,b,n):={
local s,puiss2,k,lt,s1,j;
s:=evalf((f(a)+f(b))/2);
puiss2:=1;
lt:=[s*(b-a)];
for (k:=1;k<=n;k++) {
s1:=0;
for (j:=0;j<puiss2;j++) {
s1:=s1+f(a+(2*j+1)*(b-a)/(2*puiss2));
}
s:=s+s1;
puiss2:=2*puiss2;
lt:=concat(lt,s*(b-a)/puiss2);
}
return lt;
}



Posted by: Clembou

Citation:
Posté par phillipe20
bonjour,je cherche a traduire cette algorithme en scilab qq1 peut m'aider svp

trapezel(f,a,b,n):={
local s,puiss2,k,lt,s1,j;
s:=evalf((f(a)+f(b))/2);
puiss2:=1;
lt:=[s*(b-a)];
for (k:=1;k<=n;k++) {
s1:=0;
for (j:=0;j<puiss2;j++) {
s1:=s1+f(a+(2*j+1)*(b-a)/(2*puiss2));
}
s:=s+s1;
puiss2:=2*puiss2;
lt:=concat(lt,s*(b-a)/puiss2);
}
return lt;
}


Surement la régle des trapèzes pour l'approximation d'une intégrale



Posted by: phillipe20

Oui, c'est la mèthode des trapezes pour l'integration de romberg



Posted by: Clembou

Citation:
Posté par phillipe20
Oui, c'est la mèthode des trapezes pour l'integration de romberg


Tu veux quels renseignements ??? Que fait l'algorithme par exemple ?



Posted by: phillipe20

ma fonction prend en entrèe a b et n, j'ai alors ma fonction scilab:
function[R]=romberg1(a,b,n)
h=b-a;
J(1,1)=0.5*h*(f(a)+f(b));
for L=2:5
h=h/2
x=a+h:2*h:b-h;
di=h*sum(f(x))
J(L,1)=0.5*J(L-1,1) + di;
end
for c=2:5
for L=c:5
J(L,c)=((4^(c-1))*J(L,c-1)-J(L-1,c-1))/(4^(c-1)-1);
end
end
endfunction
cette fonction doit nous renvoyer un tableau avec des valeurs de l'integrale rechercher, ces valeurs seront de plus en plus precise en augmentant l'ordre.

ex=le calcul de int[0..Pi/2,(x^2+x+1)cos(x)dx] devrait donner:
0.785398
1.726813 2.040610
1.960534 2.038441 2.038296
2.018794 2.038214 2.038199 2.038197
2.033347 2.038198 2.038197 2.038197 2.038197
...

cependant ma fonction est pas completement bonne, scilab ne me renvoie pas ce tableau



Posted by: bingbang

alors ta trouve comment faire? pour afficher le tableau? merci de ta réponse ))



Posted by: bingbang

Citation:
Posté par phillipe20

h=b-a;
J(1,1)=0.5*h*(f(a)+f(b));
for L=2:5
h=h/2
x=a+h:2*h:b-h;
di=h*sum(f(x))
J(L,1)=0.5*J(L-1,1) + di;
end
for c=2:5
for L=c:5
J(L,c)=((4^(c-1))*J(L,c-1)-J(L-1,c-1))/(4^(c-1)-1);
end
end
endfunction


déjà scilab va dire que il y a une erreur car, Ton R il est pas dans le programme ! apres comment faire le tableau











-