Vous êtes sur la page 1sur 10

TP info

BCPST1 20006/2007

` TP1: Introduction a MATLAB Sommaire

Mise en route et prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 e Utiliser laide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Types de Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Listes et Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Comment construire une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Outils de programmation (for, if and while) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Mise en route et prsentation e


Matlab est un logiciel de calcul et de programmation (exemple de type de programme: recherche des racines dun polynme de degr 2 ). o e Pour dmarrer Matlab, il sut de cliquer sur licne. e o

variables cres e

(ou de calcul)

fentre de commande e

commandes prcdentes e e

Remarque 1 Vrier que le nom donner ` une variable soit sans accent : x,a,liste, racinepolynome. e a Remarque 2 Matlab ne fait pas la dirence entre minuscule et majuscule. e

TP info

BCPST1 20006/2007

Remarque 3 Vrier toujours, grace ` la fentre de variables, que le nom que vous donnez ne e a e soit pas utilis par Matlab. e Remarque 4 Attention, le sens dcriture a = 5 et 5 = a est important. a = 5 signie que a est gal e e a ` 5. Mais a = 5 ne signie rien.

clear La commande clear permet de supprimer les variables indiques dans la fentre des variables e e (workspace) . format La commande format permet de choisir entre plusieurs modes dachages. Commande format short format long format bank format rat Achage dcimal ` 5 chires e a dcimal ` 16 chires e a virgule xe ` 2 dcimales a e fractionnaire Exemple 31.416 3141592653535879 31.41 3550/113

Utiliser laide

(help)

On peut lutiliser de deux faons : c en utilisant lindex: taper le mot (en anglais) en utilisant les guides: il y en a quatre. Getting started Matematics (bien pour les polynmes, les matrices . . . ) o Programming Graphics

Types de chiers

(le)

Les M-le: chier.m Ce sont des chiers qui permettent : soit de sauvegarder des calculs. soit de crer un programme e (par exemple un programme qui recherche des racines dun polynome de degr 2 ) e

TP info

BCPST1 20006/2007

Pour les utiliser : 1. Ouvrez avec la barre de menu: le new M-le 2. Travaillez dans le chier cre e 3. Sauvegardez: save nom.m

Les chiers de gures: chier.g Ce sont des chiers qui permettent de crer ou de sauvegarder des gures. e Pour sauver une gure : Une fois la gure construite: save nom.g

Remarque 5 Lextension .g nest pas une extension classique pour lire une image. On peut aussi sauver la gure avec lextension .jpg, la qualit sera mauvaise mais vous pouvez e au moins lire votre image sans ouvrir matlab et surtout, linsrer dans un rapport word. e

Pour sauver une gure en .jpg : Une fois la gure construite: export jpg nom.jpg

Listes et Tableaux
Pour Matlab, une variable (a, x, . . . ) ou une liste de nombres est un tableau particulier.

Construction dune liste


On peut dnir une liste de nombres en donnant ` la suite ses lments spars par des espaces. e a ee e e La liste est dlimite par des crochets. e e Exemple 1 >> a=[2,4,6,8] >>a=[2 4 6 8] a = 2 4 6 8

