Documente Academic
Documente Profesional
Documente Cultură
Nom :
Prnom :
Anne scolaire
2011-2012
TP no 2 Initiation lalgorithmique
1
Pour comprendre lintrt de lutilisation des scripts, effectuer les calculs suivants
!
en ligne de commande :
1 2
crer la matrice A =
;
i 4
crer B = AT ;
crer S = A + B ;
T
tester si la matrice S est symtrique
! (S S = 0) ;
e= 1 2 .
Refaire ces calculs pour A
3i 4
Cela devient vite pnible de devoir compiler successivement tous les calculs en
ligne de commande, mme lorsquune petite modification est faire ; de plus, ces calculs sont lis les uns aux autres : il serait prfrable de pouvoir crire toutes ces lignes
puis, ensuite, de tout compiler dun coup. Les scripts vont rpondre ces besoins.
Suivre la procdure suivante afin de crer votre premier script matlab.
1. Crer un dossier L3_analyseNumerique dans lequel seront placs les fichiers relatifs aux TP de ce cours. (Cliquer sur licne Open file.)
2. Crer un sous-dossier TP02.
3. Dans ce sous-dossier, crer un fichier Intro.m (Cliquer sur licne New M-file.)
et y reproduire les calculs ci-dessus.
5. Que suffit-il de faire pour r-excuter les calculs mais, cette fois-ci, sans afficher
le rsultat de la cration de B ?
2.1
2.1.1
Boucle for
Elle permet de faire se rpter un certain nombre de fois une (ou plusieurs) instruction(s) ; le nombre de fois est explicitement connu de lutilisateur.
Crer un script exemples_for.m pour y tester les exemples suivants.
Exemple 1.
f o r i =0:5
i
end
Pour i =0 i =5 , faire
afficher i
Fin
Exemple 2.
Pour i =0 i =10 , faire
afficher 2* i
Fin
Exemple 3.
Pour j =0 j =10 par pas de 2 , faire
afficher j
Fin
f o r j =0:2:10
j
end
2
,
cos
3
3 , . . ., cos (2).
2.1.2
Boucle while
Elle permet de faire se rpter un certain nombre de fois une (ou plusieurs) instruction(s) ; le nombre de fois nest pas explicitement connu de lutilisateur : il dpend
dune condition. Autrement dit : tant que la condition est vrifie, on rpte les instructions ; ds quelle ne lest plus, on sarrte.
Crer un script exemples_while.m pour y tester les exemples suivants.
Exemple 5.
i =0
while ( i <5)
i = i +1
end
i =0
Tant que i <5 , faire
i = i +1
Fin
Exemple 6.
i =5
Tant que i >0 , faire
i =i -1
Fin
Exemple 8. Expliquer le rsultat obtenu sur cet exemple, ainsi que la syntaxe == .
i =5
while ( i ==5)
i = i 1
end
i =5
Tant que i est gal 5 , faire
i =i -1
Fin
Exercice 3.
1. Partir de x = 100 et remplacer x par sa racine carre jusqu obtenir un nombre
strictement plus petit que 0.5.
2. Combien ditrations ont t ncessaires pour atteindre ce rsultat ? (Faire calculer matlab ce nombre ditrations.)
2.2
Utilit : faire ou ne pas faire dinstruction(s). Autrement dit : dans tel cas faire ceci,
sinon faire cela.
Crer un script exemples_if.m pour y tester les exemples suivants.
Exemple 9. Tester le script suivant, pour i = 2, i = 5 et i = 10.
i f ( i ==10)
2* p i
disp ( car i =10 )
end
Si i =10 , alors
calculer 2
crire car i =10
Fin
Si i >0 , alors
crire i positif
sinon , si i <0 alors
crire i ngatif
sinon
crire i nul
Fin
Exercice 4. tant donn un rel x, calculer |x| (sans utiliser la commande abs).
Algorithme de remonte
Dfinition de A
n = taille de A
x1 =b1 /a11
Pour i allant de 2 n
xi =bi
Pour k =1 i -1
xi =xi aik xk
Fin
xi =xi /aii
Fin
Dfinition de A
n = taille de A
xn = bn /ann
Pour i allant de n -1 1
xi = bi
Pour k = i +1 n
xi = xi aik xk
Fin
xi = xi /aii
Fin
3x1 + 2x2 + x3 = 1
7 x2 + 5 x3 = 5
(1)
3
3
3
24
3
x =
7 3 7
4. Demander matlab de rsoudre ce systme, avec lalgorithme choisi la question 2 : quelle solution trouve-t-il ?
A\b
7