TP1 UPMC WWW - Cours
TP1 UPMC WWW - Cours
TP1 UPMC WWW - Cours
L2 S2
UE Calcul Scientifique ; initiation MATLAB (LE205)
TP1 : Prise en main de MATLAB
PREMIERE PARTIE : COURS ET EXEMPLES
Thmes abords :
* premier pas sous MATLAB,
* Calculs et reprsentation des nombres,
* Vecteurs, tableaux, matrices,
* Reprsentation graphique.
Remarque IMPORTANTE : dans ce TP, lorsque un exemple ou un exercice est donn, vous
tes invit fortement le raliser et en noter le rsultat.
I. Premiers pas
1. Lancement
Lancer MATLAB en cliquant sur licne prvue cet effet.
2. Oprations arithmtiques
Dans lespace de travail, ralisez quelques oprations arithmtiques simples entre scalaires
laide des oprateurs addition (+), soustraction (-), division (/), multiplication (*), lvation
la puissance (^).
>> 5+4*2
>> 5^( 4)
Donnes Espace de
travail
(workspace)
Historique
Si vous naffectez pas le rsultat de vos calculs une variable, il est automatiquement affect
(stock) dans la variable ans. Vous pouvez vous servir de cette variable dans le calcul
suivant.
>> 5+4*3
>> ans*2
Remarque : pour dplacer dans lhistorique des commandes (pour recommencer un calcul
dj effectuer, voire le modifier), vous pouvez vous servir des touches et .
3. Quelques fonctions intgres
MATLAB possde un certain nombre de fonctions intgres transcendantales lmentaires
telles que :
- la fonction exponentielle de x, e
x
, sera dclare comme exp( x) ,
- le logarithme nprien de x, ln x , sera dclar comme l og( x) ,
- le logarithme dcimal de x, log x , sera dclar comme l og10( x) .
>> exp( 10)
>> l og( ans)
MATLAB dispose aussi des fonctions trigonomtriques usuelles : cos( x) , si n( x) ,
t an( x) . Les arguments de ces fonctions doivent tre donnes en radians. Notons que dans
MATLAB, on crit pi pour . Les fonctions trigonomtriques inverses sont acos( x) ,
asi n( x) et at an( x) .
Exercice : Calculez laide de MATLAB, la valeur de cos(2/3), sin(3/5), tan(/4), puis
larccosinus de 1, larcsinus de 1 et larctangente de 1.
4. Dfinitions de constantes et de variables
MATLAB nous permet de choisir les noms de constantes et de variables. Cette possibilits
facilite le travail et limite les erreurs de saisie.
Exemple : affectation des variables =30, =40 et =50.
>> al pha=30 ;
>> bet a=40 ;
>> ksi =50 ;
Ces variables tant prsent dfinies, on peut les utiliser dans les calculs suivants :
>> si n( al pha/ 180*pi )
>> conf =pi / 180
>> cos( bet a*conf )
Exercice : excutez les instructions suivantes. A quoi servent les commandes who, cl ear ,
hel p ? Observez lvolution du contenu de la fentre donnes .
>> who
>> cl ear al pha
>> who
>> cl ear al l
>> hel p cl ear
>> hel p who
II. Calcul et reprsentations graphiques
0. Ecriture en base
0.A. Reprsentation dun entier
Soit un nombre strictement suprieur 1. Pour tout entier n suprieur ou gal 1, il
existe un entier p et des entiers d
i
(0 i p) compris entre 0 et -1 avec d
p
0 tels que :
=
=
p
i
i
i
d n
0
Exemple en base 10 : 1234567890
0.B. Reprsentation dun rel
Soit un nombre strictement suprieur 1. Pour tout rel x non nul, il existe un unique entier
p et des entiers di (i p) compris entre 0 et -1 avec d
p
0 tels que :
=
=
p
i
i
i
d x
Exemple en base 10 : 12345,0987654
Remarque : usuellement, =2 pour les calculs internes lordinateur (ex : 0100001110) et
=10 pour laffichage.
1. Reprsentation interne des nombres sous MATLAB
Un ordinateur a une mmoire limite pour reprsenter un nombre. Aussi un nombre sera
reprsent numriquement par un nombre fini de chiffres :
X =s 0,d-1d-2d-r
i
avec i [ m , M ] (m et M deux entiers), 1 d
-1
< et pour k ] 1 , r] 0 d
-1
<
Exemple : 625 , 5 2
2
1
2
0
2
1
2
1
2
0
2
1
2 101101 , 0
3
6 5 4 3 2 1
3
=
+ + + + + = = x
3. Diffrentes sources derreurs
Nous pouvons classer en trois groupes les erreurs :
Les erreurs sur les donnes, lies limprcision de mesures physiques ou au rsultat
dun calcul approch. Ces donnes ne peuvent tre modifies mais on peut tudier leur
influence sur le rsultat final.
Les erreurs de mthode : elles sont dues lalgorithme utilis. Par exemple,
lapproximation dune somme infinie par une somme finie, laproximation de la limite
dune suite par un terme de grand indice, ou lapproximation dune intgrale par
une somme finie.
Les erreurs de calcul en machine : elles sont lies larrondi de calcul pour les
nombres flottants (cf. section prcdente)
4. Reprsentation des nombres et erreurs sous MATLAB
Comme vous avez pu le constater dans les exemples et les exercices prcdents, les rsultats
que donnent MATLAB sont donns sous la forme de nombres dcimaux virgule flottante,
et souvent sous forme scientifique : 124,32 sera donne sous la forme scientifique : 1,2432 x
10
2
. Sous MATLAB, cela donnera :
>> f or mat shor t e, x = 124. 32
x =
1. 2432
e
+002
Les deux fonctions MATLAB, r eal max et r eal mi n nous permettent dobtenir
respectivement le plus grand et le plus petit nombre pouvant tre manipul par lordinateur :
Exercice :
>> r eal max
>> r eal mi n
La variable MATLAB eps fournit une indication sur la prcision en virgule flottante. Par
dfaut, elle correspond la distance entre 1.0 et le plus grand nombre virgule flottante
suivant.
Exercice :
>> eps
>> A=1+eps
>> A- 1
>> B=1+eps/ 2
>> B- 1
Cette valeur dpend de la machine sur laquelle vous travaillez.
Certaines erreurs dues lapproximation des nombres :
Exercice : tapez linstruction suivante. Que constatez vous ?
>> f or mat l ong, 1 0. 2 - 0. 2 0. 2 0. 2 0. 2
De telles erreurs restent minimes, mais elles peuvent savrer dsastreuses si elles
saccumulent dans les calculs. Ne pas prendre en considration les proprits des nombres
dans un ordinateur peut provoquer lchec de trs coteux projets, en envoyant par exemple
un vaisseau sur une mauvaise orbite.
De plus, comme pour un calcul numrique ralis la main, un certain biais est souvent
introduit par les arrondis souvent raliss sur les nombres.
Exemple : tapez les instructions suivantes.
>> f or mat shor t , 1/ 9, 2. 2222222222222222/ 4, 2/ 3, - 2/ 3
>> f or mat l ong, 1/ 9, 2. 2222222222222222/ 4, 2/ 3, - 2/ 3
Le choix du format des nombres (et donc des arrondis raliss) dpendra dun compromis
entre la mmoire machine occupe, la vitesse de calcul et la prcision requise.
Il est intressant dailleurs de constater que certaines proprits des nombres rels ne sont
alors plus valables dans MATLAB. Comme nous allons le constater dans lexemple qui suit :
Commutativit :
>> f or mat l ong e, a = 0. 123456789012345*10^( - 4)
>> b = 0. 5432109877654321*10^2
>> c = - 0. 543210987650001*10^2
>> d = a + b + c
>> e = c + b + a
>> d- e
Associativit :
>> d = ( a + b) +c
>> e = a + ( b + c)
>> d- e
Distributivit :
>> d = a * ( b + c)
>> e = a*b + a*c
>> d- e
En conclusion, bien que les erreurs soient extrmement faibles, ils faut savoir quelles
existent ; il faut donc adopter une attitude prudente vis--vis des rsultats numriques que
donnent MATLAB. MATLAB reste cependant un outil efficace (cest que nous esprons vous
montrez dans cet enseignement !).
III. Tableaux, Vecteurs et Matrices
1. Tableaux une dimension et graphiques
a. Tableaux oprations lmentaires
Une suite ordonne de nombres a
1
, a
2,
a
3,
a
n
pet tre dfinie avec MATLAB comme un
tableau :
>> A = [ a1 a2 . An]
exemple : six premiers nombres premiers ; on peut utiliser des virgules ou des blancs pour
sparer les lements
>> pr i me = [ 2 3 5 7 11 13 ]
>> pr i me = [ 2, 3, 5, 7, 11, 13 ]
Les lments dun tableau sont identifis par leurs indices (commenant 1):
>> pr i me( 1)
>> pr i me( 2)
>> l engt h( pr i me) %pour conna t r e l e nombr e d l ment s
>> cl ear pr i me %ef f acer l a var i abl e
Autre manire de dfinir le tableau, lment par lment :
>> pr i me( 1) = 2
>> pr i me( 2) = 3
>>pr i me( 6) = 13
On peut raliser des oprations daddition et de soustraction entre tableaux de mme taille :
>> nat ur al = [ 1 2 3 4 5 6 ]
>> pr i me + nat ur al
>> pr i me nat ur al
b. Oprations complmentaires sur les tableaux
Crer un tableau intervalles rguliers entre les lments :
>> odd = 1 : 2 : 11
>> even = 2 : 2 : 12
>> nat ur al = 1 : 6 % l or squ i l s agi t d une i ncr ment at i on de
1
>> i nver se_odd = 11 : - 2 : 1 %i ncr ment at i on i nver se
>> hal ves = 0 : 0. 5 : 10 %i ncr ment at i on par t i el
Autres oprateurs : produit, division et puissance lment par lment
>> nat ur al . * pr i me
>> nat ur al . / pr i me
>> nat ur al . ^2
Beaucoup de fonctions intgres MATLAB peuvent tre appliques un tableau :
>> angl e = [ 0 : 10 : 90] ;
>> angl e = pi *angl e/ 180 ;
>> si n( angl e)
c. Vecteurs lignes et colonnes
Un vecteur ligne se dfinira comme un tableau (cf. sections prcdentes). Un vecteur colonne
se dfinira comme ci-dessous (en remplaant les virgules par des points virgules).
>> A = [ 2 ; 3 ; 5 ; 7 ; 11 ; 13 ]
On retrouvera les mmes oprations que pour les vecteurs lignes ; A cela, on peut ajouter les
oprations entre eux :
>> At = A %t r ansposi t i on
>> At
>> nat ur al *pr i me %pr odui t scal ai r e
>> pr i me*pr i me
>> sum( pr i me. ^2)
d. graphes simples
Sous la forme la plus simple, la fonction plot trace le graphe des valeurs des lments dun
tableau en fonction des valeurs des lments dun autre tableau, condition que les deux
tableaux possdent le mme nombre dlments.
Exemple :
>> x = 0 : pi / 90 : pi ;
>> y = si n( x) ;
>> pl ot ( x, y) %pour af f i cher l a cour be
>> gr i d %pour af f i cher une gr i l l e
>> xl abel ( x, r adi ans ) %pour nommer l es absci sses
>> yl abel ( si n( x) )
2. Les matrices
a. Dfinition dune matrice :
>> A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ]
>> A = [ 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ]
Chaque lment de la matrice est identifi par des indices : le premier indique la ligne, le
second la colonne :
>> A( 2, 1)
>> A( 2, 3)
>> si ze( A) %di mensi ons de l a mat r i ce
On peut juxtaposer des matrices pour en construire une plus grande, condition que leur
dimension commune soit la mme.
>> B = [ 9 8 7 ; 6 5 4 ; 3 2 1 ] ;
>> [ A B ]
>> si ze( ans)
>> [ A ; B]
Exemple : construction dune table
>> angl e = 0 : 10 : 90
>> si ne = si n( pi *angl e/ 180)
>> [ angl e si ne ]
Pour extraire une sous-matrice :
>> A( 1, : ) %ext r ai r e l a pr emi r e l i gne
>> A( : , 2) %ext r ai r e l a seconde col onne
>> A( 1 : 2, 1 : 2) %ext r ai r e une sous- mat r i ce
b. oprations lmentaires
>> S = A+B
>> D = A- B
>> A*B
>> C = [ 10 11 ; 12 13 ; 14 15] ;
>> A*C
>> A. ^2
>> L = l og10( A)
Pour dfinir une matrice unitaire :
>> [ m, n] = si ze( A) ; ones( m, n)
>> ones( si ze( A) ) %l a mme commande mai s si mpl i f i e
DEUXIEME PARTIE : EXERCISES
Exercice 1 : Rsolution dquations dordre 2
Soit lquation du second degr, avec c,b >0,
x
2
+ bx +c = 0
On suppose que le dterminant (strictement positif) est proche numriquement de b
2
; cela
est vrifi par exemple avec b=160 et c=1.
Donnez les expressions des deux racines x
1
et x
2
(x
2
<x
1
). Ralisez-en le calcul
numrique.
Dterminez une nouvelle valeur numrique de x
1
, en utilisant : x
1
=c/x
2 .
Comparez
avec la valeur prcdente.
Exercice 2 : Augmentation de la rsistance lectrique avec la temprature
La rsistance R dun conducteur lectrique est directement proportionnelle sa longueur L, et
inversement proportionnelle sa surface de section A : R = L /A
On appelle rsistivit le facteur de proportionnalit . La rsistivit du cuivre 20C est de
=0.01700.0178 mm
2
/m. La rsistivit est fonction de la temprature et lon peut dcrire
la variation par :
= ( 1 + )
o :
est la rsistivit C,
un coefficient de temprature (pour le cuivre =0.0039K
-1
),
est la diffrence de temprature au-del de 20C.
Wieseman (1989) donne une relation plus dtaille :
=
20
( 1 +
20
+
20
2
)
o :
20
=0.017 mm
2
/m
20
=4.3 x 10
-3
K
-1
20
=0.6 x 10
-6
K
-2
Pour comparer graphiquement les deux relations, entre 20C et 100C, nous allons les tracer.
Crez deux constantes rho et alpha.
Crez un tableau de tempratures theta allant de 20 100C avec un pas de 0.5C.
Calculez delta, puis rho1, selon la formule donnant
.
Faire de mme avec la formule de Weiseman.
Tracer les deux rsultats sur le mme graphe : h=plot(theta, rho1, theta, rho2) ;
Mettez les labels ncessaires aux axes avec les commandes xlabel, ylabel.
Pour mettre une lgende aux courbes, on utilise la commande legend (help legend)
Exercice 3 : Trac dune ellipse
Les quations paramtriques dune ellipse centre lorigine des coordones, le grand axe 2A
et le petit axe 2B sont :
x = A cos t
y = B si n t
o 0 <t <2 pi
Tracez une ellipse, par exemple avec A =2 et B =1.
Essayez de comprendre le sens de A et B.
Exercice 4 : Battements
La superposition de deux ondes de frquences lgrement diffrentes, forme une onde de
lentes variations damplitude. Une manire simple de dmontrer ce phnomne consiste
appuyer simultanment sur deux touches de piano voisines. Pour plus de simplicit,
considrons deux ondes de mme amplitude :
x
1
= A si n w
1
t
x
2
= A si n w
2
t
En additionnant ces deux ondes et en utilisant une formule trigonomtrique qui transforme
une somme de deux sinus en un produit, on peut crire :
x = A si n w
1
t + A si n w
2
t = 2A cos ( w
1
- w
2
) t / 2 si n ( w
1
+w
2
) t / 2
En prenant A=1, w
1
=2pi et w
2
=2.2pi, gnrez les deux ondes x
1
et x
2
. Puis simulez leur
superposition. Choisissez t de manire pouvoir visualiser au moins deux priodes
denveloppe.
Exercice 5 : Traverse dune rivire la nage
Un nageur traverse une rivire de 1.1 km de large. La vitesse de nage moyenne est de V=0.9
km/h et la vitesse du courant de S=1.5km/h. Le nageur part de A, avec pour objectif
datteindre le point oppos B, mais il rejoint lautre rive au point C.
a. Ecrivez le vecteur V, vitesse du nageur par rapport leau, le vecteur S, vitesse
du courant par rapport au fond, et calculez le vecteur vitesse relle T, vitesse
par rapport au fond, du nageur. Trouvez la valeur de la vitesse et langle BAC
b. Calculez la distance BC.
1.1 km
C
A
V
S
T
B
Exercice 6 : Circuit de rsistances en parallle
Considrons le circuit de rsistances en parallle compos des rsistances R
1
, R
2
et R
3
,
parcourues par les courants dintensit I
1
, I
2
et I
3
. Daprs la loi dOhm, la diffrence de
potentiel aux bornes des rsistances est :
I
1
R
1
= I
2
R
2
= I
3
R
3
Et daprs la loi de Kirchhoof, on a : I = I
1
+ I
2
+ I
3
La combinaison de ces deux lois donne : 1/ R = 1/ R
1
+ 1/ R
2
+ 1/ R
3
Dfinir un tableau r contenant les 3 rsistances R
1
=500, R
2
=1000 et R
3
=1500.
A laide de la commande ones, crez un tableau de taille 3 et contenant que des 1.
Calculez de manire efficace, un tableau R_i nv contenant les inverses des 3
rsistances.
Puis calculez 1/ R en sommant les lments de R_i nv laide de la commande
sum.
Exercice 7 : oprations sur des matrices
Dfinir les 3 matrices A, B et C suivantes :
=
1 6
6 5
4 3
1 2
1 2
3 1
C
B
A
Pour dfinir une matrice nulle, il existe plusieurs mthodes :
>> O = A B
>> O = zer os( 2, 2)
>> O = zer os( 2) %pour une mat r i ce car r e
>> O = zer os( si ze( A) )
Vrifiez :
>> A + O
>> O + A
Contrairement aux nombres, le produit matriciel nest pas gnralement commutatif.
Vrifiez que A*B B*A.
Notez que si les deux matrices A et B ne sont pas carres, lun des produits peut
exister, lautre non. Essayez de trouver un exemple.
Pour dfinir la matrice identit : >> I = eye( 2) ou >> I = eye( si ze( A) ) .
Vrifiez que :
o A*I = I *A = A
o B*I = I *B = B
o C*I = I *C = C
Pour la matrice A, vrifiez avec MATLAB que les oprations A^2 et A.^2 donnent
des rsultats diffrents et indiquez ce qui se produit dans chaque cas.
Exercice 8 : Echelles de tempratures
En se basant sur des considrations thermodynamiques, le physicien britannique William
Kelvin dfinit, en 1854, le zro absolu correspondant -273.15C. Cette valeur reprsente la
base de lchelle de Kelvin qui attribue au point dbullition de leau la temprature :
100 +273.15 =373.15 K
Calculez et affichez avec MATLAB, un tableau des valeurs de K pour les
tempratures suivantes : -200, -150, , 200C
Tracez le graphe dcrivant le rapport entre les chelles de Celsius et de Kelvin sur
lintervalle de mesure 0K et 400K
Exercice 9 : Circuit de condensateurs en srie
Soit un circuit de 3 condensateurs en srie. A lquilibre, les charges lectriques de ces trois
condensateurs sont gales, appelons q cette valeur commune. Soit C
1
, la capacit du premier
condensateur, dont la tension aux bornes est de : U
1
= q / C
1
. De mme : U
2
=q/ C
2
et
U
3
=q/ C
3
.
La diffrence de potentiel entre les deux bornes des 3 condensateurs en srie vrifie :
U = U
1
+ U
2
+ U
3
Pour remplacer les trois condensateurs par un unique composant quivalent produisant le
mme effet, il doit fournir une capacit : C = q / U
Montrez que : 1/ C = 1/ C
1
+ 1/ C
2
+ 1/ C
3
Calculez C avec MATLAB avec C
1
=20pF, C
2
=30 pF et C
3
=40 pF
Exercice 10 : Probabilits
Lanons une parie de ds. Le nombre de combinaisons possibles est de 6
2
=36. Intressons-
nous la somme des nombres obtenus. Pour chacune, nous pouvons obtenir leur probabilit :
Somme X 2 3 4 5 6 7 8 9 10 11 12
Probabilit P 1/36 2/36 3/36 4/36 5/36 6/36 5/36 4/36 3/36 2/36 1/36
Dfinissez le vecteur X, en se rappelant quentre chaque valeur, il y a un incrment de
1
Dfinissez le vecteur de probabilits P
A laide du produit scalaire, calculez la moyenne de X, galement appele esprance
de X, qui est :
=
=
12
1
) ( ) (
i
i i
X p X X E
Vrifiez que la somme des probabilits vaut 1.
Pour visualiser la distribution des probabilits, nous allons tracer un histogramme.
Essayez la commande bar ( X, P) et observez le rsultat.