0% ont trouvé ce document utile (0 vote)
23 vues9 pages

Rapport de MATLAB

Le document présente des travaux pratiques sur l'interpolation et l'intégration numérique, incluant l'interpolation de Lagrange et l'utilisation de la fonction polyfit pour estimer la conductivité thermique. Il aborde également différentes méthodes d'intégration numérique, telles que la méthode des trapèzes, de Simpson et de Gauss, en comparant leur précision par rapport à une intégration analytique. Les résultats montrent que la méthode de Gauss est la plus précise et que l'erreur diminue avec une augmentation du nombre de subdivisions.

Transféré par

mouadsahlitng
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues9 pages

Rapport de MATLAB

Le document présente des travaux pratiques sur l'interpolation et l'intégration numérique, incluant l'interpolation de Lagrange et l'utilisation de la fonction polyfit pour estimer la conductivité thermique. Il aborde également différentes méthodes d'intégration numérique, telles que la méthode des trapèzes, de Simpson et de Gauss, en comparant leur précision par rapport à une intégration analytique. Les résultats montrent que la méthode de Gauss est la plus précise et que l'erreur diminue avec une augmentation du nombre de subdivisions.

Transféré par

mouadsahlitng
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TRAVAUX PRATIQUE 1 :

Soit le vecteur Temp contenant les valeurs de températures considérées pour


mesurer les conductivités correspondantes :

Temp= [32 115 212 363] ;


Les conductivités mesurées sont stockées dans le vecteur conduct :

Conduct= [0.0057 0.0074 0.0099 0.0147] ;


I. Écriture d’un programme d’interpolation de Lagrange pour estimer la conductivité
thermique entre 32°C et 363°C avec représentation graphique :
Temp=[32 115 212 363];
Conduct=[0.0057 0.0074 0.0099 0.0147];
n=length(Temp);
T=linspace(32,363,50); M=length(T);
for i=1:M
S=0;
for k=1:4
prod=1;
for j=1:4
if j~=k
prod=prod * (T(i)-Temp(j)) / (Temp(k)-Temp(j));
end
end
S=S+Conduct(k) * prod;
end
P(i)=S;
end
disp(P)
plot(T,P,'r')

0
II. La conductivité qui correspond à une température égal 80 :
Temp = [32 115 212 363];
Conduct = [0.0057 0.0074 0.0099 0.0147];
n = length(Temp);
T_val = 80;
S_val = 0;
for k = 1:n
prod = 1;
for j = 1:n
if j ~= k
prod = prod * (T_val - Temp(j)) / (Temp(k) - Temp(j));
end
end
S_val = S_val + Conduct(k) * prod;
end
disp(S_val)

III. les coefficients du polynôme d’interpolation en utilisant la fonction de Matlab


polyfit avec représentation graphique :
Temp = [32 115 212 363];
Conduct = [0.0057 0.0074 0.0099 0.0147];
P = polyfit(Temp, Conduct, 3);
T = linspace(32, 363, 200);
val= polyval(P , T);

1
figure;
plot(T, val , 'r-', 'LineWidth', 2);
hold on;
plot(Temp, Conduct, 'bo', 'MarkerSize', 8, 'MarkerFaceColor', 'b');
xlabel('Température (°C)');
ylabel('Conductivité');
title('Interpolation polynomiale (polyfit) ');
legend('Polynôme interpolé', 'Points expérimentaux');
grid on;
disp('Coefficients du polynôme d''interpolation :');
disp(P)

TRAVAUX PRATIQUE 2 :

Soit la fonction 𝑓(𝑥) à intégrer numériquement sur l’intervalle [a b] par différentes


méthodes :

𝑎 = 0, 𝑏 = 𝜋 , 𝑓(𝑥) = sin(2𝑘𝜋𝑥) , 𝑘 = 10,

L’intégration analytique de la fonction 𝑓(𝑥) donne :


𝑏
−1
∫ 𝑓(𝑥)𝑑𝑥 =
𝑎 2𝑘𝜋

2
I. Détermination de 𝐿ℎ(𝑓) par :
a. La méthode de trapèze : 𝑀 = 2; 𝑡1 = −1, 𝑡2 = 1
a=0; b=pi; N=3;
t=[-1 1]; w=[1 1]; M=length(t); f=@(x)sin(x);
for i=1:N+1 h=(b-a)/N;
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j)=x(i)+h*(t(j)+1)/2;
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
disp(lh)

Vérification le résultat en utilisant la fonction de MTLAB trapz

x=0:pi/3:pi;
y=sin(x);
trapz(x,y)

b. La méthode de simpson : 𝑀 = 3 ; 𝑡1 = −1, 𝑡2 = 1, 𝑡3 = 1

