Vous êtes sur la page 1sur 11

Université de Blida

Faculté des Sciences 2 année ST

TPN2 MatLab Solution : Méthode Numérique


M.LICHOURI

28 avril 2013

1 But
1. Les entrées sorties
2. Evaluation de polynômes
3. Calcul de lz valeur approchée d'une racine d'une fonction réelle d'une
variable réelle par les méthodes de Dichotomie et de Newton,

2 Exercice 0 : 2011/2012

Listing 1 Solution Exercice 0



1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Departement TC ST∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
2 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Serie de Tp Methodes Numerique∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
3 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Exercice 0∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
4 % Exercice 0 %
5 % Il existe differentes manieres d’evaluer un polynome et on souhaite %
6 % programmer l’algorithme d’HORNER qui permet de calculer %
7 % rapidement la valeur d’un polynome P en un point x. %
8 % Dans un script intitule " poly.m " %
9 % %
10 % ∗∗ Creer un polynome P(x) = 2x^5 + 3x^4 + 4x^3 + 8x^2 + 2x + 1 %
11 % ∗∗ Tracer sa courbe representative dans une figure sur l’intervalle %

12 % [ 10, 10] %
13 % ∗∗ Trouver ses racines avec la commande roots et afficher les. %
14 % ∗∗ A l’aide de l’algorithme d’HORNER evaluer P(x) pour x=3 %
15 % ( la valeur de x doit etre donnee en entree) %
16 % ∗∗ Verifier la valeur obtenue a l’aide de la commande de MATLAB %
17 % polyval %
18 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗M.LICHOURI∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
19 % Creer un polynome P(x) = 2x^5 + 3x^4 + 4x^3 + 8x^2 + 2x + 1
20 % P1=2∗x^5 + 3∗x^4 + 4∗x^3 + 8∗x^2 + 2∗x + 1 ;
21

22 % Tracer sa courbe representative dans une figure sur l’intervalle[ 10, 10]
23 x=10:10; % intervalle [10,10]
24 P1=2∗x.^5 + 3∗x.^4 + 4∗x.^3 + 8∗x.^2 + 2∗x + 1 ;

M.LICHOURI TPINFO4 : 28 avril 2013


Page 1/11
Université de Blida
Faculté des Sciences 2 année ST

25 gure(1); % nommer la figure


26 plot(x,P1); % representer P en fonction de x
27 hold on % figer la figure
28 title('polynome P1 en fonction de x') % le titre du graphe
29 hold o % relacher la figure
30
31 % Trouver ses racines avec la commande roots et afficher les.
32 roots(P1)
33
34 % A l’aide de l’algorithme d’HORNER evaluer P(x) pour x=3
35
36 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Algorithme de Horner∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
37 % http://ljk.imag.fr/membres/Bernard.Ycart/mel/pf/node18.html %
38 % Au temps jadis, les physiciens et les astronomes devaient faire tous %
39 % leurs calculs a la main, et ces calculs pouvaient etre tres compliques. %
40 % Il fallait souvent evaluer des quantites polynomiales, par exemple %
 
41 % 5x^4 4x^3+3x^2 2x+1 pour x=8. L’approche naive d’arriver au resultat est%
42 % de calculer x, x^2,x^3 et x^4 pour la valeur choisie x=8, ce qui %
43 % represente 3 multiplications,puis 5x^4,4x^3 ,3x^2 et 2x, ce qui %
44 % represente 4 multiplications supplementaires.En ajoutant les sommes a la%
45 % liste des operations necessaires,on obtient en tout 7 multiplications et%
 
46 % 4 additions. Remplacons en effet 5x^4 4x^3+3x^2 2x+1 par l’expression %
 
