Vous êtes sur la page 1sur 5

Dpartement de mathmatiques et de gnie industriel

cole Polytechnique de Montral


CALCUL SCIENTIFIQUE POUR INGNIEURS
LABORATOIRE I
t 2014
Directives: Cette sance de laboratoire vous permettra de vous familiariser avec les commandes
de base de Matlab, la programmation et les fonctionnalits graphiques de ce logiciel. Nous
vous invitons fortement lire le guide dintroduction Matlab, disponible sur le site Internet du
cours, avant de tenter de faire ces exercices. Vous devez faire les 10 exercices et remettre votre
rapport sur Moodle au plus tard le lundi 12mai 12h00.
Rdigez et prsentez votre rapport en utilisant la fonction publish de Matlab. Voir le fichier
RapportLab1.m.

1. Pour n = 1, 2, 3 . . . , on dfinit la suite an par


an =

n+1
cos( n
3 )

2n + n

Utiliser les oprateurs :, .* , ./ et . pour calculer les dix premiers termes de cette suite
(ne pas utiliser de boucle for). Prsenter les rsultats dans un tableau de deux colonnes
laide de la commande fprintf. Inclure le code MATLAB et le tableau dans votre rapport.
2. Tracer sur un mme graphique les trois graphes de la fonction sin(x) x sur lintervalle
[ 2 , 2 ] en utilisant successivement un vecteur de 5, 9 et 129 abscisses quidistantes
dans lintervalle [ 2 , 2 ] . Utiliser la fonction Matlab linspace pour construire le
vecteur des abscisses et la commande hold on pour superposer les trois graphes. Identifier clairement les 3 courbes.
Inclure le code MATLAB et le graphique dans votre rapport.
3. Soit le vecteur
e =
5.8579e-01
8.5786e-02
2.4531e-03
2.1239e-06
3.2356e-09
1.5949e-12
2.2204e-16
et soit en la nime composante du vecteur e. Utiliser loprateur : pour extraire 2 sous
en
vecteurs du vecteur e et calculer laide des oprateurs ./ et . les valeurs des ratios en1
en
et 2 . Ne pas utiliser de boucle for.
en1

Prsenter les rsultats dans un tableau de deux colonnes laide de la commande fprintf.
Inclure le code MATLAB et le tableau dans votre rapport.

4. Soit le dveloppement de Taylor de la fonction arctan(x) autour de x0 = 0 :


arctan(x) = x

x5
x7
x9
x 11
x3
+

+ ...
3
5
7
9
11

(a) Aprs avoir identifi les polynmes de Taylor Pn (x) de degr n = 1, n = 3 et n = 5,


tracer sur un mme graphique, sur lintervalle [1 , 1], la fonction arctan(x) et ces
trois polynmes de Taylor. Inclure le code MATLAB et le graphique dans votre rapport.
(b) Tracer sur un autre graphique, sur lintervalle [1 , 1], les fonctions erreur
en (x) = | arctan(x) Pn (x)|,

n = 1, 3, 5.

Inclure le code MATLAB et le graphique dans votre rapport.


5. Lobjectif de cette question est de mieux comprendre les notions derreurs absolue et
relative. Il existe une approximation bien connue du factoriel,
n! = 1 2 3 . . . n,
trouve par Stirling :

 n
p
n
Sn = 2 n
.
e

crire un programme Matlab (fichier-M) qui permet de raliser les instructions suivantes:
(a) Construire un vecteur, factoriel, contenant les nombres
1! , 2! , 3! , . . . , 13!.
Indice : Utiliser les fonctions Matlab factorial ou prod.
(b) Construire un vecteur, stirling, contenant les nombres
S1 , S2 , S3 , . . . , S13 .
Indice : Utiliser les oprateurs .* et .
(c) Pour n = 1, 2, . . . , 13, construire deux vecteurs contenant respectivement les erreurs
absolues |n! Sn | et relatives |n! Sn |/n!.
Indice : Utiliser loprateur ./
(d) Prsenter laide de la commande fprintf les rsultats dans un tableau de trois
colonnes comportant les valeurs de n et des erreurs absolue et relative.
Commenter sur la qualit de lapproximation (limportance de lerreur) en fonction de n.
Le rapport doit contenir : le programme Matlab , le tableau produit par ce programme et
la discussion.

6. Nous parlerons du nombre dor, qui est dfini par 1+2 5 ' 1,6181, lorsque nous tudierons
la mthode de la scante. Il y a plusieurs algorithmes qui nous permettent de calculer ce
nombre. Programmons-en un:
La suite de Fibonacci est dfinie par F1 = 0 et F2 = 1
Fn = Fn1 + Fn2 ,

pour n = 3, 4, 5, ...

Page 2


1+ 5

n
On peut montrer que le rapport Fn1
converge vers 2 lorsque n . crire un programme MATLAB qui vous permettra de calculer une approximation du nombre dor avec
au moins 6 chiffres significatifs.

Le rapport doit contenir : le programme Matlab, lapproximation du nombre dor et lerreur


absolue obtenues par ce programme.
7. Le coefficient de friction dun parachutiste en chute libre est donne par la fonction continue
2

si t < tpar a ;

11

11
25
k(t) =
2 + 44 t si tpar a t < tpar a + touv ;

