Cours Meth 1
Cours Meth 1
Cours Meth 1
RAHAB Hichem
rahab_hichem @yahoo.fr
2015 /2016
Méthodes Numériques et programmation 2eme physique
4 Intégration numérique 29
4.1 Méthode du point milieu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Méthode du point milieu composite . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.1 Programme Matlab (Méthode du point milieu composite) . . . . . . . . . 31
4.3 Méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3.1 La méthode trapz de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Méthode de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3
Méthodes Numériques et programmation 2eme physique
5 Travaux pratiques 35
5.1 TP 1 : Introduction à Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2 TP 2 : Résolution numérique d’équations non linéaires . . . . . . . . . . . . . . . 39
5.3 TP 3 :Résolution numériques des systèmes d’équations linéaires . . . . . . . . . . 40
5.4 TP 4 : Intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Bibliographie 43
1.1 Introduction
On appelle « langage informatique » un langage destiné à décrire l’ensemble des actions
consécutives qu’un ordinateur doit exécuter. Un langage informatique est ainsi une façon pra-
tique pour nous (humains) de donner des instructions à un ordinateur. À CHAQUE instruction
correspond une ou plusieurs actions du processeur. Le langage utilisé par le processeur est appelé
langage machine. Il s’agit des données telles qu’elles arrivent au processeur, constituées d’une
suite de 0 et de 1 (données binaire). Le langage machine n’est ainsi pas compréhensible par
l’être humain, c’est pourquoi des langages intermédiaires, compréhensibles par l’homme, ont été
mis au point. Pour être exploitable par le processeur, le code écrit dans ce type de langage est
transformé en langage machine par une opération de compilation.
Le langage Matlab
Matlab est un environnement de calcul numérique matriciel, il est donc basé sur le principe
de matrice. Tous les types dans Matlab sont à la base des matrices, un scalaire est une matrice
de dimension 1 × 1, un vecteur est une matrice de 1 × n ou n × 1. Ce principe est primordial à
comprendre pour pouvoir travailler avec Matlab. Matlab crée une variable lors de son affectation,
de ce fait on n’a pas besoin de déclarer les variables avant sont utilisation.
Remarque
– Le point-virgule ( ;) dans la matrice marque le retour à la ligne, alors qu’à la fin d’une
instruction bloque l’affichage du résultat.
5
Méthodes Numériques et programmation 2eme physique
x =
0 1 2
4 5 6
>> size(y)
ans =
3 2
y(:,2)=
4
5
6
y(2,:)=
1 5
>> A
A =
1 2 3
4 5 6
6 7 8
>> eye(size(A))
ans =
1 0 0
0 1 0
0 0 1
1.2.5 Le produit
Soient de matrices A de n × m et B de p × q, alors le produit C = A × B n’ est possible que
si m = p. Dans ce cas, le coefficient c11 de cette matrice C s’écrit :
A ∗ A−1 = Id
Dans Matlab, cette matrice inverse est donnée par :
A^(-1)=inv(A)
Exemple
>>inv(A)
ans =
-0.0682 0.2500 0.1136
-0.1364 -0.5000 0.2273
0.2955 0.2500 -0.1591
>>sort(x)
ans =
0 2 15
sort(x’) , donne une matrice colonne dont les éléments sont en ordre croissant :
>>sort(x’)
ans =
0
2
15
>>sum(x)
ans =
17
>> x=2
>> p=(4*x^2-2*x+3)/(x^3+1)
>> p =
1.6667
Opérateurs logiques :
= L’opérateur ’NON’ (différent)
(==) L’opérateur ’égal’
& L’opérateur ’et’
k L’opérateur ’ou’
> supérieur à
< inférieur à
>= supérieur ou égal
<= inférieur ou égal
où <condition 1>, <condition 2>, ... représentent des ensembles de conditions logiques,
dont la valeur est vrai ou faux. La première condition ayant la valeur 1 entraîne l’exécution de
l’instruction correspondante.
Si toutes les conditions sont fausses, les instructions <instruction n.1>,<instruction n.2>, ...
sont exécutées.
Si la valeur de <condition k> est zéro, les instructions <instruction k.1>, <instruction k.2>,
...ne sont pas exécutées et l’interpréteur passe à la suite.
Exemple 1
>> V=268.0826
V =
268.0826
>> if V>150, surface=pi*R^2, end
surface =
50.2655
Exemple 2 Pour calculer les racines d’un trinôme ax2 +bx+c, on peut utiliser les instructions
suivantes :
if a ~= 0
sq = sqrt(b*b - 4*a*c);
x(1) = 0.5*(-b + sq)/a;
x(2) = 0.5*(-b - sq)/a;
elseif b ~= 0
x(1) = -c/b;
elseif c ~= 0
disp(’Equation impossible’);
else
disp(’ L’’equation est une egalite’);
end
Remarques
– La double apostrophe sert à représenter une apostrophe dans une chaîne de caractères.
Ceci est nécessaire car une simple apostrophe est une commande Matlab.
– La commande disp(”) affiche simplement ce qui est écrit entre crochets.
Exemple Pour calculer les 6 premiers termes d’une suite de Fibonacci fi = fi−1 + fi−2 ,avec
f1 = 0 et f2 = 1, on peut utiliser les instructions suivantes :
Remarques
– L’utilisation du point-virgule ( ;) permet de séparer plusieurs instructions Matlab entrées
sur une même ligne.
– On pourrait remplacer la seconde instruction par : » for i = [3 4 5 6]
– Matlab n’exécute l’ensemble du bloc de commandes qu’une fois tapé end.
Exemple Les instructions suivantes ont le même effet que les précédentes :
Remarque
– Le compteur ’k’ est ajouté ici, ce compteur doit être initialisé et incrémenté pour assurer
la condition d’arrêt de la boucle while.
3 2
Exemple Pour le polynôme : g(x) = 2xx2 −3x+5.e
+7x +3x+1
−x
On peut écrire un script, qu’on choisit d’appeler TP, comme suit :
g=(2*x^3+7*x^2+3*x-1)/(x^2-3*x+5*exp(-x));
>> x=3 ;
>> TP
g=
502.1384
– out1,...,outn sont les variables de sortie sur lesquels les résultats de la fonction sont
retournés ;
– in1,...,inm sont les variables d’entrée, qui sont nécessaire à la fonction pour accomplir
ses calculs.
Exemple 1 On définit une fonction determ , qui calcule le déterminant d’une matrice d’ordre
2:
function det=determ(A)
[n,m]=size(A);
if n==m
if n==2
det = A(1 ,1)*A(2,2)-A(2 ,1)*A(1 ,2);
else
disp(? Seulement des matrices 2x2 ?);
end
else
disp(? Seulement des matrices carrées ?);
end
return
for k = 3:kmax
f(k) = f(k-1) + f(k-2);
alpha = f(k)/f(k -1);
if abs(alpha - alphaold) < tol
return
end
alphaold = alpha;
end
return
Exemple 3 La fonction suivante permet de trouver les solutions d’une équation de 2eme
degré :
>> [r1,r2]=degre2(1,3,1)
r1 =
-2.6180
r2 =
-0.3820
>> [r1,r2]= degre2 (1,1,1)
Pas de solution ...
Remarque
l’instruction return peut être utilisée pour forcer une interruption prématurée de la fonction
(quand une certaine condition est satisfaite).
2.1 Introduction
Pour la résolution des d’équations non linéaires. C’est-à-dire pour une fonction f : Rn → Rn
donnée, la recherche d’un point x ∈ Rn tel que : f (x) = 0, il n’y a pas en générale un algorithme
fini pour trouver cette solution. On est donc obligé d’utiliser des méthodes itératives.
La particularité des méthodes par itération est qu’elles ne permettent de déterminer qu’une
seule racine par essai de suite d’itérations. Il faut alors rechercher les autres racines possibles
par d’autres suites d’itérations.
Dans toutes les méthodes itératives, il est nécessaire, pour éviter une divergence de la solu-
tion, de bien choisir les valeurs initiales. Celles-ci peuvent être obtenues graphiquement.
function c=Bissection(a,b)
c=(a+b)/2
tol=1e-6; % C’est l’approximation désirée
while abs(f(c)) > tol
if f(a)*f(c)<0
13
Méthodes Numériques et programmation 2eme physique
b=c;
end
if f(c)*f(b)<0
a=c;
end
c=(a+b)/2;
end
c
Exemple 1 La fonction f (x) = x3 − x2 − 1 a une racine dans l’intervalle [1, 2]. Utiliser la
méthode de bissection pour approximer cette racine au rang de 10−4 .
On a : f (1) = −1 < 0 et f (2) = 3 > 0, alors la condition (1) est satisfaite.
Commençant avec a0 = 1 et b0 = 2, on calcule : c0 = (a0 +b 2
0)
= (1+2)
2 = 1.5 et f (c0 ) =
0.125. Alors f (1).f (1.5) < 0 la fonction change de signe dans l’intervalle [a0 , c0 ] = [1, 1.5].
pour continuer on met : a1 = a0 et b1 = c0 , donc : c1 = (a1 + b1 )/2 = (1 + 1.5)/2 = 1.25
et f (c1) = −0.609375 On a aussi, f (1.25).f (1.5) < 0, alors la fonction change de signe dans
l’intervalle [a1 , c1 ] = [1.25, 1.5]. Il y a une racine dans cet intervalle. On met a2 = c1 et b2 = b1 .
Et ainsi de suite jusqu’à aboutir aux valeurs du tableau de la Figure 2.3 . Qui nous donne la
racine r = 0.4656.
function [c,fc,iter]=Bissection(a,b)
c=(a+b)/2
tol=1e-5;
iter=0;
while abs(c^3-c^2-1) > tol
if (a^3-a^2-1)*(c^3-c^2-1)<0
b=c;
end
if (c^3-c^2-1)*(b^3-b^2-1)<0
a=c;
end
c=(a+b)/2;
iter=iter+1;
end
fc=c^3-c^2-1;
Exemple 2 Soit la fonction f (x) = cosh x + cos x − 3 . On veut trouver un sous intervalle qui
contient le zéro de f dans l’intervalle [−3, 3], et ensuite calculer cette racine par la méthode de
dichotomie avec une tolérance de 10−10 .
On utilise la fonction plot(x,f)
function x=Newton(x0)
tol=1e-10;
x=x0;
while abs(f(x))>tol
xi=x;
x=xi-(f(xi)/derf(xi));
iter=iter+1;
end
function [x,fx,iter]=Newton(x0)
tol=1e-10;
iter=iter+1;
x=x0;
while abs(e^x-2.cos(x))>tol
xi=x;
x=xi-(e^xi-2.cos(xi))/( e^xi+2.sin(xi));
iter=iter+1;
end
fx=e^x-2.cos(x);
function f=f(x)
f=exp(x)-2*cos(x);
function f=derf(x)
f=exp(x)+2*sin(x);
>> Newton
x =
0.5398
Exemple 2 Utiliser la méthode de Newton pour calculer la racine carrée d’un nombre positif
0 a0 . Procéder de manière analogue pour calculer la racine cubique de 0 a0 .
Les racines carrées et cubiques d’un nombre 0 a0 sont respectivement les solutions des équations
x2 = a et x3 = a .
En commençant par le racine carrée de : a = 3, on va premièrement tracer la courbe de la
fonction f (x) = x2 − 3 comme suit :
>> x=0:0.01:5;
>> f=x.^2-3;
>> plot(x,f); grid on
f=x^2-3;
et la dérivée f 0 (x)
derf=2*x;
>> [x,fx,iter]=Newton(1.5)
x =
1.73205081001473
fx =
8.472674117854240e-009
iter =
3
Le but de ce chapitre est de passer en revue quelques méthodes de résolution des systèmes
de m équations à n inconnues :
a11 x1 +a12 x2 +··· +a1n xn = b1
a21 x1
+a22 x2 +··· +a2n xn = b2
.. .. .. .. ..
. . . . .
a x
m1 1 +am2 x2 + · · · +amn xn = bm
x = A−1 × B
21
Méthodes Numériques et programmation 2eme physique
x1 + 3x2 + 5x3
= 6
Exemple Soit le système d’équations suivant : 2x − x
1 2 = 0
= −1
5x + 4x + 3x
1
2 3
1 3 5 6
On a la matrice A= 2 −1 0 et la matrice B= 0
5 4 3 −1
La solution par Matlab est :
>>A=[1 3 5;2 -1 0; 5 4 3];
>>B=[6;0;-1];
>>x=A^(-1)*B
x=
-0.5227
-1.0455
1.9318
x1 −0.5227
Alors la solution est la matrice x = x2 = −1.0455
x3 1.9318
Dans cette méthode, on choisit successivement chaque ligne comme ligne pivot, le pivot étant
le premier élément non nul de la ligne. On divise alors la ligne N˚1 du système par a11 a :
a a12 a13 b1
11
x1
a11 a11 a11
a11
a21 a22 a23 x2 = b2
a31 a32 a33 x3 b3
1 a012 a013 x1 b01
a21 − a21 a22 − a21 ∗ a12 a23 − a21 ∗ a013
0
x2 = b2 − a21 × b01
a31 a32 a33 x3 b3
1 a012 a013 x1 b01
0 a022 a023
0
x2 = b2
a31 a32 a33 x3 b3
de même pour la troisième ligne :
1 a012 a013 x1 b01
0
a22 a023
0
0 x2 = b2
0 0
a31 − a31 a32 − a31 ∗ a12 a33 − a31 ∗ a13 x3 0
b3 − a31 ∗ b1
Alors :
1 a012 a013 x1 b01
0 a022 a023
0
x2 = b2
0 a032 a033 x3 b03
on procède ainsi avec la deuxième linge :
alors :
1 a012 a013 x1 b01
0 1 a0023
00
x2 = b
0 a032 a033 x3 b03
On obtient :
4 1 1 x1 7
1 −7 2 x = −2
2
3 0 4 x3 11
On définit tout d’abord la matrice argument dans Matlab par :
4 1 1 7
A = 1 −7 2 −2
3 0 4 11
1 1 7
1
1 1 7
4 4 4 1 4 4 4
−29 7 −15
−7 15
A=
0
4 4 4 = 0 1
−29 −29 −29 29 29
4 4 4
0 − 43 13 23 0 − 43 13
4
23
4
4 4
On annule ensuite le deuxième terme des lignes 1 et 3, en retranchant à la 1ère ligne la 2ème
ligne multipliée par ’ 14 ’, à la 3ème ligne la 2ème ligne multipliée par ’ −3
4 ’,
1 1 1 1 −7 7 1 15 9 188
1 4 − 4 ×1 4 − 4 × 29 4 − 4 × 29 1 0 29 116
−7 15 −7 15
A= 0 1 = 0 1
29 29 29 29
−3
0 4 − ( −3
4 × 1)
13
4 − ( −3
4 ×
−7
29 )
23
4 − ( −3
4 ×
15
29 ) 0 0 356
116
712
116
9 188
1 0
9 188
29 116 1 0 29 116
0 1 −7 15
−7 15
A= = 0 1
29 29
29 29
356 712
0 0 116
356
116
356 0 0 1 2
116 116
Comme a été fait avant on annule ensuite le troisième terme des lignes 1 et 2, en retranchant
9
à la 1ère ligne la 3ème ligne multipliée par ’ 29 ’, à la 2ème ligne la 3ème ligne multipliée par ’ −7
29 ’.
9 9 188 9
1 0 29 − ( 29 × 1) 116 − ( 29 × 2)
1 0 0 1
−7
A= 0 1 − ( −7
29 × 1)
15
− ( −7
× 2) = 0 1 0 1
29 29 29
0 0 1 2
0 0 1 2
Programme Matlab
Le programme Matlab correspondent à la résolution d’un système de 3 équations à l’aide de la
méthode de Gauss-Jordan est donné par la fonction Matlab suivante :
function [x1,x2,x3]=Gauss(A)
Pivot=A(2,1);
for j=1:4
A(2,j)=A(2,j)- Pivot*A(1,j);
end
Pivot=A(3,1);
for j=1:4
A(3,j)=A(3,j)- Pivot*A(1,j);
end
Pivot=A(1,2);
for j=2:4
A(1,j)=A(1,j)- Pivot*A(2,j);
end
Pivot=A(3,2);
for j=2:4
A(3,j)=A(3,j)- Pivot*A(2,j);
end
Pivot=A(1,3) ;
for j=3:4
A(1,j)=A(1,j)-Pivot*A(3,j);
end
Pivot=A(2,3);
for j=3:4
A(2,j)=A(2,j)- Pivot*A(3,j);
end
x1=A(1,4);
x2=A(2,4);
x3=A(3,4);
La méthode de Gauss seidel est une méthode itérative pour le calcul de la solution d’un sys-
(k) (k) (k)
tème linéaire Ax = b avec A ∈ Rn×n , elle construit une suite de vecteurs : x(k) = (x1 , x2 , ..., xn )
convergent vers le vecteur solution exacte x = (x1 , x2 , ..., xn ) pour tout vecteur initiale x(0) =
(0)
(x1 (0), x2 , ..., xn (0) lorsque k tend vers ∞.
Itération N 1
En partant de x(0) = (0, 0, 0)
x1 = (4 − 2(0) − (0))/4 = 1
x2 = (2 + 1)/2 = 3/2
x3 = (9 − 2(1) − 3/2)/4 = 11/8
x(1) = (1, 32 , 11
8 )
Itération N 2
En partant de : x(1) = (1, 32 , 11
8 )
−3
x1 = (4 − 2( 23 ) − ( 11
8 ))/4 = 32
x2 = (2 − −3 )/2 = 61
32 64
−3 61 527
x3 = (9 − 2( 32 ) − ( 64 ))/4 = 256
x(2) = ( −3 61 527
32 , 64 , 256 )
Itération N 3
En partant de : x(2) = ( −3 61 527
32 , 64 , 256 )
x1 = (4 − 2( 61 527
64 ) − ( 256 ))/4 = 9
1024
9 2057
x = (2 + )/2 =
2 1024 2048
9 2057 16339
x3 = (9 − 2( 1024 ) − ( 2048 ))/4 = 8192
9 2057 16339 ∼
x(3) = ( 1024 , 2048 , 8192 ) = (0.0087, 1.0043, 1.9945)
Remarque :
Le Iter représente le nombre d’itérations.
end
Intégration numérique
Dans ce chapitre, nous proposons des méthodes numériques pour le calcul approché de :
Z b
I(f ) = f (x)dx
a
Lorsqu’il s’agit d’une formule simple d’une fonction f (x), cet intégrale peut se fait analy-
tiquement et nous n’avons pas besoin d’utiliser les méthodes numériques. Alors que dans les
cas où la formule de f (x) est compliquée ou lorsque nous avons juste des mesures discrètes et
aucune formule mathématique qui relie ces mesures, on fait recours aux méthodes numériques.
Autrement dit, les méthodes numériques interviennent lorsque la fonction est compliquée ou
dans le cas d’une mesure expérimentale.
Calculer numériquement l’intégrale d’une fonction f (x) dans l’intervalle [a, b] revient à cal-
culer la surface délimitée par l’axe des abscisses, les deux droite y = a et y = b et la portion de
la courbe de f délimitée par ces deux droites.
29
Méthodes Numériques et programmation 2eme physique
la formule de point milieu simple est obtenue en utilisant la formule suivante sur l’intervalle
[a,b] :
b−a
Ipm (f ) = (b − a)f ( )
2
Remarque :
L’indice pm signifie "point milieu", et l’exposant c signifie "composite".
Exemple soit à intégrer la fonction f (x) = 3x2 +2x dans l’intervalle [1, 2]. qui est une fonction
très simple à intégrer analytiquement.
Z 2 Z 2
f (x)dx = (3x2 + 2x) = [x3 + x2 ]21 = (8 + 4) − (1 + 1) = 10
1 1
On utilise la méthode du point milieu avec n = 4, on a :
h = 2−14 = 0.25, et x¯1 =
1+1.25
2 = 1.1250, x¯2 = 1.3750, x¯3 = 1.6250, x¯4 = 1.8750
l’intégrale :
I = 0.25[f (1.1250) + f (1.3750) + f (1.6250) + f (1.8750)] = 9.9844
On augmentant n à 8 on va avoir h = 18 = 0.125 on obtient le nouveau intégrale :
I = 0.125[f (1.0625) + f (1.1875) + f (1.3125) + f (1.4375) + f (1.5625) + f (1.6875) + f (1.8125) +
f (1.9375)] = 9.9961
En utilisant le programme Matlab PointMilieuComposite avec n = 100 on obtient le résultat :
>>format long; I=PointMilieuComposite(1,2,100)
I =
9.99997500000000
Remarque
l’instruction ’format long’ est utilisée pour afficher 15 chiffres après la virgule.
Programme Matlab
function I=trapeze(a,b,n)
h=(b-a)/n;
I =0;
xi=a;
for i=1:n
xf=xi+h;
I = I+(f(xi)+f(xf));
xi=xf;
end
I=h/2*I
>> x=[1:1/8:2];
>> Y=3*x.^2+2*x;
>> I=trapz(x,Y)
I =
10.00781250000000
h X X
Is (f ) = [f (x1 ) + f (xn+1 ) + 4 f (xi ) + 2 f (xi )]
3 (i_paire) (i_impaire)
Programme Matlab
function I=Simpson(a,b,n)
h=(b-a)/n;
x=[a:h:b];
f=3*x.^2+2*x;
I=f(1)+f(n+1);
for i=2:2:n
I=I+4*f(i);
end
for i=3:2:n
I=I+2*f(i);
end
I=h/3*I;
>> I=Simpson(1,2,8)
I =
10
function I=Simpson(a,b,n)
h=(b-a)/n;
x=[a:h:b];
f=sqrt(1+exp(x));
I=f(1)+f(n+1);
for i=2:2:n
I=I+4*f(i);
end
for i=3:2:n
I=I+2*f(i);
end
I=h/3*I;
>> I=Simpson(0,2,4)
I =
4.00705492785743
>> I=Simpson(0,2,8)
I =
4.00699806600175
>> I=Simpson(0,2,16)
I =
4.00699446417137
La comparaison de ces résultat avec la valeur exacte I = 4.006994 montre qu’on augmentant le
nombre de sous intervalles n la précision du calcul s’augmente.
Travaux pratiques
35
Méthodes Numériques et programmation 2eme physique
Exercice 3
Donner la suite de commandes Matlab pour calculer les formules suivantes :
V = 43 πR3 où R = 4cm
4x2 −2x+3
P (x) = x3 +1
où x = 2
x = 2cos(π)
x2 +2x
y= 2
Exercice 4
Utiliser la fenêtre de commandes Matlab pour créer les matrices suivantes :
x1=( 1 2 3 4 )
x2=(1 3 5 7 9)
x3=(15
12
963)
1
8
x4 = 2
5
9
1
2
La matrice transposé de x1, x10 =
3
4
1 2 3
x5 = 4 5 6
7 8 9
Exercice 5
Soit un vecteur y contenant des valeurs comprises entre −6π et 6π avec un pas de 0.001. Soit
deux fonctions h et i définie par :
h(x) = sin( π4 x) et i(x) = cos( π4 x)
Ecrire un script Matlab représentant h et i en fonction de y sur le même graphe.
Série TP N= 01 (Supplémentaire)
Exercice 1
Ecrire un script MATLAB qui permet de calculer les éléments de la matrice C, la somme de
deux matrices A et B de dimensions 1 × 3 chacune.
Exercice 2
e11
Soit deux matrice D et E données comme suit : D = d11 d12 d13 et E = e21
e31
Ecrire une fonction MATLAB permettant de calculer le produit D × E.
Exercice 3
Ecrire un script qui permet de lire une matrice saisie par l’utilisateur et l’informe si elle est
carrée.
Exercice 4
Ecrire un programme MATLAB qui permet de retourner la transposé A’ d’une matrice A
(2 × 3) saisie par l’utilisateur. En calculant ses éléments.
Exercice 5
Ecrire une fonction MATLAB qui lit une matrice carré A et donne son inverse A−1 (s ?il
existe) Remarque : il est possible d ?inverser une matrice si :
– Elle est carrée.
– Son déterminant n ?est pas null.
Exercice 6
Ecrire une fonction MATLAB permettant de remplacer les éléments de diagonale d ?une
matrice carrée saisie par l ?utilisateur par des zéros.
Exercice 7
Ecrire un script MATLAB pour construire une matrice triangulaire supérieure de dimension
10 ayant des 2 sur la diagonale principale et des ?3 sur le reste des éléments.
Exercice 8
Écrire les instructions MATLAB permettant d’interchanger la troisième et la septième ligne
des matrices construites à l’Exercice précédent, puis les instructions permettant d’échanger la
quatrième et la huitième colonne.
Exercice 9
Ecrire une fonction MATLAB permettant de calculer la surface d’un disque. Surf ace =
pi ∗ R2 / R = Rayon
Exercice 10
Ecrire une fonction MATLAB permettant de calculer le périmètre et la surface d’un rectangle
en connaissant son largeur et longueur.
Exercice 2
En utilisant les fonctionnalités graphiques de MATLAB, localiser la racine positive de l’équation :
f (x) = 2sin(x) − x
Exercice 3
Appliquer la méthode de dichotomie, pour trouver la valeur approchée de la racine de f (x)
définie dans l’exercice 5.2.
Exercice 4
En utilisant la méthode de dichotomie on désire trouver un zéro de la fonction :
f (x) = x.sin(x) − 1
1. Montrer que l’intervalle [0; 2] peut être choisi comme intervalle initial pour cette recherche.
2. Appliquer l’algorithme et calculer la valeur approchée de la racine et de la fonction.
3. Quel est le nombre maximal d’itérations nécessaires pour atteindre une précision sur la
racine de 103
Exercice 5
Soit la fonction : f (x) = −5x3 +39x2 −43x−39. On cherche à estimer x ∈ [1; 5] tel que f (x) = 0.
Exercice 6
Soit la fonction f (x) = e−2x − cos(x) − 3
1. Vérifier que le zéro de cette fonction est situé dans l’intervalle [−1; 0] ;
2. Calculer la valeur de ce zéro par la méthode de Newton avec comme point initial le point
x0 = 0.
Exercice 7
Trouver la racine ’c’ de la fonction f (x) = x3 + 4x2 + 7 dans le voisinage de x0 = −4, avec une
précision de 5 places decimal.
Exercice 2
En se basant sur votre cours en particulier la méthode de la matrice inverse,écrire le pro-
gramme Matlab permettant de résoudre un système de deux d’équations de deux variables
x1 , x2 .
Exercice 3
résoudre par le programme de l’exercice précédent le système linéaire suivant :
(
x1 + 5x2 = 7
−2x1 − 7x2 = −5
Exercice 4
Résoudre par la méthode de Gauss le système linéaire suivant :
4x1 + 2x2
− x3 = 1
3x − 5x2
1 + x3 = 4
x
1 + 2x3 = 3
Exercice 5
En se basant sur votre cours en particulier la méthode de Gauss, écrire le programme Matlab
permettant de résoudre un système de deux d’équations de deux variables x1 , x2 .
Exercice 6
résoudre par le programme Matlab de l’exercice précédent (Gauss) le système linéaire sui-
vant : ( (
7x1 − x2 = 6 −4x1 + 2x2 = −6
x1 − 5x2 = −4 3x1 − 5x2 = 1
Exercice 7
Résoudre les systèmes linéaires suivants par la méthode de Gauss-seidel en posant x(0) =
(0, 0, 0) :
5x1 + x2 − x3 = 4
4x1 +
x2 + x3 = 7
x1 + 4x2 + 2x3 = 15 x1 − 7x2 + 2x3 = −2
x − 2x + 5x = 12
3x 4x3 = 11
1 2 3 1
Exercice 8
En se basant sur votre cours en particulier la méthode de Gauss-seidel, écrire le programme
Matlab permettant de résoudre un système de deux d’équations de deux variables x1 , x2 . En
utilisant la méthode de Gauss-Seidel.
Exercice 9
résoudre par le programme Matlab de l’exercice précédent (Gauss-seidel) le système linéaire
suivant :
(
3x1 − x2 = 2
x1 + 4x2 = 5
Exercice 10
Démontrer que la méthode de Gauss-seidel vace x(0) = (0, 0, 0)diverge pour les systèmes
suivants :
( (
x1
+ 3x2 − x3 = 5
x1 − x2 = −1 −x1 − 4x2 = 1
3x1 − x2 = 5
2x1 + x2 = 3 3x1 − 2x2 = 2
x2 + 2x3 = 1
échanger les lignes de ces système pour obtenir des matrices à diagonale dominant et refaire la
résolution avec la méthode de Gauss-seidel.
Exercice 11
Ecrire les programmes Matlab permettant d’utiliser la méthode de Gauss-seidel pour résoudre
les systèmes d’équation suivants :
x1 + 2x2 + 1 x3 + x4 = 13
2x + 3x + 24x + x 2
1 2 3 4 = 12
1
x1 + 2x 2 + 3x 3 + 5x 4 = 24
2
2x1 + 5x2 + 6x3 + 3x4 = 22
4x1 + x2 − x3 + = 3
+ 6x2 − 2x3 − x5 = −6
x1 + x4
x2 + 5x3 − x5 + x6 = −5
2x2 + 5x4 − x5 − x7 − x8 = 0
− x3 − x4 + 6x5 − x6 − x8 = 12
− x3 − x5 + 5x6 = −12
− x4 + 4x7 − x8 = −2
− x4 − x5 − x7 + 5x8 = 2
4x1 −x2 −x3 = 18
−x +4x2 −x3
1 = 18
−x2 +4x3 −x4 −x5 = 4
−x3 +4x4 −x5 −x6 = 4
−x4 +4x5 −x6 −x7 = 26
−x5 +4x6 −x7 −x8 = 16
−x6 +4x7 −x8 = 10
−x7 +4x8 = 32
Exercice
Déterminer par la méthode des trapèzes puis par celle de Simpson :
Z π
2
f (x)dx
0
Ces points d’appui sont ceux donnant sin x, comparer alors les résultats obtenus avec la valeur
exacte.
Exercice
Calculer à l’aide de la méthode des trapèzes l’intégrale
Z π
I= sin x2 dx
0
Exercice
Calculer Z 2
√
x dx
1
par la formule du point milieu décomposant l’intervalle d’intégration en dix parties.
Exercice
Rπ
Évaluer à l’aide de la méthode de Simpson l’intégrale −π cos x dx, avec 20 subdivision de
l’intervalle d’intégration.
[1] Paola Gervasio Alfio Quarteroni, Fausto Saleri. Calcul Scientifique ; Cours, exercices corri-
gées et illustrations en MATLAB et Octave. Springer, deuxième edition, 2010.
[2] Saïd Mammar. Méthodes numériques. Institut Universitaire Professionnalisé d’Évry, 1999.
[3] M. Marcoux. Programmation avec Matlab (TP). I.N.S.S.E.T. Université de Picardie.
[4] Christelle MELODELIMA. Evaluation des méthodes d’analyses appliquées aux sciences de
la vie et de la santé - analyse, fascicule d’exercices. Université Joseph Fourier de Grenoble,
2011/2012.
[5] M.LICHOURI. Série de TPINFO4, Faculté des Sciences. Université de Blida, 2013.
[6] Hichem RAHAB. Cours Méthodes numériques et programmation. Université de khenchela,
2014/2015.
[7] Alfio Quarteron Steven Dufour. Guide de Matlab. Ecole Polytechnique de Montréal, 2002.
43