47 % equivalente x(x(x(x∗5 4)+3) 2)+1 %
48 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
49 x=3;
50 % horner(2∗x^5 + 3∗x^4 + 4∗x^3 + 8∗x^2 + 2∗x + 1)
51 % ans =
52 % x∗(x∗(x∗(x∗(2∗x + 3) + 4) + 8) + 2) + 1
53 % x=3
54 % x =
55 % 3
56 % z=x∗(x∗(x∗(x∗(2∗x + 3) + 4) + 8) + 2) + 1
57 % z =
58 % 916
59 % Verifier la valeur obtenue a l’aide de la commande de MATLAB polyval
60 P2=[2 3 4 8 2 1] % extraire les differents coefficients du polynome P
61 % et les mettre dans l’ordre dans un vecteur.
62 z2=polyval(P2,x) % evaluer le polynome avec la valeur x.

M.LICHOURI TPINFO4 : 28 avril 2013


Page 2/11
Université de Blida
Faculté des Sciences 2 année ST

Figure 1  Représentation du polynôme P en fonction de x

3 Exercice 1
Listing 2 Solution Exercice 1

1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Departement TC ST∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
2 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Serie de Tp Methodes Numerique∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
3 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Exercice 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
4 % Exercice 1 %
5 % Tracez sur une meme figure les courbes representatives des fonctions %
6 % suivantes: %
7 % ∗∗ f(x)=cos(x) pour x allant de 0 a 2∗pi et en utilisant %
8 % 500 points dans la fonction plot. %
9 % ∗∗ g(x)=xcos(x) pour x allant de 0 a 2∗pi et en utilisant %
10 % 1000 points dans la fonction plot. % %
11 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗M.LICHOURI∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
12
13 % Tracer les deux courbes dans une meme figure
14 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Methode 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
15 x1=linspace(0,2∗pi,500); % 500 valeurs comprises entre 0 et 2∗pi
16 f=cos(x1);
17 x2=linspace(0,2∗pi,1000); % 1000 valeurs comprises entre 0 et 2∗pi
18 g=x2.∗cos(x2); % multiplication terme a terme
19 gure(1); % nommer la figure
20 plot(x1,f,'r'); % representer f en fonction de x1 en rouge
21 hold on % figer la figure
22 plot(x2,g,'b'); % representer f en fonction de x1 en bleu
23 title('representation de f(x) et g(x)') % le titre du graphe
24 legend('f(x)=cos(x)','g(x)=xcos(x)') % etiquete des deux courbes

M.LICHOURI TPINFO4 : 28 avril 2013


Page 3/11
Université de Blida
Faculté des Sciences 2 année ST

25 xlabel('axes des x') % nomination des abscises


26 ylabel('axes des y') % nomination des ordonnees
27 grid on % afficher une grille en pointilles
28 hold o % relacher la figure
29
30
31 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Methode 2∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗
32 gure(2); % nommer la figure
33 subplot(1,2,1) % deviser la figure en deux (1 ligne par 2 colonne)
34 % considerer la premiere partie 1
35 plot(x1,f,'r'); % representer f en fonction de x1 en rouge
36 hold on % figer la partie 1
37 title('representation de f(x)') % le titre du graphe
38 legend('f(x)=cos(x)') % etiquete de la premiere courbe
39 xlabel('axes des x') % nomination des abscises
40 ylabel('axes des y') % nomination des ordonnees
41 grid on % afficher une grille en pointilles
42 hold o % relacher la partie 1
43
44 subplot(1,2,2) % deviser la figure en deux (1 ligne par 2 colonne)
45 % considerer l’autre partie 2
46 plot(x2,g,'b'); % representer f en fonction de x1 en bleu
47 hold on % figer la partie 2
48 title('representation de g(x)') % le titre du graphe
49 legend('g(x)=xcos(x)') % etiquete de la deuxieme courbe
50 xlabel('axes des x') % nomination des abscises
51 ylabel('axes des y') % nomination des ordonnees
52 grid on % afficher une grille en pointilles
53 hold o % relacher la partie 2

