Diffrents formats existants, explications et significations Format long: ans= 0.142857142857143 Explication et signification: avec format long, on a la valeur non approch de 1/7 (exacte) Format short e: ans= 1.4286e-001 Explication et signification : avec le format short, on a la va leur rapproch avec lexponentiel Format long e: ans= 1.428571428571429e-001 Explication et signification : on a le rsultat exacte avec un exponentiel Format short g : ans= 0.14286 Explication et signification : valeur approxim avec chiffre aprs la virgule. Format long g : ans= 0.142857142857143 Explication et signification : valeur exacte avec chiffre aprs la virgule
Conclusion : oui le calcul avec un format bien dfini influe sur les rsultats Ex : .. 2/ Nombre complexe : z = x + iy avec : i = -1 sur Matlab, on crit de la faon suivante : >> z=x+i*y Ou encore >> z=complex(x,y) Travail demand : le calcul de lamplitude et de la phase du nombre complexe >>abs(z) ans = 4.24264068711928 >>angle(z) ans = 0.785398163397448 >>compass(z) : graphe polaire pour visualiser le nombre complexe.
>>real(z) ans = 3 >>imag(z) ans = 3 >>conj(z) : multiplier limag du nombre complexe par (-1) ans = 3- 3i
3/ Matrice : >>A= [123 ; 456] A = 1 2 3 4 5 6 Travail demand : >>zeros(2,3) : une matrice de 2 lignes et 3 colonnes avec tt les lments nul ans = 0 0 0 0 0 0 >>eye(2,3) : matrice identit, les lments diagonaux gale 1 ans = 1 0 0 0 1 0 Oprations entre matrice : >>A= [1 2 3 ; 4 5 6] >>B= [7 8 9 ; 10 11 12] >>C= [13 14 ; 15 16 ; 17 18] >>A+B ans = 8 10 12 14 16 18 >>A*C ans = 94 100 229 244 >>A+C Erreur, parce que les dimensions des 2 matrices ne sont pas compatibles >>A*B Erreur, aussi les dimensions des 2 matrices ne sont pas compatibles Soit A= [1 2 ;3 4] A = 1 2 3 4 >>inv(A) ans = -2.0000 1.0000 1.5000 -0.5000 Rsultat vrifi aussi thoriquement >>det(A) ans = -2 Soit le vecteur suivant : >>v = [1 ; 2 ; 3] ; w = [4 ; 5 ; 6] w*v : sa donne une valeur (la multiplication lment par lment puis la somme des valeurs trouves) >> w*v ans = 32 w.*v : sa donne un vecteur dont les lments c le rsultat de la multiplication lment par lment >>w.*v ans = 4 10 18
4/ Fonction relle
Manipuler les fonctions relles dfinie dans un intervalle [a,b] Tracer le graphe de la fonction avec la commande fplot >> fun='1/(1+x.^2)'; >> lims=[-5,5]; >> fplot(fun,lims)
fplot(fun,lims) trace la fonction fun entre laxe des x limiter par lims=[xmin, xmax] et contrle aussi laxe des y 5/ Polynme :
>> p= [1 -6 11 -6] p = 1 -6 11 -6 >> format long >> roots(p) ans = 3.000000000000001 1.999999999999998 1.000000000000001 Vrification thorique :
Cependant le rsultat nest pas toujours prcis, comme le montre lexemple suivant : p(x) = (x+1)7 >>p=[1 7 21 35 35 21 7 1] ; p = 1 7 21 35 35 21 7 1 >> roots(p) ans = -1.010085166737948 -1.006281055210276 + 0.007886866733331i -1.006281055210276 - 0.007886866733331i -0.997749159242393 + 0.009820315415971i -0.997749159242393 - 0.009820315415971i -0.990927202178358 + 0.004364359211217i -0.990927202178358 - 0.004364359211217i a- calcul thorique de (x+1)7 : b- Non sa donne pas exactement la valeur (-1). a donne (-1) avec une marge derreur
Le produit de deux fonctions se fait avec la commande p = conv(p1,p2) Exemple 1 : >> p1= [1 0 0 0 -1] p1 = 1 0 0 0 -1 >> p2= [1 0 0 -1] p2 = 1 0 0 -1 >> p=conv(p1,p2) p = 1 0 0 -1 -1 0 0 1 Oui cest correcte se quon a obtenu. Exemple 2 : >> p1= [1 0 0 0 -1] p1 = 1 0 0 0 -1 >> p2= [1 0 0 -1] p2 = 1 0 0 -1 >> [q,r]=deconv(p1,p2) q = 1 0 r = 0 0 0 1 -1 Oui cest correcte se quon a obtenu. 6/ I ntgrale et diffrentielle : >> f='(x^2+2*x+2)/(x^2-1)'; >> syms x >> diff(f) ans = (2*x+2)/(x^2-1)-2*(x^2+2*x+2)/(x^2-1)^2*x La commande diff donne la diffrence et la drive approximative. >> int(f) ans = x+5/2*log(x-1)-1/2*log(x+1)
>> taylor(f,x,6) ans = -2-2*x-3*x^2-2*x^3-3*x^4-2*x^5 La commande taylors donne lexpansion de la srie de Taylor Conclusion : on peut travailler avec matlab plus confortablement qu'avec simulink