Académique Documents
Professionnel Documents
Culture Documents
BCPST1 20006/2007
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
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.
(liste ` a
4 lments) e e
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
TP info
BCPST1 20006/2007
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
(lments e e
de la colonne 1)
(lments de la ligne e e
1)
TP info
BCPST1 20006/2007
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
(nombre de lignes de A)
(nombre de colonnes de A)
TP info
BCPST1 20006/2007
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
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
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)
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)
n2 ,
n2 et
n=1 npair n=1
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