a=0;b=pi;N=3;
t=[-1 0 1]; w=[1/3 4/3 1/3]; M=length(t) ;f=@(x)sin(x);
for i=1:N+1 h=(b-a)/N;
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j)=x(i)+h*(t(j)+1)/2;

3
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
disp(lh)

Vérification le résultat en utilisant la fonction de MTLAB quad

y = @(x)sin(x);
approche = quad(y, 0, pi);
disp(approche)

−𝟏 𝟏
c. La méthode de Gauss 2pts : 𝑡1 = , 𝑡2 =
√𝟑 √𝟑

a=0;b=pi;N=3;
t=[-1/sqrt(3) 1/sqrt(3)]; w=[1 1]; M=length(t) ;f=@(x)sin(x);
for i=1:N+1 h=(b-a)/N;
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j)=x(i)+h*(t(j)+1)/2;
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
disp(lh)

4
Vérification le résultat en utilisant la fonction de MTLAB qudl

f = @(x) sin(x);
I = quadl(f, 0, pi);
disp(I)

d. Évolution de l’erreur en fonction de h pour N∈[1,100] :

La méthode de trapèze

a=0; b=pi; N=3;


t=[-1 1]; w=[1 1]; M=length(t); f=@(x)sin(x);
for N = 1:100
h=(b-a)/N;
for i=1:N+1
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j) = x(i) + h * (t(j) + 1) / 2;
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
H(N) = h;
erreur(N)=abs(2-lh)
end
loglog(H, erreur, 'b.-');
xlabel('h');
ylabel('Erreur');
title('Erreur de quadrature en fonction de h');
grid on;

5
La méthode de simpson

a=0; b=pi; N=3;


t=[-1 0 1]; w=[1/3 4/3 1/3]; M=length(t); f=@(x)sin(x);
for N = 1:100
h=(b-a)/N;
for i=1:N+1
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j) = x(i) + h * (t(j) + 1) / 2;
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
H(N) = h;
erreur(N)=abs(2-lh)
end
loglog(H, erreur, 'b.-');
xlabel('h');
ylabel('Erreur');
title('Erreur de quadrature en fonction de h');
grid on;

6
La méthode de Gauss

a=0; b=pi; N=3;


t=[-1/sqrt(3) 1/sqrt(3)]; w=[1 1]; M=length(t); f=@(x)sin(x);
for N = 1:100
h=(b-a)/N;
for i=1:N+1
x(i)=a+(i-1)*h;
end
for i=1:N
for j=1:M
y(i,j) = x(i) + h * (t(j) + 1) / 2;
end
end
lh1=0;
for i=1:N
for j=1:M
lh1=lh1+w(j)*f(y(i,j));
end
end
lh=(h/2)*lh1;
H(N) = h;
erreur(N)=abs(2-lh)
end
loglog(H, erreur, 'b.-');
xlabel('h');
ylabel('Erreur');
title('Erreur de quadrature en fonction de h');
grid on;

7
CONCLUSION GENERALE SUR L’INTERPOLATION ET L’INTEGRATION NUMERIQUE

TP1:

• L’interpolation de Lagrange permet d’obtenir une approximation précise des valeurs


entre les points expérimentaux, mais elle devient instable pour un grand nombre de
points (phénomène de Runge).

• L’utilisation de la fonction polyfit de MATLAB permet une approximation plus compacte


sous forme de polynôme, pratique pour l’évaluation rapide, mais peut aussi générer des
erreurs si le degré du polynôme est mal choisi.

• La comparaison graphique montre que les deux approches sont cohérentes pour les 4
points donnés, mais l’évaluation hors de ces points doit être faite avec prudence.

TP2:

Toutes les méthodes utilisées pour le calcul de l'intégrale numérique ont donné des
résultats précis et très proches de la valeur analytique de l'intégrale. Parmi ces méthodes, la
méthode de Gauss s’est révélée être la plus précise, et ce malgré un nombre de subdivisions
limité, grâce à l'utilisation de points de pondération optimisés qui améliorent l’exactitude de
l’approximation. L’étude de l’évolution de l’erreur en fonction de h (la longueur des sous-
intervalles) a montré que l’erreur diminue clairement lorsque h devient plus petit, c’est-à-dire
lorsque le nombre de subdivisions N augmente. Les résultats ont également montré que les
méthodes de Simpson et de Gauss convergent plus rapidement vers la valeur exacte que la
méthode des trapèzes. Ces résultats ont été confirmés à l’aide des fonctions MATLAB intégrées
telles que trapz, quad et quadl, qui ont fourni des valeurs très proches de l’intégrale exacte.

Vous aimerez peut-être aussi