M.LICHOURI TPINFO4 : 28 avril 2013


Page 4/11
Université de Blida
Faculté des Sciences 2 année ST

Figure 2  Methode 1 de Représentation des deux courbes

Figure 3  Methode 2 de Représentation des deux courbes

M.LICHOURI TPINFO4 : 28 avril 2013


Page 5/11
Université de Blida
Faculté des Sciences 2 année ST

4 Exercice 2
Listing 3 Solution Exercice 2

1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Departement TC ST∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
2 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Serie de Tp Methodes Numerique∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
3 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Exercice 2∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
4 % Exercice 2 %
5 % En utilisant les fonctionnalites graphiques de MATLAB, localiser la %
6 % racine positive de l’equation f(x) = 2sin(x)  x %
7 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗M.LICHOURI∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
8 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Methode 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
9 % Tracer et localiser la racine positive (visuellement)
10 x=linspace(0,10,500); % 500 valeurs comprises entre 0 et 10
11 f=2∗sin(x)x;
12 gure(1); % nommer la figure
13 plot(x,f,'r'); % representer f en fonction de x en rouge
14 hold on % figer la figure
15 title('representation de f(x)') % le titre du graphe
16 legend('f(x)=2*sin(x)-x)') % etiquete des deux courbes
17 xlabel('axes des x') % nomination des abscises
18 ylabel('axes des y') % nomination des ordonnees
19 grid on % afficher une grille en pointilles
20 axis([1 4 1 2]) % centraliser l’image en precisant la marge
21 % de valeur en x et en y
22 hold o % relacher la figure
23 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Methode 2∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
24 % Tracer et localiser la racine positive (Graphiquement)

25 %f=2∗sin(x) x; f(x)=0 => 2∗sin(x)=x
26 % Considerer deux fonctions Y=x et Z=2∗sin(x)
27 % La solution de f(x) est l’intersection entre Y et Z
28 % Pour cela on doit represente ces deux fonctions dans le meme graphe.
29 gure(2); % nommer la figure 2
30 Y=x;
31 Z=2∗sin(x);
32 plot(x,Y,'r'); % representer Y en fonction de x en rouge
33 hold on % figer la figure
34 plot(x,Z,'G'); % representer Z en fonction de x en rouge
35 title('representation de Y et Z en fonction de x') % le titre du graphe
36 legend('Y=x','Z=2*sin(x)') % etiquete des deux courbes
37 xlabel('axes des x') % nomination des abscises
38 ylabel('axes des y') % nomination des ordonnees
39 grid on % afficher une grille en pointilles
40 axis([1 4 1 2]) % centraliser l’image en precisant la marge
41 % de valeur en x et en y
42 hold o % relacher la figure

M.LICHOURI TPINFO4 : 28 avril 2013


Page 6/11
Université de Blida
Faculté des Sciences 2 année ST

Figure 4  Représentation de f(x) et Localisation de la racine positive visuel-


lement

Figure 5  Représentation de f(x) et Localisation de la racine positive graphi-


quement

M.LICHOURI TPINFO4 : 28 avril 2013


Page 7/11
Université de Blida
Faculté des Sciences 2 année ST

5 Exercice 3

Figure 6  Dichotomie : Solutions d'une équation de la forme f(x) = 0

M.LICHOURI TPINFO4 : 28 avril 2013


Page 8/11
Université de Blida
Faculté des Sciences 2 année ST

Listing 4 Solution Exercice 3