(liste ` a

4 lments) e e

a est considr comme un tableau 1 ligne, 4 colonnes:: 2 4 6 8 ee

Acc`s aux lments dune liste e ee On peut isoler des lments dune liste. On acc`de ` llment dindice k de la liste a avec a(k). ee e a ee Exemple 2 >> a(1) ans = 2

(on rcup`re le premier elment de a) e e e

TP info

BCPST1 20006/2007

>> a(1:3) ans = 2

(on rcup`re les trois premiers elments) e e e

>> a(1:2:4) ans = 2 6

(on rcup`re les trois premiers elments a des places paires) e e e `

Remarque 6 Lexpression a:p:b cre une liste dont les lments vont de a ` b avec un pas de p. e ee a Lorsquon ne donne pas le pas, la valeur du pas est par dfaut 1. e Lacc`s ` un lment dindice ngatif conduit ` une erreur. e a ee e a

Construction de tableaux
On peut crer des tableaux de nombres avec plusieurs lignes en donnant chaque ligne spare par e e e un point virgule (;). Exemple 3 >> A=[1 2 3 4;5 6 7 8] A = 1 2 3 4 5 6 7 8

Acc`s aux lments dun tableau e ee De mme, on peut extraire des parties dun tableau. e Le premier nombre dsigne la ligne et le deuxi`me nombre la colonne o` se trouve llment : e e u ee Exemple 4 >> A(1,2) ans = 2 >> A(2,1) ans = 5 >>A(:,1) ans = 1 5 >> A(1,:) ans = 1

(lment ` la ligne 1 et ` la colonne 2) e e a a

(lment ` la ligne 2 et ` la colonne 1) e e a a

(lments e e

de la colonne 1)

(lments de la ligne e e

1)

TP info

BCPST1 20006/2007

>> A(1,2:4) ans = 2 3

Concatenation de tableaux On peut rajouter un autre tableau ` la variable a ou A. a Pour un tableau, il faut faire attention que le tableau rajout a le mme nombre de lignes. e e Exemple 5 >> [a 100] ans = 2 4 6 >> [A [100;99]] ans = 1 2 5 6

100

3 7

4 8

100 99

Taille dun tableau ou dune liste


Pour accder ` la taille dun vecteur, on utilise la commande length e a Pour accder au nombre de lignes et de colonnes dun tableau, on utilise la commande size. e Exemple 6 >>length(a) ans = 4 (nombre dlments de a) e e >> size(A) ans = 2 4 >> size(A,1) ans = 2 >> size(A,2) ans = 4

(nombre de lignes de A)

(nombre de colonnes de A)

TP info

BCPST1 20006/2007

Comment construire une fonction ?


Exemple 7 Je veux rentrer f (x) = 3x + 5 et calculer f(500)

Premier probl`me : x est un tableau ou une liste de nombres pour Matlab. e Deuxi`me probl`me : lcriture f (x) ne veut rien dire si on na dnit pas f avant. e e e e Troisi`me probl`me : 3x est considr comme une variable et non comme le calcul 3 x. e e ee

Il y a deux moyens : premier moyen (le plus utilis) : e Programmer le calcul queectue f et lappliquer ` x = 500. a 1. Ouvrez un M-le 2. Commencez par la syntaxe den tte : e function y=f(x) (y est le rsultat) e (f est le nom de la fonction) (x est une variable dentre) e 3. Ecrivez les calculs ` eectuer sur la variable dentre : a e y=3*x+5; 4. Sauvegardez sous le mme nom donn ` la fonction : f.m e ea 5. Calculer f (500) dans la fentre de commande. e

Exercice 1 Supprimer le ; dans lexpression y=3*x+5;. A quoi sert le ; ?

deuxi`me moyen (uniquement pour des fonctions simples) : e On utilise directement la commande f = inline( expr , var1 , var2 , ...) : > f=inline(3*x+5,x) f = Inline function: f(x) = 3*x+5

TP info

BCPST1 20006/2007

Outils de programmation (for,if and while)


La boucle for permet dexcuter plusieurs fois la mme srie dinstruction ` laide dun compe e e a teur. La structure est : for variable = expression / instruction / end Exemple 8 Le programme suivant : for i=1:10 i end (i est le compteur)

ache les nombres 1 2 3 . . . 10. En particulier, cela va nous tre utile pour calculer une somme ou les lments dune suite de e ee faon rcursive. c e

e e Exemple 9 Je veux calculer la somme des 100 premiers termes de la suite gomtrique un = 2n

Dans un M-le : 1. Crez une variable de stockage (exemple: s qui reprsente la somme a chaque tape) e e ` e 2. Initialisez s : s=0; 3. Syntaxe de la boucle: pour n allant de 1 jusqu` 100, il faut ajouter 2n ` la somme ` ltape a a a e (n 1), cest ` dire s : a for n=1:100 s=s+2^n; end (ici n est le compteur)

4. Lancez le nom du chier sans lextension dans la fentre de commande. e

Remarque 7 On peut aussi calculer la somme des termes impairs en remplaant la commande c n = 1 : 100 par n = 1 : 2 : 100.

TP info

BCPST1 20006/2007

Remarque 8 Cette fois, je veux construire une fonction dpendant de N qui permet de e N n , on crit alors calculer n=1 2 e dans un M-le : function s=somme(N) . . (la mme chose que prcdement) . e e e dans la fentre de commande e somme(100)

Exercice 2 Construit trois fonctions dpendant de N qui calcule chaque expression e


n=1 N N

n2 ,

n2 et
n=1 npair n=1

n2 . Teste les pour N = 50.

Exemple 10 Je veux les 7 premiers termes de la suite arithmtique e

u1 = 16 un+1 = un + 5

dans un M-le : 1. Crez une variable de stockage (exemple: u qui reprsente la liste des valeurs de la suite), e e donnez le premier lment de u : ee u(1)=16 2. Syntaxe de la boucle: for n=1:6 u(n+1)=u(n)+5 end 3. Lancez le nom du chier sans lextension dans la fentre de commande. e

Remarque 9 Cette fois, je veux construire une fonction permettant de calculer les N premiers u1 = a , on crit alors e termes de un+1 = un + r dans un M-le : function u=suite(N,a,r) . . (la mme chose que prcdement) . e e e dans la fentre de commande e suite(7,16,5)

Exercice 3 Construit une fonction retournant les N premiers termes de la suite gomtrique e e u0 = 5 un+1 = 9un

TP info

BCPST1 20006/2007

Le test if permet de tester une condition et de raliser une srie dinstruction en cas de ralisae e e tion ou de non ralisation de cette condition. e La structure est : if condition/instruction/ else/ instruction/ end Exercice 4 Avec laide, associer ` chaque expression loprateur de comparaison correspona e dant : Expression = = Oprateur de comparaison e

Exemple 11 Je veux tester pour la fonction f (x) = 3x + 5 si f (10300 ) est pair ou impair

Dans un M-le, 1. Calculer f (10300 ) et le stocker dans une variable. y=f(10^{300}); 2. Si f (10300 ), est pair, on crit le nombre est pair, sinon on crit que le nombre est impair. e e if mod(y,2)==0 le nombre est pair (la fonction mod(a,b) donne le reste de la division else euclidienne de a par b) le nombre est impair ( sert a ecrire une phrase) ` end

Exercice 5 Construit une fonction, dpendant de x, qui permet de tester si f (x) est pair ou e impair.

Exercice 6 Avec une boucle for et un test if, calcule les termes de la suite de lexemple 10 qui sont strictement infrieur ` 50. e a

TP info

BCPST1 20006/2007

Remarque 10 Sur le mme exercice, on aurait pu conomiser beaucoup de calculs en utilisant e e linstruction while (tant que). Linstruction while est une instruction qui permet de rpter un bloc dinstruction tant e e que la condition est satisfaite. En fait, cela combine juste la boucle for et le test if. Sur ce probl`me, cela aurait donn : e e u(1)=16 n=1; while u(n)<50 u(n+1)=u(n)+5 n=n+1; end; attention Ne pas oublier linstruction n=n+1 sinon le programme ne sarrte jamais. e

10

Vous aimerez peut-être aussi