TP1 UPMC Www.cours Examens.org

download TP1 UPMC Www.cours Examens.org

of 12

Transcript of TP1 UPMC Www.cours Examens.org

  • UPMC - Licence Elec. 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, ex , sera dclare comme exp(x), - le logarithme nprien de x, ln x , sera dclar comme log(x), - le logarithme dcimal de x, log x , sera dclar comme log10(x).

    >> exp(10) >> log(ans) MATLAB dispose aussi des fonctions trigonomtriques usuelles : cos(x), sin(x), tan(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), asin(x) et atan(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. >> alpha=30 ; >> beta=40 ; >> ksi=50 ; Ces variables tant prsent dfinies, on peut les utiliser dans les calculs suivants : >> sin(alpha/180*pi) >> conf=pi/180 >> cos(beta*conf) Exercice : excutez les instructions suivantes. A quoi servent les commandes who, clear, help ? Observez lvolution du contenu de la fentre donnes . >> who

  • >> clear alpha >> who >> clear all >> help clear >> help 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 di (0 i p) compris entre 0 et -1 avec dp 0 tels que :

    =

    =p

    i

    iidn

    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 dp 0 tels que :

    =

    =p

    i

    iidx

    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

  • 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 102. Sous MATLAB, cela donnera : >> format short e, x = 124.32 x = 1.2432e+002 Les deux fonctions MATLAB, realmax et realmin nous permettent dobtenir respectivement le plus grand et le plus petit nombre pouvant tre manipul par lordinateur : Exercice : >> realmax >> realmin 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 ? >> format long, 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. >> format short, 1/9, 2.2222222222222222/4, 2/3, -2/3 >> format long, 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 :

    >> format long 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 a1, a2, a3, an 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 >> prime = [ 2 3 5 7 11 13 ] >> prime = [ 2, 3, 5, 7, 11, 13 ] Les lments dun tableau sont identifis par leurs indices (commenant 1): >> prime(1) >> prime(2) >> length(prime) % pour connatre le nombre dlments >> clear prime % effacer la variable Autre manire de dfinir le tableau, lment par lment : >> prime(1) = 2 >> prime(2) = 3 >>prime(6) = 13 On peut raliser des oprations daddition et de soustraction entre tableaux de mme taille : >> natural = [ 1 2 3 4 5 6 ] >> prime + natural >> prime natural

    b. Oprations complmentaires sur les tableaux Crer un tableau intervalles rguliers entre les lments : >> odd = 1 : 2 : 11 >> even = 2 : 2 : 12 >> natural = 1 : 6 % lorsquil sagit dune incrmentation de 1 >> inverse_odd = 11 : -2 : 1 % incrmentation inverse >> halves = 0 : 0.5 : 10 % incrmentation partiel Autres oprateurs : produit, division et puissance lment par lment >> natural .* prime >> natural ./ prime >> natural.^2

  • Beaucoup de fonctions intgres MATLAB peuvent tre appliques un tableau : >> angle = [ 0 : 10 : 90] ; >> angle = pi*angle/180 ; >> sin(angle)

    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 % transposition >> At >> natural*prime % produit scalaire >> prime*prime >> sum(prime.^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 = sin(x); >> plot(x,y) % pour afficher la courbe >> grid % pour afficher une grille >> xlabel(x, radians) % pour nommer les abscisses >> ylabel(sin(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) >> size(A) % dimensions de la matrice

  • 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 ] >> size(ans) >> [ A ; B] Exemple : construction dune table >> angle = 0 : 10 : 90 >> sine = sin(pi*angle/180) >> [ angle sine] Pour extraire une sous-matrice : >> A(1, : ) % extraire la premire ligne >> A( : , 2) % extraire la seconde colonne >> A(1 :2, 1 :2) % extraire une sous-matrice

    b. oprations lmentaires >> S = A+B >> D = A-B >> A*B >> C = [10 11 ; 12 13 ; 14 15] ; >> A*C >> A.^2 >> L = log10(A) Pour dfinir une matrice unitaire : >> [m, n] = size(A) ; ones(m,n) >> ones(size(A)) % la mme commande mais simplifie

  • DEUXIEME PARTIE : EXERCISES Exercice 1 : Rsolution dquations dordre 2 Soit lquation du second degr, avec c,b > 0,

    x2+ bx +c = 0 On suppose que le dterminant (strictement positif) est proche numriquement de b2 ; cela est vrifi par exemple avec b=160 et c=1.

    Donnez les expressions des deux racines x1 et x2 (x2

  • 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 sin 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 : x1 = A sin w1 t x2 = A sin w2 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 sin w1 t + A sin w2 t = 2A cos (w1-w2)t/2 sin (w1+w2)t/2 En prenant A=1, w1=2pi et w2=2.2pi, gnrez les deux ondes x1 et x2. 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 R1, R2 et R3, parcourues par les courants dintensit I1, I2 et I3. Daprs la loi dOhm, la diffrence de potentiel aux bornes des rsistances est : I1R1 = I2 R2 = I3 R3 Et daprs la loi de Kirchhoof, on a : I = I1 + I2 + I3 La combinaison de ces deux lois donne : 1/R = 1/R1 + 1/R2 + 1/R3

    Dfinir un tableau r contenant les 3 rsistances R1=500, R2=1000 et R3=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_inv contenant les inverses des 3

    rsistances. Puis calculez 1/R en sommant les lments de R_inv laide de la commande

    sum. Exercice 7 : oprations sur des matrices

    Dfinir les 3 matrices A, B et C suivantes :

    =

    =

    =

    1665

    4312

    1231

    C

    B

    A

    Pour dfinir une matrice nulle, il existe plusieurs mthodes : >> O = A B >> O = zeros(2,2) >> O = zeros(2) % pour une matrice carre >> O = zeros(size(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(size(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 C1, la capacit du premier condensateur, dont la tension aux bornes est de : U1 = q / C1. De mme : U2=q/C2 et U3=q/C3. La diffrence de potentiel entre les deux bornes des 3 condensateurs en srie vrifie :

    U = U1 + U2 + U3

    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/C1 + 1/C2 + 1/C3 Calculez C avec MATLAB avec C1 = 20pF, C2 = 30 pF et C3 = 40 pF

    Exercice 10 : Probabilits Lanons une parie de ds. Le nombre de combinaisons possibles est de 62 = 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)()(

    iii XpXXE

    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.