EXAMEN MATLAB
Travaux pratique 1
//1. Déclarons la fonction f(x)
x=[-10:0.001:10]
deff ('y=f(x)','y=x.^2-2')
figure
plot(x,f)
xgrid
a=0 ;b=3 ;
while abs(a-b)>0.01
c=(a+b)/2:k=k+1
if f(a)×f(b)<0
b=c ; c=(a+b)/2
else a=c ; c=(a+b)/2
end
end
sol=c
nb=k
k a b C f(a) f(b) f(c) Ɛ
1 0 3 1.5 - + + 0.01
2 0 1.5 0.75 - + - 0.01
3 0.75 1.5 1.125 - + - 0.01
4 0.125 1.5 1.3125 - + - 0.01
//2. Méthode des points fixes
//les formes possibles de la fonctions g(x)
x=[0:3]
deff('y=fx','y=x.*^2-2')
g(x)=x-f(x)
eps=0.001
a=0
b=3
for k=k+1
end
(a+b)/2
while err>eps
x1=g(a)
x2=g(b)
//3. Méthode de newton
function [sol, info, niter]=newtonp (f, fprise, itmax, epsilon, xzero)
niter=0 //init du compteur d'itération
xzero=0 //init du premier point
info=0 //init info=0= pas de convergence
while niter<itmax
x1=x-(x.^2-2)/2.*x
if abs(f(x))<epsilon
info=1
break
end
p. 1
end
sol=x
endfunction
deff ('y=hsf(x)','y=x.^2-2')
deff('y=hsfprise(x)','y=2.*x')
[s i n]=newton1(f,2.*x,10,1.e-3,1)
sqrt(2)
Travaux pratique 2
1. //donnons l'écriture matricielle de s
A=[3,-2,1;2,1,1;4,-3,2]
B=[2;7;4]
// calculons X=inv(A)*B
X=inv(A)*B
2. //Méthode cramer
det(A)
C=[2,-2,1;7,1,1;4,-3,2]
det(C)
D=[3,2,1;2,7,1;4,4,2]
det(D)
E=[3,-2,2;2,1,7;4,-3,4]
det(E)
X=det(C)/det(A)
Y=det(D)/det(A)s
Z=det(E)/det(A)
3. //Méthode de gausse
function x=gaussepremier(A, B)
//récupération des taille Aet B
[n m]=size(A)
[p q]=size(B)
//test si les matrice A est bien carrée
if n~=m then
error('erreur: matrice A non carrée')
if p~=q then
error('erreur: B doit être un vecteur colonne')
if p~=n then
error('erreur: matrice A et B doivent avoir le même nombre de ligne')
end
A(:n+1)=B
//boucle sur la colonne
for j=1-n
//boucle sur les lignes qui sont sous la diagonale
for i=j+1:n
//test pour vérifier que le pivot est bien non nul
if abs(A(j,j))<0
error('erreur: pivot nul')
end
A(i,:)=A(i,:)-A(i,j)/A(j,j)*A(j,:)
end
p. 2
endfunction
4. //La matrice de JACOBI. Pour résoudre Ax=B
//A= H-S-F
//H:diag; S : triangle inf: F: triangle sup
A=[4,-2,1;2,4,1;4,-3,8]
B=[2;7;4]
function [sol, iter, info]=myjacobi(A, B, nmaxit, tol)
//vérification :aucun terme de la diagonal de A n'est nul
if~and(diag(A))then
error('erreur :présence d un zéro sur la diagonale de A')
end
//décomposition de A =D E-F
D=diag(diag(A))
E=-triu(A)+D
F=-tril(A)+D
//initialisation sol=B
iter=0//aucun itération
info=0//pas convergent
//boucle itérative de résolution
for k=1:nmaxit
sol=inv(D)*((E+F)*sol+B)
if max(abs(A*sol-B))<tol
info=1
niter =k
break
end
end
[sol,niter,info]= myjacobi(A,B,100,0.01)
Endfunction
//méthode gausseidel
A=[4,-2,1;2,4,1;4,-3,8]
B=[2;7;4]
function [X]=mgausseidl(A, B, n, X0)
D=diag(diag(A))
E=D-triu(A)
F=D-tril(A)
del=inv(D-E)
g=del*F;
c=del*B
for i=1:n
x=g*X+c;
end
endfunction
//Résoudre S par la Méthode CRAMER
tic
A=[3,-2,1;2,1,1;4,-3,2]
B=[2;7;4]
det (A)
p. 3
C=[2,-2,1;7,1,1;4,-3,2]
det(C)
D=[3,2,1;2,7,1;4,4,2]
det(D)
E=[3,-2,2;2,1,7;4,-3,4]
det(E)
X=det(C)/det(A)
Y=det(D)/det(A)
Z=det(E)/det(A)
S=[X,Y,Z]
toc
Conclusion
La méthode cramer est la plus rapide que les méthodes gauss gaussiedel et Jacobi
Travaux pratique 3
1. //Traçons la courbe de résistance en fonction de la température
X=[15.11,14.04,9.28,6.44,4.44,2.9]
Y=[15,20,30,40,50,60]
xlabel('axe des abscisse résistance')
ylabel('axe des ordonnées température')
figure
plot(X,Y,"Y")
xgrid
legend
2. //polynôme de façon analytique
3. //la méthode de Lagrange
y=[15.11,14.04,9.28,6.44,4.44,2.9]
x=[15,20,30,40,50,60]
x=poly(0,'x')
L0=(x-20)*(x-30)*(x-40)*(x-50)*(x-60)/(15-20)*(15-30)*(15-40)*(15-50)*(15-60)
L1=(x-15)*(x-30)*(x-40)*(x-50)*(x-60)/(20-15)*(20-30)*(20-40)*(20-50)*(20-60)
L2=(x-15)*(x-20)*(x-40)*(x-50)*(x-60)/(30-15)*(30-20)*(30-40)*(30-50)*(30-60)
L3=(x-15)*(x-20)*(x-30)*(x-50)*(x-60)/(40-15)*(40-20)*(40-30)*(40-50)*(40-60)
L4=(x-15)*(x-20)*(x-30)*(x-40)*(x-60)/(50-15)*(50-20)*(50-30)*(50-40)*(50-60)
L5=(x-15)*(x-20)*(x-30)*(x-40)*(x-50)/(60-15)*(60-20)*(60-30)*(60-40)*(60-50)
P=('15.11*L0+14.04*L1+9.28*L2+6.44*L3+4.44*L4+2.9*L5')
D’après la courbe la résistance de la température de 37°C est égale à 7.5.
p. 4