2
si t tpar a + touv ,
o tpar a = 10 s est le moment o le parachute commence souvrir et touv = 3,2 s est le
temps que le parachute prend pour souvrir compltement.
(a) crire une fonction Matlab qui permet dvaluer la fonction k(t) pour t donn. Assurezvous que votre fonction puisse prendre des vecteurs comme argument dentre.
La fonction find de Matlab pourrait tre utile.
(b) En vous servant de la fonction dveloppe en (a), tracer le graphe de la fonction k(t)
sur lintervalle [0 , 15].
Le rapport doit contenir : les fichiers des fonctions Matlab dveloppes aux questions (a) et
(b), le programme Matlab et le graphe produit par ce programme la question (c).
8. La fonction erf(x) est dfinie par:
2
erf(x) =

Zx

et dt

et Matlab dsigne cette fonction sous le nom erf ( faire help erf).
Le dveloppement de Taylor de dgr 7 de la fonction erf(x) autour de x0 est donn par
!
2
x3
x5
x7
erf(x) ' p7 (x) =
x
+

3
10
42
(a) crire une fonction Matlab qui permet dvaluer la fonction p7 (x) pour une valeur
de x donne et qui ncessite seulement 5 multiplications. Assurez-vous que votre
fonction puisse prendre des vecteurs comme argument dentre.
(b) crire un programme Matlab qui tracera sur le mme graphique la fonction erf(x)
dans lintervalle [0 , 2] de mme que son dveloppement de Taylor de degr 7. Identifier clairement les 2 courbes. Commenter et expliquer les rsultats obtenus.
(c) En vous servant de la fonction dveloppe en (a) crire un programme Matlab qui
permet de dterminer numriquement lordre de prcision de lapproximation p7 (x).
1
1
Pour les valeurs de x = 21 , 14 , 81 , 16
, 32
, le programme devra prsenter laide de la
commande fprintf les rsultats dans 2 tableaux de 3 colonnes. Le premier tableau
devra contenir les valeurs de x, des approximations p7 (x) et de erf(x) . Le deuxime
tableau devra contenir les valeurs de x, des erreurs absolues et des ratios des erreurs.
Dduire de ces rsultats lordre de prcision du polynme de Taylor de degr 7.
Page 3

Le rapport doit contenir: la fonction Matlab de la question (a). Les programmes Matlab et
le graphique produit par ce programmes la questions (b). La discussion la question (b).
Le programme Matlab, les tableaux produits par ce programme et la discussion sur lordre
de prcision obtenu la question (c).
9. Nous cherchons un algorithme pour estimer la valeur de . Une mthode est base sur
le fait que le primtre dun cercle de rayon 21 est . Pour estimer la valeur de , il
1

suffit alors destimer le primtre dun cercle de rayon 2 . Lide est donc dinscrire des
polygones rguliers dans le cercle et de calculer le primtre du polygone.
En augmentant le nombre de cts du polygone, on sapproche de plus en plus du primtre
n
du cercle et donc
de . Nous noterons pn le primtre du polygone ayant 2 cts (par
exemple, p2 = 2 2) et on assumera que la formule de rcurrence suivante est vraie:

pn+1

s
u

2
u
p
u
n
,
= 2n t2 1 1
2n

pour

n = 2, 3, ...

(1)

crire un fichier-m qui calculera pn pour n = 3, 4, ..., 30 en utilisant lalgorithme (1). Le


programme devra prsenter laide de la commande fprintf les rsultats dans un tableau
de trois colonnes comportant les valeurs de n, pn ainsi que lerreur absolue commise.
Que remarquez-vous danormal? Donner le nombre de chiffres significatifs de p15 et p24 .
Justifier vos rponses.
Le rapport doit contenir : le programme Matlab , le tableau, le nombre de chiffres significatifs de p15 et p24 produits par ce programme et la discussion.
10. On considre le systme linaire
~n ,
~n = b
Hn x

(2)

o Hn est la matrice de Hilbert dordre n dfinie par


Hn (i , j) =

1
,
i+j1

pour i , j = 1, 2, . . . , n,

~n est le vecteur qui est tel que la solution du systme (2) soit x
~n = (1,1, . . . ,1)t . On
et b
veut tudier la propagation des erreurs darrondi sur la solution calcule par la mthode
de factorisation LU de Matlab.
(a) crire un fichier-m qui permet de raliser les instructions suivantes :
pour n = 1, 2, . . . , 27 :
crer la matrice de Hilbert de dimensions n n laide de la fonction Matlab
hilb;
en vous servant de la fonction Matlab det, calculer le dterminant de la matrice
de Hilbert de dimensions n n;
laide de la fonction sum, crer le vecteur colonne de longueur n dont les composantes sont
n
X
bn (i) =
Hn (i, j);
j=1

Page 4

~n laide de loprateur \ ;
~n = b
rsoudre le systme linaire Hn x
~n =
sachant que la solution de ce systme linaire est donne par le vecteur x
t
(1,1, . . . ,1) , calculer en utilisant la norme euclidienne lerreur relative
E(n) =

k
~n x
~n
kx
2
,
~n k2
kx

est la solution calcule;


~n
o x
Indice: Utiliser la fonction Matlab norm pour calculer les normes vectorielles.

tracer laide de la commande semilogy le graphe de lerreur relative en fonction


de n;
(b) Commenter les rsultats obtenus en (a).
Le rapport doit contenir : le programme Matlab et le graphe produit par ce programme
la question (a). La discussion de la question (b).

Donatien Ndri & Steven Dufour