1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function I=simp_v(f,h);
n=length(f)-1; % Nombre dintervalles
if n==1
fprintf('Données à un seul intervalle'\n');
return;
end
if n==2
I=h/3*(f(1)+4*f(2)+f(3));
return; % Revenir et continuer le calcul
end
if n==3
I=(3/8)*h*(f(1)+3*f(2)+3*f(3)+f(4));
return;
end
I=0;
if 2*floor(n/2)~=n ; %Le nombre dintervalle doit être pair
I=3*h/8*(f(n-2)+3*f(n-1)+3*f(n)+f(n+1));
m=n-3;
else
m=n;
end
I=I+h/3*(f(1)+4*sum(f(2:2:m))+f(m+1));
if m>2
I=I+(h/3)*2*sum(f(3:2:m))
end |
Partager