Syntaxe Matlab clear a pi cos(a) sin(a) tan(a) acos(a) asin(a) atan(a) log(a) log10(a) log2(a) exp(a) sqrt(a) format long format short char=’blabla’ char(i:j) char=num2str(n,k) Description E↵ace les données a. Nombre pi Cosinus, Sinus, Tangente. Argument en radians. Arcosinus, Arcsinus, Arctangente. Retourne une valeur en en radians. Logarithme népérien (”ln”), logarithme de base 10, logarithme de base 2. Fonction exponentielle, racine carrée Pour afficher un plus grand nombre de chi↵res au terminal. Pour revenir au format par défaut (moins de chi↵res affichés). Définit une chaı̂ne de caractères. Sélectionne les caractères i à j (blancs compris) Converti le nombre n en caractères, en prenant k chi↵res (+ la virgule) et en arrondissant le nombre ; Défaut : 7 chi↵res strcat(char1,char2,...) Met bout à bout les chaı̂nes de caractères char1, char2, etc. disp([char1,char2,...]) Affiche au terminal un message composé des ch. de car. char1, char2, etc. a=input(char) Pour communiquer avec l’utilisateur. char est une ch. de car. et a prend la valeur tapée au terminal (nombre, matrice, ch. de car., ...). function y=g(x1,x2,...) Crée une fonction g dont les variables sont x1, x2, etc. Dans cet exemple, y y=zeros(2,1); est un vecteur à 2 composantes, mais toutes les configurations sont possibles. y(1)=... Ce bloc de code doit être séparé du reste du programme principal et on y(2)=... l’enregistre sous le nom de la fonction (ici, ça sera donc ”g.m”). end Pour faire appel à la fonction dans le programme principal, on écrit g(...) fun=@g g est définie comme dans le cadre ci-dessus. x=fzero(fun,x0) Calcule les racines de la fonction g autour du point/de l’intervalle x0. g=@(x1,x2,...) [...] Crée une fonction g dont les variables sont x1, x2, etc. L’expression de la fonction s’écrit souvent entre crochets (+ cfr notations matricielles) et elle peut faire partie du programme principal. ATTENTION : Ce type de code est moins général que le précédent. Ne pas utiliser pour la résolution d’EDO, entre autres. x=fzero(g,x0) Calcule les racines de la fonction g autour du point/de l’intervalle x0. g est définie comme dans le cadre ci-dessus. zeros(n,m) eye(n,n) Matrice nulle n lignes et m colonnes - Matrice identité nxn. v=[10 9 8 7 6 5 4 3] Définit un vecteur v de 1 ligne et 8 colonnes. v(7)=43 Donne la valeur 43 à la 7ème composante. [xmax,I]=max(x) xmax est le maximum du vecteur x et I donne l’indice de ce max dans x. [xmin,I]=min(x) xmin est le minimum du vecteur x et I donne l’indice de ce min dans x. A=[10 9 8 7 ; 5 4 3 2] Définit une matrice A de 2 lignes et 4 colonnes. A(2,3)=43 Donne la valeur 43 à l’élément (2,3) de la matrice A. A(:,2) A(1,:) Deuxième colonne de A - Première ligne de A. B.^2 Met toutes les composantes de B au carré. B+C B-C Addition/Soustraction pour deux matrices de même taille. B.*C B./C Multiplication/Division, terme à terme, pour deux matrices de même taille. B’ Transpose B. B*D Multiplication matricielle (sous conditions). det(B) Déterminant de la matrice B (sous conditions). inv(B) B^-1 Inverse de la matrice B (sous conditions). Deux notations possibles. size(B) Taille de B. Soit le système linéaire non-homogène écrit sous forme matricielle : Ax = b. y=null(A) Base du syst. homogène (chaque colonne de y contient un vecteur de base). yp=pinv(A)*b Solution particulière du système linéaire non-homogène. A\b inv(A)*b pinv(A)*b Façon de faire quand on s’attend à une solution unique. Trois choix possibles. [V,D]=eig(A) Les vecteurs propres de A sont dans les colonnes de V, et D est la matrice diagonale avec les valeurs propres de A. 2 Résolution du système d’EDO dont les équations se trouvent dans le fichier ”fun.m”. Ce fichier doit commencer par l’instruction function (cfr ci-dessus pour plus de détails). Le système doit être du premier ordre et sous forme réduite et le fichier ”fun.m” contient l’expression des dérivées premières. La solution est calculée sur l’intervalle [t1 t2] (avec intervalle irrégulier, adaptatif, calculé automatiquement par matlab) et les conditions initiales (i.e. en t1) sont [C1 C2 ...]. Le graphe de la solution du système s’affiche automatiquement. Idem excepté que le graphe ne s’affiche pas automatiquement. La solution est stockée dans t, valeurs dans l’intervalle [t1 t2] pour lesquelles la solution y est calculée, et y. t est un vecteur et y une matrice dont le nombre de colonnes est égal à la dimension du système. Chaque colonne de y donne la solution d’une équation du système. ode45(@fun,[t1 t2],[C1 C2 ...]) [t,y]=ode45(@fun,[t1 t2],[C1 C2 ...]) Graphe d’une fonction à une variable : Exemple f=@(x) x.^2-2.*x+3; x=-10:0.01:10; Intervalle sur lequel on va évaluer f et pas de temps. plot(x,f(x),’b’,3,f(3),’r*’) Première courbe tracée en bleu (’b’), trait continu (défaut), et point (3,f(3)) en rouge (’r’), avec motif *. text(3,f(3)+3,’mypoint’) Affiche le texte ’mypoint’ sur le graphe au point de coordonnées (3,f(3)+3). grid on Ajoute une grille. Défaut : grid off. axis([1 5 0 20]) Change les bornes des axes. xmin=1 xmax=5 ymin=0 ymax=20. title(’f(x)’) Donne un titre au graphe. Graphe des solutions d’une EDO : Exemple [t,x]=ode45(@ex9,[0 30],[10 10]); figure(9) hold on plot(t,x(:,1),’g-o’) plot(t,x(:,2),’c--^’) xlabel(’temps (h)’) ylabel(’masse (g)’) legend(’Subst. 1’,’Subst. 2’) Numérote la figure (à faire quand plusieurs figures à la suite). Pour superposer plusieurs plot dans la même figure. ’b-o’ signifie : vert, ligne continue et cercles aux points de t. ’c--^’ signifie : cyan, ligne en pointillés et triangles. Nomme l’axe X. Nomme l’axe Y. Légende (dans l’ordre d’apparition des courbes dans le code). Graphes d’une fonction à deux variables : Exemple [X,Y]=meshgrid(-pi:0.05:pi); Définit le domaine sur lequel on trace la fonction. Z=sin(X.^2+Y.^2); Définit la fonction de 2 variables. figure(1) surfc(X,Y,Z) Graphe de la surface, dans un repère (X,Y,Z) et courbes de niveau dans le plan (X,Y). xlabel(’x’) Nomme l’axe X. On peut faire de même pour Y et Z. colormap hsv Choix du dégradé de couleur (autres : winter, hot, ...). shading interp Pour ”lisser” le dégradé de couleur de la surface. figure(2) contour(X,Y,Z,20) Courbes de niveaux, dans le plan (X,Y). 20 niveaux. xlabel(’x’) xlabel(’y’) cbar handle=colorbar; Barre de couleur pour le niveau des contours et valeurs enregistrées dans cbar handle. set(get(cbar handle,’ylabel’),’string’,’z=f(x,y)’) Nomme la barre de couleur ’z=f(x,y)’. ylabel pour un affichage vertical. 3