1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Departement TC ST∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
2 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Serie de Tp Methodes Numerique∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
3 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Exercice 3∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
4 % Exercice 3 %
5 % En utilisant la methode de Dichotomie calculer la valeur approchee %
6 % de la racine de f(x) = 2sin(x)  x %
7 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗M.LICHOURI∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
8 % f=2∗sin(x) x; 
9 a=1
10 b=6
11 fa=2∗sin(a)a;
12 fb=2∗sin(b)b;
13 eps=0.0001;
14 nb=0;
15 fprintf('nb | x | f(x) \n')
16 fprintf('--------------------------------------\n')
17 if fa∗fb<0
18 while (ba)>eps
19 nb=nb+1;
20 x=(a+b)/2;
21 fx=2∗sin(x)x;
22 if fa∗fx<0
23 b=x;
24 else
25 a=x;
26 end
27 fprintf('%i | %10.5f | %10.5f \n',nb,x,fx)
28 end;
29 end

Conclusion
Etant donnée que la méthode de Dichotomie est un algorithme qui sert
pour approché la racine réel d'une equation de la forme f pxq  0, donc
ceci va engendre la nécessite de pas mal d'itération an d'approcher au
mieux la racine réel à  prés

M.LICHOURI TPINFO4 : 28 avril 2013


Page 9/11
Université de Blida
Faculté des Sciences 2 année ST

nb x f(x)
1 3.50000 -4.20157
2 2.25000 -0.69385
3 1.62500 0.37206
4 1.93750 -0.07047
5 1.78125 0.17462
6 1.85938 0.05792
7 1.89844 -0.00483
8 1.87891 0.02691
9 1.88867 0.01113
10 1.89355 0.00317
11 1.89600 -0.00082
12 1.89478 0.00118
13 1.89539 0.00018
14 1.89569 -0.00032
15 1.89554 -0.00007
16 1.89546 0.00005

Table 1  Les diérents ittérations et la racine approchée (en vert)

6 Exercice 4
Listing 5 Solution Exercice 4

1 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Departement TC ST∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
2 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Serie de Tp Methodes Numerique∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
3 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗Exercice 4∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
4 % Exercice 4 %
5 % En utilisant la methode de Newton calculer la valeur approchee %
6 % de la racine de f(x) = 2sin(x)  
x avec eps=10 6c %
7 %∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗M.LICHOURI∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗%
8 clc;
9 clear;
10 a=1;
11 b=6;
12 eps=0.001;
13 x=5;
14 nb=0;
15 err=1;
16 % Declaration d’une fonction a l’aide de la commande inline
17 f=inline('2*sin(x)-x') % declarer la fonction f(x)
18 df=inline('2*cos(x)-1') % declarer la fonction derivee
19 %f =
20 % Inline function:

21 % f(x) = 2∗sin(x) x
22 %df =
23 % Inline function:

M.LICHOURI TPINFO4 : 28 avril 2013


Page 10/11
Université de Blida
Faculté des Sciences 2 année ST


24 % df(x) = 2∗cos(x) 1
25 fprintf('nb | x | f(x) \n')
26 fprintf('--------------------------------------\n')
27 if f(a)∗f(b)<0
28 while err>eps
29 nb=nb+1;
30 xt=xf(x)/df(x); %xn+1=xnf(xn)/f’(xn)
31 err=abs(xxt);
32 x=xt;
33 fprintf('%i | %10.5f | %10.5f \n',nb,x,f(x))
34 end;
35 end

nb x f(x)
1 -10.98853 12.98848
2 1.81958 0.11885
3 1.89921 -0.00610
4 1.89550 -0.00001
5 1.89549 -0.00000

Table 2  Les diérents ittérations et la racine approchée (en vert)

Comparaison entre les deux méthodes

Pour cela on va considérer trois critére : la racine trouvé et le nombre


d'itéraion (rapidité de caccul), ainsi que l'erreur (err  0  f pxq) :
XXX Critére
XX
Nombre d'itération Racine trouvé Erreur
Methode
XXX
XX
Dichotomie 16 1.89546 0.00005
Newton 5 1.89549 0.00000
On remarque bien que selon ces trois critéres la Méthode de Newton est
la plus précise et la plus rapide en terme de temps de calcul.

M.LICHOURI TPINFO4 : 28 avril 2013


Page 11/11