Integration Numérique Avec Matlab
-
Upload
wassimbeaissa -
Category
Documents
-
view
31 -
download
0
description
Transcript of Integration Numérique Avec Matlab
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 1/13
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 2/13
ba
f (x)dx
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 3/13
I = h
2 · (f (a) + 2 ·
n−11
f i + f (b))
function [E] = trpz( a,b,n )
g=input('Donnez f : ')
f=inline (g);
h=(b−a)/n;
S=(h/2)*(f(a)+f(b));
for(i=1:n−1)
S=S+h*f(a+i*h);
end
I=S;
disp('I v aut : ')
I
h=int(sym(g),a,b);
E=abs(h−I)
end
I =n−1i=0
h
3(f 2i + 4 · f 2i+1 + f 2i+2)
function [ E ] = simpson( a,b,m )
g=input('Donnez f : ')
f=inline (g);
n=m/2;
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 4/13
h=(b−a)/(2*n);
S=0;
for(i=0:n−1)
S=S+(h/3)*(f(a+2*i*h)+4*f(a+(2*i+1)*h)+f(a+(2*i+2)*h))
end
I=S;
disp('I vaut : ')
I h=int(sym(g),a,b);
E=abs(h−I);
end
T 1,j =
b
−a
2 j [f (a) + 2 ·2j−1−1
i=1
f (xij) + f (b)]
xij = a + i b−a2j−1
T k,j = 4k−1 × T k−1,j+1 − T k−1,j
4k−1 − 1
function [ E ] = rmbrg( a,b,n )
g=input('Donnez f : ') f=inline (g);
T=zeros(n);
T(1,1)=((b−a)/2)*(f(a)+f(b));
for(j=2:n)
S=0;
for(i=1:(2^(j−1)−1))
x=a+i*(b−a)/(2^(j−1));
S=S+2*f(x);
end
T(1,j)=(b−a)/(2^j)*(f(a)+f(b)+S);
end
for(k=2:n)
for(l=1:n
−k+1)
T(k,l)=(4^(k−1)*T(k−1,l+1)−T(k−1,l))/(4^(k−1)−1); end
end
T
disp('I v aut : ')
I=T(n,1)
h=int(sym(g),a,b);
E=abs(h−I)
end
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 5/13
xi
P n(x) = 1
n! · 2n · dn
dxn[(x2
−1)n]
ni=1
Aixki = {
2k+1
,k− pair0,k−impair
x = 1
2(b + a + (b− a)t)
I = b− a
2
ni=1
Aif (b + a
2 +
b − a
2 ti)
function [ E ] = gaussl( a,b,g )
n=input('donnez le nombre de points pour la methode : ');
x=[1 0 −1];% le polynome intervenant dans la formule ( x 2̂−1)
if (n==0)
P =[0 0 1 ];
else
E=conv(x,x) ;%eleve le polynome au carre. if (n>1)
q=E;
for (i=2 :n−1)
q=conv(q,x) ;%eleve le polynome jusqu au degre n.
end
end
if (n==1)
D=x;
else
if (n>1)
D=polyder(q);% derive une premiere fois.
for j=1:n−1
D=polyder(D);% derive (n−1) autre fois. end
end
end
P= (1/(factorial(n)*(2^n)))*D;% polynome de degre n.
end
y=roots(P);%racines du polynome de degre n.
% calcul des coefficients
C=zeros(n,n);
for(r=1:n)
for(s=1:n)
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 6/13
C(r,s)=y(s)^(r−1) ;%calcule les valeurs de f(xi) et les mets dans une matrice
end
end
Z=zeros(n,1);
for( k =1 : (n))
if (mod((k−1),2)==0)
Z(k,1)=(2/(k)); else
Z(k,1)=0;
end
end
A=zeros(n,1);
A= inv(C)*Z ;%solutions de notre systeme d equation (Ai).
f=inline (g);
I=0;
for(v=1:n)
I=(I+ ( (b−a)/2)*(f( ((b+a)/2)+((b−a)/2)*y(v)) )*A(v));
end
I
format long
h=int(sym(g),a,b);
E=abs(h−I);
end
1
−1
f (x)√ 1 − x2
≈ π
n
ni=1
f (cos(2i− 1
2n ))
function [ E ] = gausst(a,b,g)
n=input('Donnez le nombre de points : ')
f=inline (g);
if(a==0)
S=0; for(i=1:n)
S=(S+(pi/n)*f(cos((2*i−1)*pi /(2*n) ) ));
end
I=S/2;
else
S=0;
for(i=1:n)
S=S+(pi/n) *f(cos((2*i−1)*pi/(2*n) ));
end
end
disp('I v aut : ')
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 7/13
I
h=int(sym(g),a,b);
E=abs(h−I);
end
function [ ] = integration(methode)
a=input('Entrez la borne inferieure : ');
b=input('Entrez la borne superieur : ');
switch (methode)
case 'trapeze'
n=input('Entrez le nombre de sub : ');
trpz(a,b,n);
case'simpson'
n=input('Entrez le nombre de sub : ');
simpson(a,b,n);
case 'romberg'
n=input('Entrez le nombre de sub : ');
rmbrg(a,b,n)
case'gausslegendre'
g=input(' donn ez f : ');
k=zeros(5,1);
for(i=1:5)
k(i)=gaussl(a,b,g);
end
v=[2;4;8;12;16];
plot(v,k,'b')
title('Erreur en fonction du nombre de points')
case'gausstchebychev'
g=input('Donnez la fonction f(x) qui est au nominateur ponderee par racine de (1−x^2) ') ;
k=zeros(3,1);
for(i=1:3)
k(i)=gaussl(a,b,g);
end
v=[2;3;4];
plot(v,k,'b')
title('Erreur en fonction du nombre de points')
end
end
f (x) = sin(x) x ∈ [0;π/2]
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 8/13
>> integration('gausslegendre')
Entrez la borne inferieure : 0
Entrez la borne superieur : pi/2
donnez f : 'sin(x)'
donnez le nombre de points pour la methode : 2
I =
0.998472613404115
donnez le nombre de points pour la methode : 4
I =
0.999999977197114
donnez le nombre de points pour la methode : 8
I =
1
donnez le nombre de points pour la methode : 12
I =
1.000000000000398
donnez le nombre de points pour la methode : 16
I =
0.999999999996684
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 9/13
h(x) = x3 x ∈ [0;2]
>> integration('gausslegendre')
Entrez la borne inferieure : 0
Entrez la borne superieur : 2
donnez f : 'x^3'
donnez le nombre de points pour la methode : 2
I =
3.999999999999999
donnez le nombre de points pour la methode : 4
I =
3.999999999999996
donnez le nombre de points pour la methode : 8
I =
4.000000000000002
donnez le nombre de points pour la methode : 12
I =
4.000000000000729
donnez le nombre de points pour la methode : 16
I =
3.999999999968925
g(x) = 1/x2 x ∈ [1;2]
>> integration('gausslegendre')
Entrez la borne inferieure : 1
Entrez la borne superieur : 2
donnez f : '1/(x^2)'
donnez le nombre de points pour la methode : 2
I =
0.497041420118343
donnez le nombre de points pour la methode : 4
I =
0.499995147562620
donnez le nombre de points pour la methode : 8
I =
0.499999999992918
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 10/13
donnez le nombre de points pour la methode : 12
I =
0.500000000000201
donnez le nombre de points pour la methode : 16
I =
0.499999999997659
S (x) = 1/(1 + x2
)
x ∈ [0; 1]
>> integration('gausslegendre')
Entrez la borne inferieure : 0
Entrez la borne superieur : 1
donnez f : '1/(1+x^2)'
donnez le nombre de points pour la methode : 2
I =
0.786885245901639
donnez le nombre de points pour la methode : 4
I =
0.785402976311451
donnez le nombre de points pour la methode : 8
I =
0.785398163379778
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 11/13
donnez le nombre de points pour la methode : 12
I =
0.785398163397791
donnez le nombre de points pour la methode : 16
I =
0.785398163394261
f (x) = 1√ 1−x2
>> integration('gausstchebychev')
Entrez la borne inferieure : 0
Entrez la borne superieur : 1
Donnez la fonction f(x) qui est au nominateur ponderee par racine de (1−x^2) '1'
donnez le nombre de points pour la methode : 2
I =
1
donnez le nombre de points pour la methode : 3
I =
1.000000000000000
donnez le nombre de points pour la methode : 4
I =
0.999999999999999
f (x) = x2√ 1−x2
>> integration('gausstchebychev')
Entrez la borne inferieure : 0
Entrez la borne superieur : 1
Donnez la fonction f(x) qui est au nominateur ponderee par racine de (1−x^2) 'x^2'
donnez le nombre de points pour la methode : 2
I =
0.333333333333333
donnez le nombre de points pour la methode : 3
I =
0.333333333333333
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 12/13
donnez le nombre de points pour la methode : 4
I =
0.333333333333333
f (x) = x4√ 1−x2
>> integration('gausstchebychev')
Entrez la borne inferieure : 0
Entrez la borne superieur : 1
Donnez la fonction f(x) qui est au nominateur ponderee par racine de (1−x^2) 'x^4'
donnez le nombre de points pour la methode : 2
I =
0.194444444444444
donnez le nombre de points pour la methode : 3
I =
0.200000000000000
donnez le nombre de points pour la methode : 4
I =
0.200000000000000
7/21/2019 Integration Numérique Avec Matlab
http://slidepdf.com/reader/full/integration-numerique-avec-matlab 13/13