Sunteți pe pagina 1din 74

INTRODUCERE Matlab

ENGINEERING STUDEN•I

David Houcque
Universitatea Northwestern

(Versiunea 1.2, august 2005)


Cuprins

1 lec•ii Tutorial 1 1

1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Caracteristici de bază . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3 O sesiune de minim MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.1 Pornirea MATLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3.2 Utilizarea MATLAB ca un calculator. . . . . . . . . . . . . . . . . . . . . 4

1.3.3 Renuntarea MATLAB. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 No•iuni de bază . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4.1 variabile MATLAB Crearea. . . . . . . . . . . . . . . . . . . . . . . 5

1.4.2 variabilă suprascrierea. . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4.3 mesaje de eroare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4.4 Efectuarea corec•iilor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4.5 Controlul ierarhia opera•iunilor sau prioritate. . . . . . . . . 6

1.4.6 Controlul aspectul numărului fl punctul flotante. . . . . . . . . . 8

1.4.7 Gestionarea spa•iului de lucru. . . . . . . . . . . . . . . . . . . . . . . . . 8

urmări 1.4.8 Păstrarea sesiunii de lucru. . . . . . . . . . . . . . . . . . . 9

1.4.9 Introducerea declara•iilor multiple pe linie. . . . . . . . . . . . . . . . . . 9

1.4.10 comenzi diverse. . . . . . . . . . . . . . . . . . . . . . . . . 10

1.4.11 Ob•inerea de ajutor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 lec•ii Tutorial 2 12

2.1 funcţii matematice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1.1 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

eu
2.2 plotare de bază . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.1 Prezentare generală. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.2 Crearea de parcele simple. . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.3 Adăugarea de titluri, etichetele axelor •i adnotări. . . . . . . . . . . . . . . 15

2.2.4 seturi de date multiple într-un singur lot. . . . . . . . . . . . . . . . . . . . . . 16

2.2.5 Specificarea stiluri de linii si culori. . . . . . . . . . . . . . . . . . . . . 17

2.3 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5 genera•ie Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5.1 Introducerea unui vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5.2 Introducerea unei matrice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.5.3 Matricea de indexare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5.4 Operatorul Colon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.5 spa•iere liniară. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.6 Operatorul Colon într-o matrice. . . . . . . . . . . . . . . . . . . . . . . . 22

2.5.7 Crearea unui sub-matrice. . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5.8 rând •tergerea sau coloană. . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.9 Dimensiune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.10 Continuare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.11 o matrice transpunere. . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.12 matrici concatenarea. . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.13 generatoare Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5.14 matrici speciale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.6 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 opera•iunile de matrice •i ecua•ii liniare 30

3.1 opera•iuni Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1.1 Matrix opera•ii aritmetice. . . . . . . . . . . . . . . . . . . . . . . 30

opera•ii aritmetice 3.1.2 Array. . . . . . . . . . . . . . . . . . . . . . . 30

3.2 Rezolvarea ecua•ii liniare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.1 Matricea inversă. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

ii
3.2.2 Func•ii Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.3 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4 Introducere în programare în MATLAB 35

4.1 Introducere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Script-M-File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2.1 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2.2 side-e Script ff ecta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.3 Func•ii M-File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.3.1 Anatomia unei func•ii M-File. . . . . . . . . . . . . . . . . . . . . . 38

4.3.2 intrare •i de ie•ire argumente. . . . . . . . . . . . . . . . . . . . . . . 40

4.4 de intrare la un script fi lul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.5 Comenzi de ie•ire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.6 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Controlul flux •i operatori 43

5.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2 Controlul flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.2.1 „“ Dacă ... sfâr•itul „“ structură. . . . . . . . . . . . . . . . . . . . . . . 43

5.2.2 Operatori rela•ionali •i logici. . . . . . . . . . . . . . . . . . . . . 45

5.2.3 „“ Pentru ... sfâr•itul „“ buclă. . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2.4 „“ În timp ce ... sfâr•itul „“ buclă. . . . . . . . . . . . . . . . . . . . . . . 46

5.2.5 Alte fl ow structuri. . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2.6 operator prioritate. . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3 Salvarea de ie•ire la o fi lul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.4 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6 Debugging M- Fi les 49

6.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2 procesul de depanare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.2.1 Pregătirea pentru depanare. . . . . . . . . . . . . . . . . . . . . . . . . 50

6.2.2 Setarea punctelor de întrerupere. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

iii
6.2.3 Rularea cu punctele de întrerupere. . . . . . . . . . . . . . . . . . . . . . . . 50

6.2.4 Valori de examinare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.2.5 Corectarea •i se termină depanare. . . . . . . . . . . . . . . . . . . . 51

6.2.6 Terminarea depanare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

6.2.7 Corectarea unui M- fi lul. . . . . . . . . . . . . . . . . . . . . . . . . . . 51

A Rezumatul comenzilor 53

B Note de lansare pentru lansare 14 cu Service Pack 2 58

B.1 Rezumatul modificărilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

B.2 alte modificări . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

B.3 Mai multe detalii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

C Principalele caracteristici ale MATLAB 62

C.1 Istorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

C.2 Puncte forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

C.3 Puncte slabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

C.4 Competi•ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

iv
Lista de mese

1.1 Operatorii aritmetice de bază. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Ierarhia opera•iilor aritmetice. . . . . . . . . . . . . . . . . . . . . . . . 7

2.1 Func•ii elementare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Prede definit valori constante. . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3 Atribute pentru complot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 matrici elementare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5 matrici speciale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1 Operatorii de matrice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Rezumatul opera•iilor de matrice •i matrice. . . . . . . . . . . . . . . . . . . . 32

3.3 Func•ii Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1 Anatomia unei func•ii M-File. . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2 Di ff erence între script-uri •i func•ii. . . . . . . . . . . . . . . . . . . . 39

4.3 Exemplu de intrare •i ie•ire argumente. . . . . . . . . . . . . . . . . . . . 40

4.4 disp •i fprintf comenzi. . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1 Operatori rela•ionali •i logici. . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2 operator prioritate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

A.1 operatori matematici •i caractere speciale . . . . . . . . . . . . . . . 53

A.2 operatorii Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

A.3 Operatori rela•ionali •i logici . . . . . . . . . . . . . . . . . . . . . . 54

A.4 Gestionarea spa•iului de lucru •i a fi lul comenzi . . . . . . . . . . . . . . . . . 55

A.5 Prede definit variabile •i constante matematice . . . . . . . . . . . . . . . . . 55

v
A.6 matrici elementare •i matrice . . . . . . . . . . . . . . . . . . . . . . 56

A.7 Arrays •i matricele: Informa•ii de bază . . . . . . . . . . . . . . . . . 56

A.8 Arrays •i matricele: opera•iuni •i manipulare . . . . . . . . . . 56

A.9 Tablourile •i Matrici: analiza matrice •i ecua•ii liniare . . . . . 57

vi
lista figurilor

1.1 Interfa•a grafică la spa•iul de lucru MATLAB. . . . . . . . . . . . . . 3

2.1 Plot pentru vectorii x •i y. . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Reprezentarea grafică a func•iei sinus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Un exemplu tipic de mai multe parcele. . . . . . . . . . . . . . . . . . . . . . . . 17

vii
Prefaţă

„Introducere în MATLAB pentru Inginerie Studen•ii“ este un document pentru un curs introductiv în MATLAB R
© 1 •i tehnică de calcul. Este folosit pentru clasele bobocilor de la Nord-

Universitatea de Vest. Acest document nu este un manual de referin•ă introducere cuprinzătoare sau. În schimb, se concentrează
asupra speci fi c caracteristici ale MATLAB care sunt utile pentru clasele de inginerie. Sesiunile de laborator sunt utilizate cu un singur
scop principal: pentru a permite studen•ilor să se familiarizeze cu software-ul de calculator (de exemplu, MATLAB) pentru a rezolva
problemele de aplicare. Presupunem că elevii nu au nici o experien•ă anterioară cu MATLAB.

Disponibilitatea mediului de tehnica de calcul, cum ar fi MATLAB este remodelarea acum rolul •i aplica•iile de proiecte
informatice de laborator pentru a implica elevii în mai intensă experien•ă de rezolvare a problemelor. Această disponibilitate
oferă, de asemenea, o oportunitate de a efectua cu u•urin•ă experimente numerice •i pentru a aborda problemele realiste •i
mai complicate.

Ini•ial, manualul este împăr•it în sesiuni de laborator de calculator (laboratoare). Documentul de laborator este
proiectat pentru a fi utilizat de către elevi în timp ce lucrează la calculator. Accentul aici este „învă•area prin practică“.
Această sesiune-test ca ar trebui să fie pe deplin finalizat în 50 de minute în clasă.

Sesiunile de laborator •apte includ nu numai conceptele de bază ale MATLAB, dar, de asemenea, o introducere
pentru a fi •tiin•i c de calcul, în care vor fi utile pentru cursurile de inginerie viitoare. În plus, studen•ii de inginerie vor
vedea MATLAB în alte cursuri lor.

Sfâr•itul acestui document con•ine două sec•iuni utile: un Glosar care con•ine rezumatul scurt al comenzilor •i
func•iile încorporate precum •i o colec•ie de note de lansare. Notele de lansare, care includ mai multe caracteristici noi
ale Release 14 cu Service Pack
2, bine cunoscut ca R14SP2, pot fi găsite în Anexa. Toate comenzile MATLAB au fost testate pentru a beneficia de noile
caracteristici ale versiunii curente a MATLAB disponibile aici, la Northwestern (R14SP2). Cu toate că, de cele mai multe
exemple •i exerci•ii încă de lucru cu edi•iile anterioare, de asemenea.

Acest manual de re fl e ff ECTS în curs de desfă•urare ORT a •colii McCormick de Inginerie si Stiinte Aplicate
lider de Dean Stephen Carr să instituie o semni fi cative tehnică de calcul în inginerie Primul R
© 2 Cursuri predate la Universitatea Northwestern.

În cele din urmă, studen•ii - Inginerie Analiza (EA) Sec•iunea - merită recuno•tin•a mea specială. Ei au fost
participan•i foarte activi în clasă.

David Houcque
Evanston, Illinois
august 2005

1 MATLAB R © este o marcă înregistrată a MathWorks, Inc.


2 Inginerie Primul R © este o marcă înregistrată a McCormick

Facultatea de Inginerie si Stiinte Aplicate (Northwestern University)

viii
Recunoasteri

A• dori să-i mul•umesc lui Stephen Carr Dean pentru sprijinul său constant. Sunt recunoscător pentru un număr de persoane
care au o ff Ered sfaturi utile •i comentarii. Vreau să mul•umesc instructorii EA1 (trimestrul toamna anului 2004), în special
Randy Freeman, Jorge Nocedal, •i Allen Ta fl Ove pentru comentarii lor utile cu privire la unele speci fi păr•i ale documentului.
De asemenea, doresc să mul•umesc Malcomb MacIver, instructor EA3 Onoruri (Spring 2005), pentru a ajuta-mă să în•eleagă
mai bine
animaţie dinamicii sistemului folosind MATLAB. Îi sunt îndatorat în special la mul•i elevi (340 sau cam asa ceva), care au
folosit aceste materiale, •i au comunicat comentariile •i sugestiile lor. În cele din urmă, vreau să mul•umesc personal
pentru a ajuta înfiin•area claselor •i activită•i conexe alt computer: Rebecca Swierz, Jesse Becker, Rick Mazec, Alan Wol
ff, Ken Kalan, Mike Vilches, •i Daniel Lee.

Despre autor

David Houcque are o experien•ă mai mult de 25 de ani în modelarea •i simularea structurilor •i solide, inclusiv 14
continua ani în industrie. În industrie, el a lucrat ca inginer de cercetare •i dezvoltare în inginerie de RFIDT fi nucleare,
platforma de foraj de petrol o proiectare •ărm ff, inginerie rezervor de ulei, •i industria o•elului. Toate acestea includ
lucrează în medii interna•ionale di ff erent: Germania, Fran•a, Norvegia •i Emiratele Arabe Unite. Printre altele, el are o
experien•ă de fond combinat: fi •tiin•i c calcul •i expertiză de inginerie. El a câ•tigat de grade academice din Europa •i
Statele Unite ale Americii.

Aici, la Universitatea Northwestern, el lucrează sub supravegherea profesorului Brian Moran, un expert de renume
mondial în mecanica ruperii, pentru a investiga evaluarea integrită•ii îmbătrânirii poduri autostrada în condi•ii de
func•ionare severe •i coroziune.

ix
Capitolul 1

lec•ii Tutorial 1

1.1 Introducere

Tutorialele sunt independente de restul documentului. În primul rând, obiectivul este de a vă ajuta să înve•e repede FI
RST pa•i. Accentul aici este „învă•area prin practică“. Prin urmare, cel mai bun mod de a învă•a este prin încercarea
singur. Lucrul prin exemple vă va da o idee despre modul în care MATLAB operează. În această introducere, vom
descrie modul în care gestionează MATLAB expresii numerice simple •i formule matematice.

MATLAB nume vine de la MATrix LABoratory. MATLAB a fost scris ini•ial pentru a oferi un acces facil la
software-ul matrice dezvoltat de Linpack (pachet sistem liniar) •i EISPACK (Eigen pachet de sistem) proiecte.

MATLAB [1] este un limbaj de înaltă performan•ă pentru tehnică de calcul. Se integrează
calcul, vizualizare, •i programare mediu inconjurator. Mai mult decât atât, MATLAB este un mediu modern limbaj de
programare: are sofisticate structuri de date, con•ine built-in de editare •i instrumente de depanare, •i suporturi orientat pe
obiect de programare. Ace•ti factori fac MATLAB un instrument excelent pentru predare •i cercetare.

MATLAB are multe avantaje în compara•ie cu limbaje de programare conven•ionale (de exemplu,
C, Fortran) pentru rezolvarea problemelor tehnice. MATLAB este un sistem interactiv a cărui bază de date este un
element de mul•ime care nu necesită dimensionare. Pachetul software a fost disponibil comercial din 1984 •i este
considerată acum ca un instrument standard la cele mai multe universită•i •i industrii din întreaga lume.

Are puternic incorporat rutine care permit o varietate foarte largă de calcule. Ea are, de asemenea, u•or de
comenzi folosi elemente grafice care fac vizualizarea rezultatelor disponibile imediat. Speci aplica•ii fi c sunt colectate în
pachete denumite trusa de scule. Există toolbox de procesare a semnalului, calcul simbolic, teoria controlului, simulare,
optimizare, •i alte câteva RFIDT fi de •tiin•e aplicate •i inginerie.

În plus fa•ă de documenta•ia MATLAB, care este cea mai mare parte disponibile on-line, ne-ar

1
recomandăm următoarele căr•i: [2], [3], [4], [5], [6], [7], [8] •i [9]. Ele sunt excelente în aplica•iile lor speci fi c.

1.2 Caracteristici de bază

A•a cum am men•ionat mai devreme, următoarele tutorial lec•ii sunt proiectate pentru a ob•ine ai început rapid în
MATLAB. Lec•iile sunt menite să vă familiariza•i cu elementele de bază ale MATLAB. Vă îndemn să finaliza•i exerci•ii având
în vedere, la sfâr•itul fiecărei lec•ii.

1.3 O sesiune de minim MATLAB

Scopul acestei minim sesiune (numit, de asemenea, pornire •i ie•irea sesiuni) este de a învă•a Fi RST pa•i:

• Cum se face Log on

• Invoke MATLAB

• Face câteva calcule simple

• Cum să renun•e la MATLAB

1.3.1 MATLAB de pornire

După conectarea la contul dvs., pute•i introduce MATLAB prin dublu-clic pe comanda rapidă MATLAB pictograma ( MATLAB
7.0.4) de pe desktop-ul Windows. Când porni•i MATLAB, o fereastra speciala numita apare MATLAB desktop. Spa•iul de
lucru este o fereastră care con•ine
alte ferestre. Instrumentele majore din cadrul sau accesibile de pe desktop sunt:

• fereastra de comandă

• Istoricul de comandă

• Spa•iul de lucru

• Directorul curent

• Ajutor browser

• start buton

2
Figura 1.1: Interfa•a grafică a spa•iului de lucru MATLAB

3
Când MATLAB este pornit pentru prima dată fi, arată ecran ca cel care se arată în figura 1.1. Această ilustra•ie
arată, de asemenea, implicit con fi gura•ia a desktop-ului MATLAB. Pute•i personaliza dispunerea instrumentelor •i a
documentelor pentru a se potrivi nevoilor dumneavoastră.

Acum, suntem interesa•i în a face unele calcule simple. Vom presupune că ave•i su FFI cientă în•elegere a
calculatorului sub care MATLAB este rulat. Sunte•i acum se confruntă cu desktop-ul MATLAB pe computer, care con•ine
prompt (>>) în fereastra de comandă. De obicei, există 2 tipuri de solicitare:

>> pentru versiunea completă

EDU> pentru versiunea educa•ională

Notă: Pentru a simplifica notatia, vom folosi acest prompt, >>, ca un semn prompt de Standard, de•i versiunea noastră
MATLAB este în scop educativ.

1.3.2 Utilizarea MATLAB ca un calculator

Ca un exemplu de calcul interactiv simplu, trebuie doar să tasta•i expresia pe care dori•i să evalua•i. Start Să chiar la
început. De exemplu, să presupunem că dori•i să calculeze expresia, 1 + 2 × 3. Ai tasta•i la comanda prompt (>>), după
cum urmează,

>> 1 + 2 * 3
ans =
7

Vei fi observat că, dacă nu se specifică o variabilă de ie•ire, MATLAB utilizează o variabilă implicită ANS, scurt pentru Răspuns,
pentru a stoca rezultatele calculului curent. Re•ine•i că variabila ans este creat (sau suprascrise, în cazul în care acesta este
deja a existat). Pentru a evita acest lucru, se poate atribui o valoare unei variabile sau de ie•ire nume argument. De exemplu,

>> x = 1 + 2 * 3 x
=
7

va avea ca rezultat X fiind dată valoarea 1 + 2 × 3 = 7. Acest nume de variabilă poate fi întotdeauna utilizat pentru a se
referi la rezultatele calculelor anterioare. Prin urmare, calcul 4 X va avea ca rezultat

>> 4 * x
ans =

28.0000

Înainte de a încheia această sesiune minimă, tabelul 1.1 oferă lista par•ială a operatorilor aritmetici.

4
Tabelul 1.1: Operatorii aritmetice de bază
Simbol Exemplu Opera•iunea
+ Plus 2+3
- Scădere 2-3
* Multiplicare 2*3
/ Divizia 2/3

1.3.3 Renuntarea MATLAB

Pentru a încheia sesiunea MATLAB, tasta•i părăsi în fereastra de comandă, sau selecta•i Fişier - → Exit MATLAB din meniul principal
pentru desktop.

1.4 No•iuni de bază

După ce a aflat sesiunea de minim MATLAB, vom învă•a acum să folosească unele opera•ii suplimentare.

1.4.1 variabile MATLAB Crearea

Variabilele MATLAB sunt create cu o declara•ie de atribuire. Sintaxa de atribuire este variabilă

numele variabilei = o valoare (sau expresie)

De exemplu,

> > x = expresie

Unde expresie este o combina•ie de valori numerice, operatori matematici, variabile •i apeluri de func•ii. Pe alte cuvinte, expresie
poate implica:

• introducere manuală

• built-in functii

• Func•ii definit de utilizator

5
1.4.2 variabilă Suprascr

Odată ce o variabilă a fost creat, acesta poate fi reatribuite. În plus, în cazul în care nu dori•i să vede•i rezultatele
intermediare, pute•i suprima produc•ia numerică prin punerea punct •i virgulă (;), la capătul liniei. Apoi, secven•a de
comenzi arată astfel:

> > t = 5;
>> t = t + 1 t =

1.4.3 Mesaje de eroare

Dacă vom introduce o expresie incorect, MATLAB va returna un mesaj de eroare. De exemplu, în cele ce urmează, am
omis semnul de multiplicare, *, în următoarea expresie

> > x = 10;


> > 5x ???
5x

|
Eroare: expresie MATLAB nea•teptat.

1.4.4 Efectuarea corecturilor

Pentru a face corecturi, putem, de retasta•i desigur expresiile. Dar, în cazul în care expresia este de lungă durată, vom
face mai multe gre•eli prin tastarea a doua oară. O comandă introduse anterior pot fi reamintite cu tasta săgeată sus ↑. Atunci
când comanda este afi•ată la comandă, acesta poate fi modi fi cată, dacă este necesar •i executat.

1.4.5 Controlul ierarhia opera•iunilor sau a preceden•ă

Să considerăm opera•ia aritmetică anterioară, dar acum vom include paranteze. De exemplu, 1 + 2 × 3 va deveni (1 + 2) ×
3

> > (1 + 2) * 3
ans =
9

•i, din exemplul precedent

6
>> 1 + 2 * 3
ans =
7

Prin adăugarea între paranteze, aceste două expresii da di ff erent rezultate: 9 •i 7.

Ordinea în care MATLAB efectuează opera•ii aritmetice este exact care a predat la cursurile de algebra de liceu. Exponentiation
sunt gata fi RST, urmat de înmul•iri
•i diviziuni, •i fi nal de adăugări •i . scăderi Cu toate acestea, ordinea standard a priorită•ii opera•ii aritmetice poate fi
modificat prin introducerea paranteze. De exemplu, rezultatul 1 + 2 × 3 este destul de di ff erent decât expresia similară cu
paranteze (1 + 2) × 3. Rezultatele sunt 7 •i 9, respectiv. Parantezele pot fi utilizate întotdeauna să se abroge prioritate,

•i utilizarea lor este recomandată în unele expresii complexe la ambiguitate a evita.

Prin urmare, pentru a face evaluarea expresiilor clare, MATLAB a stabilit o serie de reguli. Ordinea în care sunt
evaluate opera•iile aritmetice este prezentată în tabelul 1.2. MATLAB operatorii aritmetici respectă acelea•i precedenta reguli
ca cele din

Tabelul 1.2: Ierarhia opera•iilor aritmetice


opera•ii matematice preceden•ă
Primul Con•inutul tuturor paranteze sunt evaluate fi prima, pornind de la cele mai
intime •i parantezele de lucru spre exterior.
Al doilea Toate exponentiale sunt evaluate, de lucru de la stânga la dreapta
Al treilea Toate înmul•iri •i divizările sunt evaluate, de lucru de la stânga la dreapta

Al patrulea Toate adunări •i scăderi sunt evaluate, pornind de la stânga la dreapta

cele mai multe programe de calculator. Pentru operatorii de egal prioritate, evaluarea este de la stânga la dreapta.

Acum, ia în considerare un alt exemplu:

1 2 + 32+ 4
5×6 7

În MATLAB, devine

> > 1 / (2 + 3 ^ 2) + 4/5 * 6/7 ans


=
0,7766

sau, în cazul în paranteze lipsesc,

> > 1/2 + 3 ^ 2 + 4/5 * 6/7


ans =
10.1857

7
Deci aici ce avem: două di ff erent rezultate. De aceea, dorim să subliniem importan•a regulii prioritate pentru
ambiguitate a evita.

1.4.6 Controlul apari•ia numărului punctului fl flotante

MATLAB de display-uri implicite numai 4 zecimale în rezultatul calculelor, de exemplu,


- 163.6667, a•a cum se arată în exemplele de mai sus. Cu toate acestea, MATLAB face calcule numerice în dubla de
precizie, care este de 15 cifre. Comanda format controlează modul în care sunt afi•ate rezultatele calculelor. Iată câteva
exemple de di ff erent formate împreună cu ie•irile rezultate.

> > format scurt


> > x = -163.6667

Dacă vrem să vedem toate cele 15 cifre, vom folosi comanda format lung

> > format lung


> > x = -1.636666666666667e + 002

Pentru a reveni la formatul standard, introduce•i format scurt, sau pur •i simplu format.

Există mai multe alte formate. Pentru mai multe detalii, consulta•i documenta•ia MATLAB, sau tipul Formatul de ajutor.

Notă - Până în prezent, ne-am lăsa Matlab repeta tot ceea ce vom intra la prompt (>>). Uneori, acest lucru nu
este destul de util, în special atunci când produc•ia este de pagini en lungime. Pentru a preveni MATLAB de ecou ceea
ce tasta•i, pur •i simplu introduce•i o virgulă (;) la sfâr•itul comenzii. De exemplu,

> > x = -163.6667;

•i apoi întreba•i despre valoarea X prin tastarea,

> > Xx =

- 163.6667

1.4.7 Gestionarea spa•iului de lucru

Con•inutul spa•iului de lucru persistă între execu•iile de comenzi separate. Prin urmare, este posibil ca rezultatele unei
probleme de a avea un e ff ECT pe următoarea. Pentru a evita această posibilitate, este o idee bună de a emite o clar comandă
la începutul fiecărui nou calcul independent.

8
> > clar

Comanda clar sau curata tot elimină toate variabilele din spa•iul de lucru. Astfel, se eliberează de memorie de
sistem. Pentru a afi•a o listă a variabilelor în prezent în memorie, tipul

> > care

in timp ce, whos va da mai multe detalii, care includ dimensiunea, alocarea spa•iului, •i clasa a variabilelor.

urmări 1.4.8 Păstrarea sesiunii de lucru

Este posibil pentru a urmări tot ceea ce face în timpul unei sesiuni MATLAB cu jurnal
comanda.

> > jurnal

sau da un nume unui fi lul creat,

> > jurnal FileName

Unde Nume de fi•ier ar putea fi orice nume arbitrar pe care o alege•i.

Functia jurnal este util dacă dori•i să salva•i o sesiune completă MATLAB. Ei salva toate de intrare •i de ie•ire, a•a cum
apar în fereastra MATLAB. Când dori•i să opri•i înregistrarea, introduce•i jurnal off. Dacă dori•i să începe•i din nou înregistrarea,
introduce•i jurnal pe. Fi lul care este creat este un text simplu fi lul. Acesta poate fi deschis printr-un program de procesare de
text sau editor •i editate pentru a elimina materialul străin, sau pentru a adăuga comentarii. Pute•i utiliza tipul de func•ie pentru a
vizualiza jurnalul fi lul sau pute•i edita într-un editor de text sau de imprimare. Această comandă este utilă, de exemplu, în
procesul de preparare a unei teme pentru acasă sau de depunere de laborator.

1.4.9 Introducerea declara•iilor multiple pe linie

Este posibil să introduce•i mai multe declara•ii pe linie. Utiliza•i virgule (,) sau virgulă (;) pentru a introduce mai mult de o
declara•ie dintr-o dată. Virgule (,) permit declara•ii multiple pe linie, fara a suprima de ie•ire.

> > a = 7; b = cos (a), c = cosh (a) b =

0.6570
c=
548.3170

9
1.4.10 comenzi Diverse

Iată câteva comenzi suplimentare utile:

• Pentru a •terge fereastra de comandă, tipul CLC

• Pentru a anula un calcul MATLAB, tipul ctrl-c

• Pentru a continua o linie, de tip. . .

1.4.11 Ob•inerea de ajutor

Pentru a vizualiza documenta•ia on-line, selecta•i MATLAB Ajutor din meniul de ajutor sau MATLAB Ajutor
direct în fereastra de comandă. Metoda preferată este de a utiliza Ajutor Browser. Help Browser poate fi pornit prin
selectarea? pictogramă din bara de instrumente pentru desktop. Pe de altă parte, informa•ii cu privire la orice comandă
este disponibil prin tastarea

> > Comanda de ajutor

O altă modalitate de a ob•ine ajutor este de a utiliza cauta comanda. cauta comanda di ff ers din RPC Ajutor comanda.
Căutările ajutor comanda pentru o potrivire exactă nume de func•ie, în timp ce cauta comandă caută informa•iile sumar
în fiecare func•ie pentru un meci. De exemplu, să presupunem că am fost în căutarea unei func•ii de a lua inversa unei
matrice. Deoarece MATLAB nu are o func•ie numită invers, comanda ajutor invers va produce nimic. Pe de altă parte,
comanda lookfor inversă va produce informa•ii detaliate, care include func•ia de interes, inv.

> > lookfor inversă

Notă - În acest moment particular al studiului nostru, este important să subliniem un punct principal. Deoarece MATLAB este
un program imens; este imposibil să acopere toate detaliile din fiecare func•ie de unul. Cu toate acestea, vă vom da informa•ii
cum să ob•ine•i ajutor. Aici sunt cateva exemple:

• Utiliza•i on-line Ajutor la info cerere, pe o func•ie speci fi c

> > ajutor sqrt

• În versiunea curentă (MATLAB versiunea 7), medic Func•ia deschide versiunea on-line a manualului de ajutor. Acest
lucru este foarte util pentru mai multe comenzi complexe.

> > complot doc

10
• Utilizare cauta pentru a fi doua functii de cuvinte cheie. Forma generală este

> > lookfor functionName

1.5 Exerci•ii

Notă: Datorită clasei de predare în această toamna 2005, Probleme sunt temporar eliminat din această sec•iune.

11
capitolul 2

lec•ii Tutorial 2

2.1 funcţii matematice

MATLAB o ff ERS multe prede fi nite func•ii matematice pentru tehnică de calcul, care con•ine un set mare de func•ii
matematice.

Tastare ajutor elfun •i ajutor specfun solicită liste complete de elementar •i special
Func•ii respectiv.

Există o listă lungă de func•ii matematice care sunt construit în MATLAB. Aceste func•ii sunt numite built-in-uri. Multe
func•ii matematice standard, cum ar fi păcat ( X), cos ( X),
bronza( x), e X, ln (x), sunt evaluate de către func•iile sin, cos, tan, exp, •i Buturuga respectiv, în MATLAB.

Tabelul 2.1 listează câteva func•ii utilizate în mod obi•nuit, în cazul în care variabilele X •i y pot fi numere, vectori, sau matrice.

Tabelul 2.1: Func•ii elementare

cos (x) Cosinus abs (x) Valoare absolută


sin (x) Sinus semn (x) funcţia Signum
tan (x) Tangentă max (x) Valoare maximă
acos (x) Arc cosinus cochetă) valoarea minimă
asin (x) Arc sine ceil (x) Runda spre + ∞
atan (x) Arc tangenta podea (x) runda spre -∞
exp (x) exponenţiale rotunde (x) Runda până la cel mai apropiat număr întreg

sqrt (x) Rădăcină pătrată rem (x) După diviziune Remainder


log (x) logaritmul natural unghi (x) unghiul de fază
log10 (x) logaritm comună conj (x) Conjugare complexa

În plus fa•ă de func•iile elementare, MATLAB include un număr de prede fi nite

12
valori constante. O listă a celor mai comune valori este prezentată în tabelul 2.2.

Tabelul 2.2: Prede definit valori constante

pi π număr, π = 3.14159. . .
i, j Unitatea imaginară I, √- 1
Inf Din fi, tate ∞
NaN Nu este un număr

2.1.1 Exemple

Ilustrăm aici câteva exemple tipice care au legătură cu func•iile elementare anterior de fi nite.

Ca fi rst exemplu, valoarea expresiei y = e - A păcat( X) + 10 √ y, pentru a = 5, x = 2, •i


y = 8 este calculat prin

> > a = 5; x = 2; y = 8;
> > y = exp (-a) * sin (x) + 10 * sqrt (y) = y

28.2904

Exemplele următoare sunt

> > log (142) ans


=
4.9558

> > log10 (142) ans


=
2.1523

Observa•i erence di ff între logaritmul natural log (x) •i logaritmul zecimal (baza
10) log10 (x).

Pentru a calcula păcat ( π / 4) •i e 10, vom intra următoarele comenzi în Matlab,

> > sin (pi / 4) ans


=
0.7071

> > exp (10)


ans =
2.2026e + 004

13
Note:

• Utiliza•i numai func•ii încorporate pe partea dreaptă a unei expresii. Realocarea valoarea unui built-in functie
poate crea probleme.

• Există unele excep•ii. De exemplu, eu •i j sunt pre-alocate √- 1. Cu toate acestea, una sau ambele eu sau j sunt adesea
utilizate ca indici de buclă.

• Pentru a evita orice confuzie posibil, se sugerează să se folosească în schimb ii sau jj ca indici de buclă.

2.2 plotare de bază

2.2.1 Prezentare generală

MATLAB are un excelent set de instrumente grafice. Trasarea un anumit set de date sau rezultatele de calcul este
posibil, cu foarte pu•ine comenzi. Sunte•i încuraja•i să complot func•ii matematice •i rezultatele analizei cât mai des
posibil. Încercarea de a în•elege ecua•ii matematice cu o grafică este o plăcută •i foarte e FFI cient mod de matematică
de învă•are. Fiind capabil să complot func•ii matematice •i date primare este cel mai important pas, iar această sec•iune
este scris pentru a vă ajuta să faci doar asta.

2.2.2 Crearea parcele simple,

Procedura de bază Matlab grafice, de exemplu, în 2D, este de a lua un vector de X-


coordonate, x = ( X 1, . . . . X N), •i un vector de Y- coordonate, y = ( y 1, . . . . y N), localiza punctele ( X I, y i), cu i = 1, 2, . . . . n •i apoi să li se
alăture prin linii drepte. Ai nevoie să se pregătească
X •i y într-o formă de matrice identică; •i anume, X •i y sunt ambele matrice rând sau coloană din matrice la fel lungime.

Comanda MATLAB pentru a trasa un grafic este plot (x, y). vectorii x = ( 1, 2, 3, 4, 5, 6)
•i y = ( 3, - 1, 2, 4, 5, 1) produc imaginea prezentată în figura 2.1.

> > x = [1 2 3 4 5 6];


> > y = [3 -1 2 4 5 1];
> > plot (x, y)

Notă: intrigă are func•ii di forme ff erent în func•ie de argumentele de intrare. Dacă y este un vector plot (y) produce un
grafic liniar al por•iuni elementelor y comparativ cu indicele elementelor y. Dacă vom specifica doi vectori, a•a cum sa
men•ionat mai sus, plot (x, y) produce un grafic y impotriva X.

De exemplu, pentru a parcelei păcatul func•ie ( X) pe intervalul [0, 2 π], am fi crea•i prima un vector de
X valori cuprinse între 0 •i 2 π, apoi calculăm sinus acestor valori, •i complot fi nal rezultatul:

14
5

-1 0
1 2 3 4 5 6

Figura 2.1: Plot pentru vectorii x •i y

> > x = 0: pi / 100: 2 pi *;


> > y = sin (x);
> > plot (x, y)

Note:

• 0: pi / 100: 2 pi * produce un vector care

- începe de la 0,

- ia măsuri (sau cre•teri) ale π / 100,

- se opre•te atunci când 2 π este atins.

• Dacă omite•i increment, MATLAB incremente automat de 1.

2.2.3 Adăugarea de titluri, etichetele axelor •i adnotări

MATLAB vă permite să adăuga•i etichete axa •i titluri. De exemplu, utilizând graficul din exemplul anterior, se adaugă un X-
•i Y- axa etichete.

Acum, eticheta axele •i se adaugă un titlu. Caracterul \ pi creează simbolul π. Un exemplu de grafic 2D este
prezentată în figura 2.2.

15
Reprezentarea grafică a func•iei sinus

0,8 1

0.6

0.4

0.2
Sinus de x

-0,2

-0,4

-0,6

-0,8

-1
0 1 2 3 4 5 6 7
x = 0: 2 π

Figura 2.2: Reprezentarea grafică a func•iei sinus

> > xlabel ( 'x = 0: 2 \ pi')


> > ylabel ( 'sinus de x')
> > titlu ( „Complotul func•iei sinus“)

Culoarea unei singure curbe este, în mod implicit, albastru , Dar alte culori sunt posibile. Culoarea dorită este indicat printr-un al
treilea argument. De exemplu, ro•u este selectată plot (x, y, 'r'). Notă ghilimele simple, „“, în jurul valorii de r.

2.2.4 seturi de date multiple într-un singur lot

multiple ( X y) perechi argumente crea multiplu grafice cu un singur apel la complot. De exemplu, aceste declara•ii complot
trei func•ii legate de X y 1 = 2 cos ( X y 2 = cos ( X), •i y 3 =
0.5 * cos ( X), în intervalul 0 ≤ X ≤ 2 π.

> > x = 0: pi / 100: 2 pi *;


> > y1 = 2 * cos (x);
> > y2 = cos (x);
> > Y3 = 0,5 * cos (x);
> > plot (x, y1, '-', x, y2, '-', x, Y3, ':')
> > xlabel ( '0 \ leq x \ leq 2 \ pi')
> > ylabel ( 'func•ii cosinus')
> > Legenda ( '2 * cos (x)', 'cos (x)', '0.5 * cos (x)')

16
> > titlu ( „Un exemplu tipic de mai multe parcele“)
> > axa ([0 2 * pi -3 3])

Rezultatul mai multor seturi de date într-o singură parcelă grafic este prezentată în figura 2.3.

Un exemplu tipic de mai multe parcele

2 * cos (x)

cos (x)

0.5 cos * (x)

23
funcţii cosinus

01

-1

-2

-3
0 1 2 3 4 5 6
0≤X≤2π

Figura 2.3: Un exemplu tipic de mai multe parcele

În mod implicit, utilizările MATLAB stil de linie •i culoare pentru a distinge seturile de date reprezentate grafic în
grafic. Cu toate acestea, pute•i schimba aspectul acestor componente grafice sau adăuga•i adnotări la grafic pentru a
explica datele de prezentare.

2.2.5 stiluri de linii si culori Specificarea

Este posibil să se specifice stiluri de linii, culori, •i markerii ( de exemplu, cercuri, semne plus,. . . ) Folosind intrigă comanda:

plot (x, y, 'style_color_marker')

Unde style_color_marker este un triplet valorilor din tabelul 2.3.

Pentru informa•ii suplimentare nd fi, de tip ajutor complot sau doc complot.

17
Tabelul 2.3: Atribute pentru intrigă

Simbol Simbol de culoare Stil linie Simbol Marker

k Negru - Solid + Semnul plus

r ro•u - dashed o Cerc


b Albastru : Punctat * Asterisc
g Verde -. Dash-dot . Punct
c Cyan nici unul Nici o linie × Cruce
m purpuriu s Pătrat
y Galben d Diamant

2.3 Exerci•ii

Notă: Datorită clasei de predare în această toamna trimestru 2005, Probleme sunt temporar
eliminat din această sec•iune.

18
2.4 Introducere

Matricele sunt elementele de bază ale mediului MATLAB. O matrice este o matrice bidimensională care constă din m rânduri
•i n coloane. Cazuri speciale vectori coloană ( n = 1) •i vectori rând ( m = 1).

În această sec•iune, vom ilustra modul în care să se aplice di ff erent opera•iuni pe matrici. Sunt discutate următoarele
subiecte: vectori •i matrici în MATLAB, inversul unei matrice, determinan•ii •i manipularea matricei.

MATLAB acceptă două tipuri de opera•iuni, cunoscute sub numele de opera•ii cu matrice •i opera•iuni de matrice. opera•iunile Matrix
vor fi discutate fi prima.

2.5 genera•ie Matrix

Matrici sunt fundamentale pentru Matlab. Prin urmare, trebuie să se familiarizeze cu generarea de matrice •i manipulare.
Matricele pot fi generate în mai multe moduri.

2.5.1 Introducerea unui vector

Un vector este un caz special al unei matrice. Scopul acestei sec•iuni este de a arăta modul de a crea vectori •i matrici în
MATLAB. A•a cum sa discutat mai devreme, o matrice de dimensiune 1 × n se nume•te rând vector, în timp ce o serie de
dimensiuni m × 1 se nume•te coloană vector. Elementele vectorilor în MATLAB sunt închise între paranteze pătrate •i sunt
separate prin spa•ii sau prin virgulă. De exemplu, pentru a introduce un vector rând, v, tip

> > v = [1 4 7 10 13] v =

1 4 7 10 13

Vectorii de coloană sunt create într-un mod similar, cu toate acestea, virgulã (;) trebuie să separe componentele unui vector
coloană,

> > w = [1; 4; 7; 10; 13] w =

14

7 10

13

Pe de altă parte, o rând vector este convertit într-o coloană vector folosind transpune operator. transpune opera•iune
este notat cu un apostrof sau un singur citat ( „).

19
> > w = v“w =

14

7 10

13

Prin urmare, v (1) este FI rst element al vectorului v, v (2) al doilea element său, •i a•a mai departe. Mai mult, accesul blocuri de

elemente, folosim nota•ia de colon MATLAB (:). De exemplu, pentru a accesa FI rSt trei elemente ale v, noi scriem,

> > v (1: 3)


ans =
1 4 7

Sau, toate elementele din a treia, prin ultimele elemente,

> > v (3, final)


ans =
7 10 13

Unde Sfâr•it fi cativ ES ultimul element din vector. Dacă v este un vector, scris

> > V (:)

produce un vector coloană, în timp ce scris

> > v (1: end)

produce un vector rând.

2.5.2 Introducerea unei matrice

O matrice este o matrice de numere. Pentru a introduce o matrice în MATLAB trebuie să vă

• începe cu o cro•etă, [

• elemente separate într-un rând cu spa•ii sau virgule (,)

• utiliza•i punct •i virgulă (;) pentru rânduri separate

• termina matricea cu o altă cro•etă,].

20
Aici este un exemplu tipic. Pentru a introduce o matrice A, precum,
• •
12345
A= • 6789 • (2.1)

tip,

> > A = [1 2 3; 4 5 6; 7 8 9]

MATLAB apoi afi•ează 3 × 3 matrice după cum urmează,

A=
1 234
567
89

Re•ine•i că utilizarea (punct •i virgulă;) aici este di ff erent din utilizarea lor men•ionat mai devreme pentru a suprima sau de ie•ire
pentru a scrie mai multe comenzi într-o singură linie.

Odată ce am intrat matricea, acesta este stocat •i amintit în automat


Spa•iul de lucru. Ne putem referi la ea pur •i simplu ca matrice A. Putem vedea apoi un anumit element într-o matrice specificând
loca•ia sa. Noi scriem,

> > A (2,1) =


ans
4

A (2,1) este un element situat în al doilea rând •i prima coloană Fi. Valoarea sa este de 4.

2.5.3 Matricea de indexare

Alegem elemente într-o matrice la fel cum am făcut-o pentru vectori, dar acum avem nevoie de doi indici. Elementul rând eu
•i coloana j a matricei A este notat cu A (i, j). Prin urmare, A (i, j)
în MATLAB se referă la elementul A ij de matrice A. Fi RST indicele este rând numărul •i al doilea indicele este coloană număr.
De exemplu, A (1,3) este un element Fi RST rând •i
al treilea coloană. Aici, A (1,3) = 3.

Corectarea orice intrare este u•or prin indexare. Aici înlocuim A (3,3) = 9 de
A (3,3) = 0. Rezultatul este

> > A (3,3) = 0 A =

1 2 3
4 5 6
7 8 0

21
Elementele unice ale unei matrice sunt accesate ca A (i, j), Unde eu ≥ 1 •i j ≥ 1. subscript zero sau negative nu sunt
acceptate în MATLAB.

2.5.4 Operatorul Colon

Operatorul de colon se va dovedi foarte util •i în•elegerea modului în care func•ionează este cheia e FFI ciente •i utilizarea
convenabilă a MATLAB. Aceasta are loc în mai multe forme erent di ff.

De multe ori trebuie să avem de a face cu matrice sau vectori care sunt prea mari pentru a introduce un element la un
moment dat. De exemplu, să presupunem că vrem să introduce•i un vector X constând din puncte (0, 0,1, 0,2, 0,3, · · ·, 5). Putem folosi
comanda

> > x = 0: 0,1: 5;

Vectorul rând are 51 de elemente.

2.5.5 spa•iere liniară

Pe de altă parte, există o comandă pentru a genera vectori liniar distan•ate: linspace. Este similar cu operatorul de colon
(:), dar oferă un control direct asupra numărului de puncte. De exemplu,

y = linspace (a, b)

generează un vector rând y din 100 puncte distan•ate liniar între •i incluzând A •i b.

y = linspace (a, b, n)

generează un vector rând y de n puncte distan•ate liniar între •i incluzând A •i b. Acest lucru este util atunci când vrem să
împartă un interval într-un număr de subintervale de aceea•i lungime. De exemplu,

> > theta = linspace (0,2 * pi, 101)

împarte intervalul [0, 2 π] în 100 subintervale egale, apoi crearea unui vector de 101 elemente.

2.5.6 Operatorul Colon într-o matrice

Operatorul de colon poate fi de asemenea folosite pentru a alege un anumit rând sau o coloană. De exemplu, declara•ia A (m: n, k:
l speci fi es rânduri m la n •i coloana k la l. Expresiile subscript se referă la por•iuni ale unei matrice. De exemplu,

22
> > A (2, :)
ans =
4 56

este a doua elemente rând de A.

Operatorul de colon poate fi de asemenea utilizat pentru a extrage un sub-matrice dintr-o matrice A.

> > A (:, 2: 3)


ans =
2 3

5 6

8 0

A (:, 2: 3) este o sub-matrice cu ultimele două coloane ale A.

Un rând sau o coloană a unei matrice poate fi eliminată, prin fixarea unui nul vector, [].

> > A (:, 2) = []


ans =
1 3

4 6

7 0

2.5.7 Crearea unui sub-matrice

Pentru a extrage un submatricii B format din rândurile 2 •i 3 •i coloanele 1 •i 2 ale matricei A,


urmează următoarele instruc•iuni

> > B = A ([2 3], [1 2]) B


=

4 5

7 8

Inversabile rândurile 1 •i 2 A, utiliza•i vectorul indicilor rând, împreună cu operatorul de colon.

> > C = A ([2 1 3], :) C


=

4 5 6
1 2 3
7 8 0

Este important de remarcat faptul că Operatorul de colon (:) standuri pentru toate coloanele sau toate rândurile. Pentru a crea o versiune vectorială a matricei A, urmează

următoarele instruc•iuni

23
> > A (:)
ans =

Submatricea cuprinzând intersec•ia rândurilor p la q •i coloane r la s este notat cu


A (p: q, r: s).

Ca un caz special, două puncte (:) ca rând sau coloană speci fi er coper•ile toate intrările din acel rând sau coloană; prin urmare

• A (:, j) este j coloană aa A, in timp ce

• A (i, :) este eu rând lea •i

• A (end, :) ponturi ultimul rând de A.

Cuvântul cheie Sfâr•it, folosit in A (end, :), reprezintă ultimul indice din speci fi ca•i dimensiune. Aici sunt cateva exemple.

>> =
AA

1 2 3
4 5 6
7 8 9

> > A (2: 3,2: 3) ans


=
5 6

8 9

> > A (final: -1: 1, end) ans


=
9

24
> > A ([1 3], [2 3]) ans =

2 3

8 9

2.5.8 rând •tergerea sau coloană

Pentru a •terge un rând sau o coloană dintr-o matrice, utiliza•i vector gol operator [].

> > A (3, :) = [] A =

1 2 3
4 5 6

Al treilea rând al matricei A este acum •ters. Pentru a restaura al treilea rând, folosim o tehnică pentru crearea unei matrice

> > A = [A (1, :); A (2,:); [7 8 0]] A =

1 2 3
4 5 6
7 8 0

Matrice A este acum restaurat la forma sa originală.

2.5.9 Dimensiune

Pentru a determina dimensiuni dintr-o matrice sau vector, utiliza•i comanda mărimea. De exemplu,

> > Dimensiunea


(A) ans =

3 3

înseamnă 3 rânduri •i 3 coloane. Sau

mai explicit cu,

>> [M, n] = dimensiunea (A)

25
2.5.10 Continuare

În cazul în care nu este posibil să tasta•i întreaga intrare pe aceea•i linie, utiliza•i perioade consecutive, numite o elipsă. . ., Pentru
continuarea semnal, apoi continua•i intrarea pe linia următoare.

B = [4/5 7,23 * tan (x) sqrt (6); ...


1/x^2 0 3 / (x * log (x)); ...
x-7 sqrt (3) x * sin (x)];

Re•ine•i că gol spa•ii în jurul valorii de +, -, = semnele sunt op•ionale, dar îmbunătă•esc lizibilitatea.

2.5.11 o matrice transpunere

transpune opera•iune este notat cu un apostrof sau un singur citat ( „). Se ips fl o matrice despre principala diagonală •i se
transformă un vector rând într-un vector coloană. Prin urmare,

>>
A“ans
=
1 472
583
60

Folosind algebra liniara nota•ie, transpusa m × n matrice reală A este n × m matrice care rezulta din interschimbarea
rândurile •i coloanele A. Matricea transpusa este notată
A T.

2.5.12 matrici concatenarea

Matrici poate fi alcătuit din sub-matrici. Aici este un exemplu. În primul rând, să ne amintim noastre anterioare matrice A.

A=
1 234
567
89

Noua matrice B va fi,

> > B = [A 10 * A; -A [1 0 0; 0 1 0; 0 0 1]] B =

1 2 3 10 20 30

26
4 5 6 40 50 60
7 8 9 70 80 90
- 1 -2 -3 1 0 0
- 4 -5 -6 0 1 0
- 7 -8 -9 0 0 1

2.5.13 generatoare Matrix

MATLAB oferă func•ii care generează matrici elementare. Matricea de zerouri, matricea celor, iar matricea de identitate
sunt returnate de func•iile zerouri, cele, •i ochi,
respectiv.

Tabelul 2.4: matrici elementare

ochi (m, n) Returnează o matrice m-cu-n cu 1 pe diagonala principală


ochi (n) Returnează un n-de n-matrice pătrată identitate
zerouri (m, n) Returnează o matrice m-cu-n de zerouri
cele (m, n) Returnează o matrice m-cu-n celor
diag (A) Extrage diagonala matricei A
rand (m, n) Returnează o matrice m-cu-n de numere aleatoare

Pentru o listă completă a matrici elementare •i manipulări matrice, tip ajutor ELMAT
sau doc ELMAT. Aici sunt cateva exemple:

1. > > b = onă (3,1) b =

Echivalent, putem definim b ca >> b = [1; 1; 1]

2. > > Ochi (3)


ans =

1 0 0
0 1 0
0 0 1

3. > > c = zerouri (2,3) c


=
0 0 0

27
0 0 0

În plus, este important să ne amintim că cele trei opera•ii elementare ale plus (+), scădere ( -), •i multiplicare ( *) se
aplică •i matrici de fiecare dată când dimensiunile sunt compatibil.

Două alte func•ii importante de generare a matricei sunt Rand •i randn, care generează matrici de (pseudo-)
numere aleatoare folosind aceea•i sintaxă ca •i ochi.

In plus, matrici pot fi construite într-o formă de bloc. Cu C de definit de C = [1 2; 3 4], putem crea o matrice D după
cum urmează

> > D = [zerouri C (2); cele (2) ochi (2)] D =

1 2 0 0
3 4 0 0
1 1 1 0
1 1 0 1

2.5.14 matrici speciale

MATLAB oferă o serie de matrici speciale (vezi Tabelul 2.5). Aceste matrice au proprietă•i interesante care le fac utile
pentru construirea •i exemple pentru algoritmi de testare. Pentru mai multe informa•ii, consulta•i documenta•ia MATLAB.

Tabelul 2.5: matrici speciale

Hilb matrice Hilbert


invhilb matrice Inverse Hilbert
magie pătrat magic
pascal matrice Pascal
Toeplitz matrice Toeplitz
Vander matrice Vandermonde
wilkinson matrice de testare eigenvalue Wilkinson

28
2.6 Exerci•ii

Notă: Datorită clasei de predare în această toamna trimestru 2005, Probleme sunt temporar
eliminat din această sec•iune.

29
capitolul 3

opera•iunile de matrice •i ecua•ii liniare

3.1 opera•iuni Array

MATLAB are două di ff erent tipuri de opera•ii aritmetice: opera•ii aritmetice matrice •i opera•ii aritmetice matrice. Am
văzut opera•ii aritmetice matrice în laboratorul precedent. Acum, suntem interesa•i în opera•iunile de matrice.

3.1.1 opera•ii aritmetice Matrix

A•a cum am men•ionat mai devreme, MATLAB permite opera•ii aritmetice: +, -, *, •i care urmează să fie efectuate pe matrici. Prin
urmare,

A + B sau B + A este valabil în cazul în care A •i B sunt de aceea•i dimensiune

A*B este valabil în cazul în care A Numărul lui de coloane egali B numărul lui de rânduri

A^2 este valabil în cazul în care A este pătrat •i egali A * A

α * A sau A* α înmul•iri fiecare element al A de α

3.1.2 Array opera•ii aritmetice

Pe de altă parte, opera•iile aritmetice sau matrice opera•iuni de matrice pe scurt, terminat
element-cu element. Caracterul perioadă,., Distinge opera•iile matrice din opera•iile matrice. Cu toate acestea, întrucât
opera•iunile de matrice •i matrice sunt acelea•i pentru plus (+) •i scădere ( -), perechile de caractere (. +) •i (. -) nu sunt
utilizate. Lista operatorilor de matrice este prezentată mai jos în Tabelul 3.2. Dacă A •i B sunt două matrici de aceea•i
dimensiune cu elemente A = [ A ij] •i B = [ b ij], atunci comanda

30
. * Element-by-element de multiplicare
. / Element-by-element de divizare
. ^ Element-by-element de exponentiation

Tabelul 3.1: Operatorii Array

> > C = A. * B

produce o altă matrice C de aceea•i mărime cu elemente c ij = A ij b ij. De exemplu, folosind acelea•i 3 × 3 matrici,

• • • •
12345 10 20 30 40
A= • 6789 • . B= • 50 60 70 80 •
90

noi avem,

> > C = A. * BC
=
10 40 90
160 250 360
490 640 810

Pentru a ridica un scalar la o putere, vom folosi, de exemplu, comanda 10 ^ 2. Dacă dorim ca opera•iunea să fie
aplicată fiecărui element al unei matrice, folosim. ^ 2. De exemplu, dacă dorim să producem o nouă matrice ale cărei
elemente sunt pătratul elementelor matricei A, noi intram

> > A. ^ 2
ans =
1 4 9
16 25 36
49 64 81

Rela•iile de mai jos rezumă opera•iile de mai sus. Pentru a simplifica, să ia în considerare doi vectori U •i V cu
elemente U = [u i] •i V = [v j].

U. * V produce [ u 1 v 1 u 2 v 2. . . u n v n]
U./V produce [ u 1 / v 1 u 2 / v 2. . . u n / v n]
U.V produce [ u1v u1 v 2 2. . . u v n n]

31
Opera•iunea Matrix Array

Plus + +
Scădere - -
Multiplicare * .*
Divizia / ./
diviziunea stânga \ .\
exponentiation .ˆ

Tabelul 3.2: Rezumatul opera•iilor de matrice •i matrice

3.2 Rezolvarea ecua•iilor liniare

Una dintre problemele întâlnite cel mai frecvent în •tiin•i fi c calcul este solu•ia sistemelor de ecua•ii liniare simultane. Cu
nota•ie matrice, un sistem de ecua•ii liniare simultane este scris

Ax = b (3.1)

în cazul în care există cât mai multe ecua•ii ca necunoscute. A este o matrice dat pătrat de ordine n, b este un vector
coloană dat de n componente, •i X este un vector coloană necunoscută n componente. În algebra liniară învă•ăm că
solu•ia Ax = b poate fi scris ca x = A - 1 b, Unde
A - 1 este inversul A.

De exemplu, lua•i în considerare următorul sistem de ecua•ii liniare


• x+2y+3z=14x+5y+6z
=17x+8y

=1

COE ffi ciente matrice A este


• • • •
12345 1

A= • 6789 • •i vectorul b = • 1 •
1

Cu nota•ie matrice, un sistem de ecua•ii liniare simultane este scris

Ax = b (3.2)

Această ecua•ie poate fi rezolvată pentru X folosind algebra liniară. Rezultatul este x = A - 1 b.

Există de obicei, două moduri de a rezolva pentru X în MATLAB:

1. Fi RST unul este de a folosi inversa matricei, INV.

32
> > A = [1 2 3; 4 5 6; 7 8 0];
> > b = [1; 1; 1];
> > x = inv (A) * bx =

- 1.0000
1.0000
- .0000

2. Al doilea este de a utiliza backslash (\) operator. Numeric spatele algoritmului


acest operator computerizare e FFI ciente. Acesta este un mod numeric fiabil de rezolvare sistem de ecua•ii
liniare folosind un proces bine cunoscut de eliminare Gauss.

> > A = [1 2 3; 4 5 6; 7 8 0];


> > b = [1; 1; 1];
> > x = A \ bx =

- 1.0000
1.0000
- .0000

Această problemă este în centrul multor probleme în calcul •tiin•i fi c. Prin urmare, este important ca noi să •tim cum să
rezolve acest tip de e FFI problemă cient.

Acum, •tim cum să rezolve un sistem de ecua•ii liniare. În plus fa•ă de acest lucru, vom vedea câteva detalii
suplimentare, care se referă la acest subiect particular.

3.2.1 Matricea inversă

Să considerăm aceea•i matrice A.


• •
12345
A= • 6780 •

Calcularea inversul A manual nu este, probabil, o lucrare plăcută. Aici handcalculation de A - 1 dă ca rezultat nal fi:

• •
- 16 8 - 1 14 - 7 2
A-1= 1 • •
9
-12-1

În MATLAB, cu toate acestea, ea devine la fel de simplu ca •i următoarele comenzi:

33
> > A = [1 2 3; 4 5 6; 7 8 0];
> > inv (A)
ans =
- 1.7778 0.8889 - 0.1111
1.5556 - 0.7778 0.2222
- 0.1111 0.2222 - 0.1111

care este similar cu: • •


- 16 8 - 1 14 - 7
A-1= 1 • 2 •
9
-1 2-1

iar determinantul A este

> > det (A)


ans =
27

Pentru detalii suplimentare despre algebra liniară numerică aplicată, vezi [10] •i [11].

3.2.2 Func•ii Matrix

MATLAB oferă multe func•ii de matrice pentru diverse manipulări matrice / vector; vezi Tabelul 3.3 pentru unele dintre
aceste func•ii. Utiliza•i ajutorul online MATLAB pentru a fi nd modul de utilizare a acestor func•ii.

Det Determinant
diag matrici diagonale •i diagonalele unei matrice
EIG Vectori •i valori proprii
INV Matricea inversă
normă Normele matriceale •i vectoriale

rang Numărul de rânduri sau coloane liniar independente

Tabelul 3.3: Func•ii Matrix

3.3 Exerci•ii

Notă: Datorită clasei de predare în această toamna trimestru 2005, Probleme sunt temporar
eliminat din această sec•iune.

34
capitolul 4

Introducere în programare în MATLAB

4.1 Introducere

Până în prezent, în aceste sesiuni de laborator, toate comenzile au fost executate în fereastra de comandă. Problema
este că comenzile introduse în fereastra de comandă nu poate fi salvat •i executat din nou, de mai multe ori. Prin
urmare, o di ff erent mod de a executa comenzi în mod repetat cu MATLAB este:

1. să crea o fi lul cu o listă de comenzi,

2. salva FI le •i

3. alerga fi lul.

Dacă este necesar, corecturi sau modificări pot fi făcute la comenzile din fi lul. FI les care sunt utilizate în acest scop sunt
denumite script-Fi les sau script-uri pe scurt.

Această sec•iune cuprinde următoarele subiecte:

• Script-uri M-File

• Func•ii M-File

4.2 Script-M-File

A script fi lul este o fi extern Le care con•ine o secven•ă de instruc•iuni MATLAB. Script-Fi les au o extensie fi lename. m •i
sunt adesea numite M- fi les. M- Fi les poate fi script-uri care pur •i simplu executa o serie de declara•ii MATLAB, sau pot
fi func•ii care poate accepta argumente •i poate produce una sau mai multe ie•iri.

35
4.2.1 Exemple

Aici sunt două scripturi simple.

Exemplul 1

Lua•i în considerare sistemul de ecua•ii: ••• x + 2 y + 3 z = 1

3x+3y+4z=12x+3y+3z
=2

Găse•te solu•ia X la sistemul de ecua•ii.

Soluţie:

• Utiliza•i MATLAB editor pentru a crea o fi lul: Fişier → Nou → M- fi lul.

• Introduce•i următoarele afirma•ii în fi lul:

A = [1 2 3; 3 3 4; 2 3 3]; b = [1; 1; 2]; x =


A\b

• Salva•i fi lul, de exemplu, example1.m.

• Porne•te fi lul, în linia de comandă, prin tastare:

> > example1 x


=
- 0.5000
1.5000
- 0.5000

După finalizarea execu•ie, variabilele ( A, b, •i X) rămân în spa•iul de lucru. Pentru a vedea o listă a acestora, introduce•i whos
în linia de comandă.

Notă: Editorul MATLAB este atât un editor de text specializat pentru crearea M- fi Les si un depanator MATLAB grafic.
Editorul MATLAB are numeroase meniuri pentru sarcini, cum ar fi
economisire, vizualizare, •i depanare. Pentru că unele efectuează verificări simple •i, de asemenea, folose•te culoarea pentru a di ff
erentiate între diferitele elemente de coduri, acest editor de text este recomandat ca instrument de alegere pentru scrierea •i editarea

M- fi les. Există un alt mod de a deschide editorul:

36
> > Editare

sau

> > edita filename.m

a deschide filename.m.

Exemplul 2

Se trasează următoarele func•ii cosinus, y 1 = 2 cos ( X y 2 = cos ( X), •i y 3 = 0.5 * cos ( X), în intervalul 0 ≤ X ≤ 2 π. Acest exemplu
a fost prezentată în capitolul precedent. Aici am pus comenzile într-un fi lul.

• Creează fi lul, să zicem example2.m, care con•ine următoarele comenzi:

x = 0: pi / 100: 2 pi *; y1 = 2 *
cos (x); y2 = cos (x); Y3 =
0,5 * cos (x);

plot (x, y1, '-', x, y2, '-', x, y3, ':') xlabel ( '0 \ leq x \
leq 2 \ pi') ylabel ( 'func•ii cosinus')

Legenda ( '2 * cos (x)', 'cos (x)', '0.5 * cos (x)') titlu ( 'exemplu tipic
de mai multe parcele') axa ([0 2 * pi -3 3])

• Rula•i fi lul prin tastarea example2 în fereastra de comandă.

4.2.2 Script-side e ff ecta

Toate variabilele create într-un script fi lul se adaugă la spa•iul de lucru. Acest lucru poate avea e nedorite ff ecta, deoarece:

• Variabilele deja existente în spa•iul de lucru poate fi suprascrisă.

• Executarea script-ul poate fi un ff de variabilele reflectat de stat în spa•iul de lucru.

Ca rezultat, deoarece script-uri au unele side-e nedorit ff ecta, este mai bine să cod orice aplica•ii complicate,
folosind mai degrabă func•ia M- fi lul.

37
4.3 Func•ii M-File

A•a cum am men•ionat mai devreme, func•iile sunt programe (sau rutine) care acceptă intrare argumente •i retur produc•ie argumente.
Fiecare M- fi lul func•ia (sau funcţie sau M- fi lul pentru scurt) î•i are propriu
zona de spa•iu de lucru, separat de spa•iul de lucru MATLAB bază.

4.3.1 Anatomia unei func•ii M-File

Această func•ie simplă arată păr•ile de bază ale unui M- fi lul.

Func•ia f = factorial (n) (1)


% FACTORIAL (N) returnează factorialul N. (2)
% Compute o valoare factorial. (3)

f = prod (1: n); (4)

Linia prima fi a unei func•ii M- fi lul începe cu cuvântul cheie funcţie. Acesta oferă func•ia
Nume •i ordinea argumente. În cazul func•iei factorial, există până la un argument de ie•ire •i un argument de intrare.
Tabelul 4.1 rezumă M- fi lul func•iei. Ca un exemplu, pentru n = 5, rezultatul este,

> > f = factorial (5) f =

120

Tabelul 4.1: Anatomia unei func•ii M-File

Partea nr. M- fi lul Element Descriere

(1) Funcţie Definim numele func•iei, precum •i


de defini•ie numărul •i ordinea de intrare •i
linia argumente de ie•ire
(2) line H1 O descriere sumară o linie a programului, afi•at
atunci când solicita•i Ajutor

(3) text de ajutor O descriere mai detaliată a programului

(4) corp Func•ie Codul de program care efectuează


calculele reale

Ambii func•ii •i script-uri pot avea toate aceste păr•i, cu excep•ia Func•ia line defini•ie fi care se aplică funcţie numai.

38
În plus, este important de men•ionat că numele func•iei trebuie să înceapă cu o literă, •i trebuie să nu mai mult
decât maximum de 63 de caractere să fie. Mai mult decât atât, numele textului fi lul pe care le salva•i va consta în
numele func•iei cu extensia. m. Astfel, exemplul de mai sus ar fi fi lul factorial.m.

Tabelul 4.2 rezumă di ff erences între script-uri •i func•ii.

Tabelul 4.2: Di ff erence între script-uri •i func•ii

Scripturi funcţii

- Nu accepta•i de intrare - Poate accepta argumente de intrare •i


argumente sau de ie•ire a reveni argumente de ie•ire de retur. argumente.

- Stoca•i variabilelor dintr-un - Stoca•i variabilelor dintr-un spa•iu de lucru

spa•iu de lucru care este partajat internă la func•ia.


cu alte script-uri
- Sunt utile pentru automatizarea - sunt utile pentru extinderea MATLAB o serie de comenzi
limba pentru aplica•ia dvs.

39
4.3.2 intrare •i de ie•ire argumente

După cum sa men•ionat mai sus, argumentele de intrare sunt listate în interiorul paranteze după numele func•iei. Argumentele de
ie•ire sunt enumerate în interiorul parantezelor de pe partea stângă. Acestea sunt utilizate pentru a transfera ie•irea din func•ia fi lul.
Forma generală arata ca acest lucru

Func•ia [ie•iri] = function_name (intrări)

Func•ia fi lul poate avea nici unul, unul sau mai multe argumente de ie•ire. Tabelul 4.3 ilustrează câteva combina•ii posibile
de intrare •i de ie•ire argumente.

Tabelul 4.3: Exemplu de intrare •i de ie•ire argumente

Func•ia C = FtoC (F) Un argument de intrare •i un


argument de ie•ire
Zona func•iei = TrapArea (a, b, h) Trei intrări •i o ie•ire
Func•ia [h, d] = mi•care (v, unghi) Două intrări •i două ie•iri

4.4 de intrare la un script fi lul

Atunci când un script fi le este executat, variabilele care sunt utilizate în calculele din cadrul fi lul trebuie să fi atribuite
valori. Atribuirea unei valori unei variabile se poate face în trei moduri.

1. Variabila este de definit în script fi lul.

2. Variabila este de definit în fereastra de comandă.

3. Variabila este introdusă atunci când scriptul este executat.

Am văzut deja cele două cazuri fi RST. Aici, ne vom concentra aten•ia asupra a treia. În acest caz, variabila este de
definit în script fi lul. Când fi lul este executat, utilizatorul este
vi se solicită pentru a atribui o valoare variabilei în linia de comandă. Acest lucru se realizează prin intrare comanda. Aici
este un exemplu.

% Acest fi•ier script calculează media de puncte marcate% în trei jocuri.

Punctul% din fiecare joc sunt atribuite unei variabile% utilizând comanda „de
intrare“.

game1 = input ( „Introduce•i punctele marcate în primul joc“);

40
game2 = input ( „Introduce•i punctele marcate în al doilea joc“); game3 = input ( „Introduce•i
punctele marcate în al treilea joc“); = Media (game1 + game2 + game3) / 3

Următoarele arată linia de comandă atunci când acest script fi lul (salvat ca Exemplul 3) este executat.

> > Exemplul 3


> > Introduce•i punctele marcate în primul joc 15
> > Introduce•i punctele marcate în al doilea joc 23
> > Introduce•i punctele marcate în al treilea joc 10

= media
16

intrare comandă poate fi de asemenea folosit pentru a atribui şir la o variabilă. Pentru mai multe informa•ii, consulta•i documenta•ia
MATLAB.

Un exemplu tipic al M- fi lul de programare func•ie poate fi găsită într-un document recent care se referea la
solu•ia di obi•nuită ff erential ecua•ia (ODE) [12].

4.5 Comenzi de ie•ire

A•a cum sa discutat mai înainte, MATLAB generează automat un afişa atunci când comenzile sunt executate. În plus fa•ă
de acest ecran automat, MATLAB are mai multe comenzi care pot fi folosite pentru a genera display-uri sau ie•iri.

Două comenzi care sunt frecvent utilizate pentru a genera ie•ire sunt: disp •i fprintf.
Principalele di ff erences între aceste două comenzi pot fi rezumate după cum urmează (Tabelul
4.4).

Tabelul 4.4: disp •i fprintf comenzi

disp . Simplu de utilizat.


. Furnizarea de control limitat asupra aspectului de ie•ire

fprintf. Pu•in mai complicat decât disp.


. Oferă un control total asupra aspectului de ie•ire

41
4.6 Exerci•ii

1. Liz cumpără trei mere, o duzină de banane •i un pepene galben pentru $ 2.36. Bob cumpără o duzină de mere •i două pepenele
galben pentru $ 5.26. Carol cumpără două banane •i trei pepenele galben pentru $ 2.77. Cât de mult a face piese unice din
fiecare fruct de cost?

2. Scrieti o functie fi lul care temperatura converti•i în grade Fahrenheit ( ◦ F) în grade Celsius ( ◦ C). Utilizare intrare •i fprintf
comenzi pentru a afi•a o combina•ie de text •i numere. Să ne amintim formularea de conversie, C = 5/9 * ( F - 32).

3. Scrieti o functie de utilizator-de fi nite MATLAB, cu două de intrare •i două de ie•ire argumente care determină
înăl•imea în centimetri ( cm) •i masa în kilograme ( kg) unei persoane de la înăl•imea lui în inci ( în.) •i greutatea în
livre ( livre).

(A) Se determină în unită•i SI înăl•imea •i masa 5 ft.15 în. Persoană care greutate 180
livre.

(B) să determine propria înăl•imea •i greutatea în unită•i SI.

42
capitolul 5

Controlul flux •i operatori

5.1 Introducere

MATLAB este, de asemenea, un limbaj de programare. Ca •i alte limbaje de programare calculator, MATLAB are unele
structuri de luare a deciziilor pentru controlul execu•iei comenzii. Acestea de luare a deciziilor sau controlul fl ow structuri
includ pentru bucle, in timp ce bucle, •i if-else-end
constructii. fl ow de control structuri sunt adesea folosite în script-M- fi les •i func•ia M- fi les.

Prin crearea unui fi lul cu extensia. m, putem scrie cu u•urin•ă •i programe de rulare. Nu avem nevoie să compila deoarece
programul MATLAB este un limbaj de interpretare (nu compilat). MATLAB are mii de func•ii, •i pute•i adăuga propriul dvs.
folosind M 'Fi les.

MATLAB oferă mai multe instrumente care pot fi folosite pentru a controla fl ow a unui program ( scenariu sau funcţie).
Într-un program simplu, a•a cum se arată în capitolul anterior, comenzile sunt executate una după alta. Aici vom
introduce structura de control fl ow care fac posibilă pentru a sări de comenzi sau de a executa speci fi grup de comenzi.

5.2 Controlul flux

MATLAB are patru fl ow de control structuri: a dacă declara•ie, pentru au bucle, in timp ce buclă, •i intrerupator afirma•ie.

5.2.1 „“ Dacă ... sfâr•itul „“ structura

MATLAB sprijină variantele de „ dacă “Construct.

• dacă ... final

• dacă ... altceva ... capăt

43
• dacă ... elseif ... altceva ... capăt

Cea mai simplă forma enantiomerului dacă declara•ie este

dacă expresia
end declara•ii

Iată câteva exemple bazate pe formula pătratică familiare.

1. discr = b * b - 4 * a * c; dacă
discr <0
disp ( 'Aten•ie: discriminant este negativ, rădăcinile sunt imaginare'); Sfâr•it

2. discr = b * b - 4 * a * c; dacă
discr <0
disp ( 'Aten•ie: discriminant este negativ, rădăcinile sunt imaginare'); altfel

disp ( „Radacinile sunt reale, dar poate fi repetată“) de capăt

3. discr = b * b - 4 * a * c; dacă
discr <0
disp ( 'Aten•ie: discriminant este negativ, rădăcinile sunt imaginare'); elseif discr
== 0

disp ( 'discriminantă este zero, rădăcinile se repetă') else

disp ( „Radacinile sunt reale“) de capăt

Trebuie remarcat faptul că:

• elseif nu are nici un spa•iu între altfel •i dacă ( un cuvânt)

• fără virgulă (;) este necesară la sfâr•itul liniilor care con•in în cazul în care, altfel, la sfâr•itul

• indentare dacă bloc nu este necesară, dar a facilita citirea.

• Sfâr•it este necesară declara•ie

44
5.2.2 Operatori rela•ionali •i logici

Un operator rela•ional compară două numere prin determinarea dacă o compara•ie este Adevărat
sau fals. Operatorii relationali sunt prezentate în Tabelul 5.1.

Tabelul 5.1: rela•ională •i logice operatorilor

Operator Descriere

> Mai mare ca


< Mai pu•in decât

> = Mai mare sau egal cu


<= Mai mic sau egal cu ==
Egal cu
~= Nu este egal cu &
operatorul •I
| operatorul SAU
~ operatorul NU

Re•ine•i că „egal cu“ operatorul rela•ional este format din două semne egale (==) (fără spa•iu între ele), deoarece = este
rezervat pentru misiune operator.

5.2.3 „“ Pentru ... sfâr•itul „“ buclă

În pentru ... final buclă, executarea unei comenzi se repetă la un număr fix public •i predeterminat de ori. Sintaxa este

pentru variabila = expresie


end declara•ii

De obicei, expresie este un vector al formei i: s: j. Un exemplu simplu de pentru buclă este

pentru II = 1: 5
x = ii * ii
capăt

Este o idee bună pentru a cresta bucle pentru a fi citite, mai ales atunci când acestea sunt imbricate. Re•ine•i că editorul
MATLAB face automat.

Multiplu pentru bucle pot fi imbricate, caz în care zim•uire ajută la îmbunătă•irea lizibilită•ii. Următoarele afirma•ii
formează 5-by-5 ​matrice simetrice A cu ( i, j) element
i / j pentru j ≥ I:

45
n = 5; A = ochi (n); pentru j =
2: n
pentru i = 1: j-1
A (i, j) = i / j; A (j,
i) = i / j; final final

5.2.4 „“ În timp ce ... sfâr•itul „“ buclă

Această buclă este utilizată atunci când numărul de trece nu este speci fi ed. Buclarea continuă până când o condi•ie este satisfăcută a
declarat ed. in timp ce buclă are forma:

în timp ce expresia
end declara•ii

declaraţii sunt executate atât timp cât expresie este adevarat.

x=1
în timp ce x <= 10
x=3*x
capăt

Este important de remarcat faptul că în cazul în care condi•ia din Buclarea nu este bine de definit, Buclarea va continua inde
infinit. Dacă se întâmplă acest lucru, putem opri executia prin apăsarea Ctrl-C.

5.2.5 Alte fl ow structuri

• pauză afirma•ie. A in timp ce buclă poate fi încheiată cu pauză declara•ie, care trece de control la prima
declara•ie după Fi corespunzător Sfâr•it. pauză
declara•ie poate fi, de asemenea, utilizat pentru a ie•i dintr-un pentru buclă.

• continua declara•ie poate fi, de asemenea, utilizat pentru a ie•i dintr-un pentru bucla pentru a trece imediat la
următoarea itera•ie a buclei, sărind peste declara•iile rămase în buclă.

• Alte declara•ii de control includ întoarcere, continuă, comutator, etc Pentru mai multe detalii despre aceste comenzi,
documenta•ie consulul MATLAB.

46
5.2.6 operator prioritate

Putem construi expresii care folosesc orice combina•ie de aritmetică, rela•ională, •i operatori logici. regulilor de
preceden•ă determină ordinea în care MATLAB evalueaza o expresie. Am văzut deja acest lucru în „Tutorial Lectiile“.

Aici vom adăuga al•i operatori din listă. Regulile de preceden•ă pentru MATLAB sunt prezentate în această listă (Tabelul
5.2), comandat de la cel mai inalt ( 1) cea mai mică ( 9) la nivel prioritate. Operatorii sunt evaluate de la stânga la dreapta.

Tabelul 5.2: operator prioritate

Operator preceden•ă

1 Parantezele () 2
Transpusa (. "), putere (.), puterea de matrice () 3
plus unar (+), minus unar ( -), nega•ie logică ( ~)
4 Multiplicare (. *), diviziune dreapta (. /), Divizare stânga (. \), Matrice de
multiplicare ( *), matrice divizare dreapta (/), matricea din stânga divizare (\) 5

Plus (+), scădere ( -)


6 Operatorul Colon (7 :)
Mai pu•in de (<), mai mic sau egal cu ( ≤), mai mare (>), mai mare sau egal cu ( ≥), egal
cu (==), nu egal cu ( ~ =)
8 Element-în•elept •i, (&) 9
Element-în•elept sau, (|)

5.3 Salvarea de ie•ire la o fi lul

În plus fa•ă de afi•area de ie•ire de pe ecran, comanda fprintf pot fi utilizate pentru scrierea de ie•ire într-o fi lul. Datele
salvate pot fi folosite ulterior de către MATLAB sau alte software-uri.

Pentru a salva rezultatele unor calcule la o fi lul într-un format de text necesită următorii pa•i:

1. Deschide•i o fi lul folosind fopen

2. Scrie•i ie•ire utilizând fprintf

3. Închide•i fi lul utilizând fclose

Aici este un exemplu (scenariu) de utilizare.

47
% Scriere ni•te •iruri de lungime variabilă la un op file = fopen (
'weekdays.txt', 'greutate');
fprintf (op, 'Duminica \ nMonday \ nTuesday \ nWednesday \ n'); fprintf (op, 'joi \
nFriday \ nSaturday \ n'); fclose (op);

Aceasta fi lul ( weekdays.txt) poate fi deschis cu orice program care poate citi. txt fi lul.

5.4 Exerci•ii

Notă: Datorită clasei de predare în această toamna trimestru 2005, Probleme sunt temporar
eliminat din această sec•iune.

48
Capitolul 6

Debugging M- Fi les

6.1 Introducere

Această sec•iune introduce tehnici generale de constatare erori în M- fi les. debugging este procesul prin care să izola•i
•i fi x erori în program sau cod.

Debugging ajută la corecta două tipuri de erori:

• erori de sintaxă - De exemplu, omiterea unei paranteze sau MISSPELLING un nume de func•ie.

• erori run-time - erori run-time sunt de obicei evidente •i di ffi cult pentru a urmări în jos. Ele produc rezultate
nea•teptate.

6.2 procesul de depanare

Putem depana M- fi le folosind Editor / Debugger precum •i cu ajutorul func•iilor de depanare din fereastra de comandă.
Procesul de depanare este format din

• Pregătirea pentru depanare

• Setarea breakpoints

• Rularea unui M- fi lul cu puncte de întrerupere

• Ie•ind printr-un M- fi lul

• Examinarea valorilor

• corectarea problemelor

• Terminarea depanare

49
6.2.1 Pregătirea pentru depanare

Aici vom folosi Editor / Debugger pentru depanare. Următoarele măsuri pentru a se pregăti pentru depanare:

• Deschide•i fi lul

• Salvează modificările

• Asigura•i-vă că executa•i fi lul •i orice dosare îl nume•te sunt în directoarele care sunt pe calea de căutare.

6.2.2 Setarea punctelor de întrerupere

Set breakpoints pentru a întrerupe executarea func•iei, astfel încât să putem examina în cazul în care ar putea fi problema. Există trei tipuri
de bază de puncte de întrerupere:

• Un breakpoint standard care se opre•te la o linie fi specificata.

• Un punct de întrerupere condi•ionată, care se opre•te la o linie fi specificata si in conditii fi specificata.

• Un punct de întrerupere eroare care se opre•te atunci când se produce tipul speci fi cat de avertizare, eroare, NaN, sau în valoare Nite fi.

Nu pute•i seta puncte de întrerupere în timp ce MATLAB este ocupat, de exemplu, care rulează un M- fi lul.

6.2.3 Rularea cu punctele de întrerupere

După setarea de breakpoint, executa•i M- fi lul de la Editor / Debugger sau din fereastra de comandă. Rularea M- fi lul
rezultate în următoarele:

• Prompterul în fereastra de comandă se schimbă în

K >>

indicând faptul că MATLAB este în modul de depanare.

• Programul pauze, la Fi RST Breakpoint. Acest lucru înseamnă că linia va fi executat când continua•i. Pauza este
indicat de săgeata verde.

• În breakpoint, putem examina variabilă, pas prin programe, •i a alerga alte func•ii de apelare.

50
6.2.4 Valori Examinarea

În timp ce programul este întrerupt, putem vedea valoarea oricărei variabile în prezent în spa•iul de lucru. Examina•i valorile
atunci când vrem să vedem dacă o linie de cod a produs rezultatul a•teptat sau nu. Dacă rezultatul este cum era de a•teptat,
pas la linia următoare, •i va continua să fie difuzate. În cazul în care rezultatul nu este cum era de a•teptat, atunci acea linie,
sau linia anterioară, con•ine o
eroare. Când vom rula un program, spa•iul de lucru curent este afi•at în Grămadă Fi ELD. Utilizare care
sau whos pentru a lista variabilelor din spa•iul de lucru curent.

Se afi•ează ca valori datatips

În primul rând, vom pozi•iona cursorul la stânga unei variabile pe acea linie. Apare valoarea sa actuală. Aceasta se
nume•te datatip, care este ca un tooltip pentru date. Dacă ave•i probleme cu obtinerea de datatip să apară, face•i clic pe
linie •i apoi muta•i cursorul lângă variabila.

6.2.5 Corectarea •i depanare se termină

In timp ce depanare, putem schimba valoarea unei variabile pentru a vedea dacă nou Valoarea produce rezultate a•teptate. În timp
ce programul este întrerupt, atribuie o nouă valoare a variabilei în fereastra de comandă, browser-ul spa•iu de lucru, sau Array
Editor. Apoi, continuă să fie difuzate •i pas cu pas prin intermediul programului.

6.2.6 depanare Terminarea

După identificarea unei probleme, se încheie sesiunea de depanare. Este cel mai bine să renun•e modul de depanare înainte de a edita un
M- fi lul. În caz contrar, pute•i ob•ine rezultate nea•teptate atunci când executa•i fi lul. Pentru a termina depanare, selecta•i Mod Debug Exit de
la debug meniul.

6.2.7 Corectarea unui M- fi lul

Pentru a corecta erorile într-un M- fi lul,

• Părăsi•i de depanare

• Nu face modificări la un M- fi lul în timp ce MATLAB este în modul de depanare

• Efectuare de modificări la M- fi lul

• Salva•i M- fi lul

• breakpoints clare

51
• Rula•i M- fi lul din nou, pentru a fi siguri că produce rezultatele a•teptate.

Pentru detalii cu privire la procesul de depanare, consulta•i documenta•ia MATLAB.

52
Anexa A

Rezumatul comenzilor

A.1 Tabel: operatori matematici •i caractere speciale

caracter Descriere

+ Plus
- Scădere
* Multiplicarea (scalar •i matrice)
/ Divizia (dreapta)
Putere sau exponentiere:
Colon; creează vectori cu elemente egal distan•ate;
Punct şi virgulă; afi•a suprimă; capete rând în matrice
. Virgulă; Separă subscript matrice
... Continuarea liniilor%
La sută; denotă un comentariu; speci fi es formatul de ie•ire
'
apostroful; creează string; speci fi es matricea transpusa =
Operator de atribuire ()
parantezele; cuprinde elemente de matrice •i argumente de intrare []
între paranteze; cuprinde elemente de matrice •i argumente de ie•ire

53
A.2 Tabel: operatorii Array

caracter Descriere

.* multiplicare Array
./ Array (dreapta) diviziune
. putere Array
.\ Array (stânga) diviziune
. '
Array (neconjugat) transpusa

A.3 Tabel: Operatori rela•ionali •i logici

caracter Descriere

< Mai pu•in decât

≤ Mai mic sau egal cu


> Mai mare ca
≥ Mai mare sau egal cu ==
Egal cu
~= Nu este egal cu &
Logică sau element în•elept •i
| Logică sau element în•elept sau &&
Scurt-circuit •i
|| Sau scurtcircuitului

54
A.4 Tabel: Gestionarea spa•iului de lucru •i a fi lul comenzi

comandă Descriere

CD Schimbă directorul curent


CLC •terge•i fereastra de comandă
curata tot) Elimină toate variabilele din spa•iul de lucru
x clare Scoate•i x din spa•iul de lucru
copiaza fisier Copia•i fi lul sau director
•terge •terge•i fi les
dir listare director de afi•are
exista Verifica•i dacă variabile sau func•ii sunt de fi nite
Ajutor Afi•ează ajutor pentru func•iile MATLAB
cauta Caută cuvânt speci fi cată în toate intrările de ajutor
mkdir Asigura•i-director nou
movefile Muta•i fi lul sau director
PWD Identifica•i directorul curent
rmdir director Elimina•i
tip Afi•ează con•inutul de fi lul
ce Listă MATLAB Fi les în directorul curent
care Găsi•i func•ii •i Fi les
care Afi•ează variabile aflate în prezent în spa•iul de lucru
whos Afi•a•i informa•ii despre variabilele din spa•iul de lucru

A.5 Tabel: Prede definit variabile •i constante matematice

Descriere variabilă

ans Valoarea ultimei variabile (răspuns)


eps În virgulă mobilă cu precizie relativă
eu unitatea imaginară a unui număr complex
Inf În fi tate ( ∞)
eps În virgulă mobilă cu precizie relativă
j unitatea imaginară a unui număr complex
NaN Nu este un număr

pi Numarul π ( 3.14159. . .)

55
A.6 Tabel: matrici elementare •i matrice

comandă Descriere

ochi Matrice de identitate

linspace Generarea de vectori de spa•iu liniar


cele Crea•i matrice de toate cele
Rand distribuite uniform numere aleatoare •i matrice
zerouri Crea•i matrice de zerouri

A.7 Tabel: Arrays •i matricele: Informa•ii de bază

comandă Descriere

disp Afi•a•i text sau matrice


este gol A determina dacă de intrare este matricea goală

este egal matrice de testare pentru egalitate

lungime Lungimea vectorului


ndims Numărul de dimensiuni
numel Număr de elemente
mărimea Mărimea matricei

A.8 Tabel: Arrays •i matricele: opera•iuni •i manipulare

comandă Descriere

cruce Vector produs transversală

diag matrici diagonale •i diagonalele matricei


punct Vector produs dot
Sfâr•it Indica•i ultimul indice de matrice
găsi Găsi•i indicii de elemente nenule
Kron produs Tensor Kronecker
max Valoarea maximă a matrice
min Valoarea minimă a matrice
prod Produs de elemente de matrice
remodela•i matrice remodela•i

fel Sortarea elementele de matrice

sumă Suma elementelor unei matrici

mărimea Mărimea matricei

56
A.9 Tabel: Tablourile •i Matrici: analiza matrice •i ecua•ii liniare

comandă Descriere

Cond Număr condi•ie în ceea ce prive•te inversarea


Det Determinant
INV Matricea inversă
linsolve Solve sistem liniar de ecua•ii
lu LU factorizarea
normă Matrice sau vector normă
nul Spa•iu nul
orth ortogonalizarea
rang Locul Matrix
Rref formă e•alon rând Redusă
urmă Suma elementelor diagonale

57
Anexa B

Note de lansare pentru lansare 14 cu Service


Pack 2

B.1 Rezumatul modificărilor

MATLAB 7 Release 14 cu Service Pack 2 (R14SP2) include mai multe caracteristici noi. Accentul major al R14SP2 este
pe îmbunătă•irea calitatea produsului. Acest document nu încearcă să ofere un sistem complet speci fi carea fiecare
caracteristică, dar oferă în schimb o scurtă introducere pentru fiecare dintre ele. Pentru detalii complete, ar trebui să
consulta•i documenta•ia MATLAB (Note de lansare).

Următoarele puncte cheie pot fi relevante:

1. Spa•ii înainte de numere - De exemplu: A * .5, vei primi de obicei un mistificator


spunând că mesajul A a fost utilizat anterior ca variabilă. Există două solu•ii:

(A) Se îndepărtează toate spa•iile:

A * .5

(B) Sau, a pus un zero în fa•a punctului:

A * 0.5

2. RHS gol matrice - partea dreaptă trebuie să fie literalmente matricea goală []. Aceasta
nu poate fi o variabilă care are valoarea [], a•a cum se arată aici:

sc.dr. = []; A (:, 2) =


sc.dr.
??? Cotizanti atribuire dimensiune nepotrivire

58
3. Noua op•iune de format - Putem afi•a ie•ire MATLAB folosind două nou formate:
scurt eng •i ing lung.

• scurt eng - Ie•ire Afi•ează în Inginerie format care are cel pu•in 5 cifre •i o putere care este un multiplu de
trei.

> > format scurt eng


> > Pi =
ans

3.1416e + 000

• ing lung - Ie•ire Afi•ează în Inginerie format care are 16 cifre semni fi cative •i o putere care este un
multiplu de trei.

> > format eng lung


> > Pi =
ans

3.14159265358979e + 000

4. Ajutor - Pentru a ob•ine ajutor pentru o subfunction, utilizare

> > ajutor FUNCTION_NAME> subfunction_name

În versiunile anterioare, sintaxa a fost

> > ajutor FUNCTION_NAME / subfunction_name

Această modificare a fost introdusă în R14 (MATLAB 7.0), dar nu a fost documentată. Utiliza•i căutarea site-ul Web
MathWorks caracteristici pentru a căuta cele mai recente informa•ii.

5. publicarea - Publicarea L A TEXnow respectă imaginea fi lul de tip specifica•i în de preferin


erences mai degrabă decât folosind întotdeauna EPSC2- fi les.

• Publicare op•iuni de imagine în Editor / Debugger preferin•ele pentru publicarea imaginilor s-au schimbat
u•or. Modificările pe care le împiedică să alege•i formate invalide.

• FI LES creat la publicarea folosind celule au acum mai multe extensii naturale. De exemplu, în format
JPEG fi le au acum un .jpg în loc de o extensie .jpeg •i EPSC2 fi le au acum o .eps în loc de o extensie
.epsc2.

• Notebook nu va mai sprijini Microsoft Word 97 începând în următoarea versiune a MATLAB.

6. debugging - Du-te direct la un subfunction sau folosind ENHANCED Mergi la căsu•ă de dialog.
Apasă pe Nume antet de coloană pentru a aranja lista de func•ii în ordine alfabetică, sau face•i clic pe Linia antet
de coloană pentru a aranja lista de pozi•ia func•iilor în fi lul.

59
B.2 alte modificări

1. Există o nouă comandă mlint, care va scana un M- fi lul •i spectacol defi INE FFI în
Codul. De exemplu, vă va spune dacă a•i definit de o variabilă care le-a•i folosit niciodată, dacă ai reu•it să
pre-aloce o matrice etc. Acestea sunt gre•eli comune în EA1 care produc cod FFI cientă executabilă, dar INE.

2. Pute•i comenta-un bloc de cod fără a pune% la începutul fiecărei linii.


Formatul este

%{

Lucruri pe care dori•i MATLAB să ignore ...

%}

Delimitatori% {•i%} trebuie să apară pe linii de la sine, •i nu poate lucra cu observa•iile utilizate în func•ii pentru a
interac•iona cu sistemul de ajutor (cum ar fi linia H1).

3. Există o func•ie nouă linsolve care va rezolva Ax = b dar cu alegerea utilizatorului de


algoritm. Acest lucru este în plus fa•ă de divizia de stânga x = A \ b care utilizează un algoritm prestabilit.

4. eps constantă ia acum un argument op•ional. eps (x) este la fel ca vechiul
eps * abs (x).

5. Poti sparge un M- fi lul de sus în celule numite (blocuri de cod), fiecare dintre care le pute•i rula separat. Acest lucru
poate fi util pentru testarea / cod de depanare.

6. Func•ii acum op•ional se încheie cu Sfâr•it cuvinte cheie. Acest cuvânt cheie este obligatorie atunci când
Lucrul cu functii imbricate.

B.3 Mai multe detalii

1. Pute•i doc •i un-doc ferestre din fereastra principală, făcând clic pe o pictogramă.
Astfel, pute•i alege să aibă toate cifrele, M- Fi les editate, de ajutor browser-ul, fereastra de comandă, etc. Toate apar
ca panouri într-o singură fereastră.

2. Mesaje de eroare în fereastra de comandă care rezultă din rularea unui M- fi lul acum include un link clickable la O
ff se termină linia în fereastra de editare care con•ine M- fi lul.

3. Pute•i personaliza fi gure interactiv (etichete, stiluri de linie, etc) •i apoi genera automat codul care reproduce fi
gura personalizat.

60
4. FEVAL nu mai este necesară atunci când se lucrează cu mânere func•ionale, dar încă mai func•ionează pentru

compatibilitatea cu versiunile anterioare. De exemplu, x = @ păcat ; x (pi) va produce sin (pi) la fel ca
FEVAL (x, pi) nu, dar mai repede.

5. Pute•i utiliza mânere de func•ii pentru a crea func•ii anonime.

6. Există suport pentru func•iile imbricate, •i anume, func•iile de fi nite în corpul unei alte func•ii. Acest lucru este în
plus fa•ă de sub-func•ii deja disponibile în versiunea 6.5.

7. Există mai mult sprijin în opera•ii aritmetice pentru tipuri de date numerice, altele decât dublu, de ex singur, int8,
int16, uint8, uint32, etc.

În cele din urmă, vă rugăm să vizita•i pagina noastră pentru alte detalii:

http://computing.mccormick.northwestern.edu/matlab/

61
Anexa C

Principalele caracteristici ale MATLAB

C.1 Istorie

• Dezvoltat în primul rând de Cleve Moler în anii 1970

• Derivat din FORTRAN subrutine LINPACK •i EISPACK, liniare •i sisteme de valori proprii.

• Dezvoltat în primul rând ca un sistem interactiv de acces la LINPACK •i EISPACK.

• Câ•tigat popularitatea prin cuvânt din gura, pentru că nu a fost o FFI distribuit cial.

• Rescrisă în C, în 1980, cu mai multe func•ionalită•i, care includ rutine plotare.

• MathWorks Inc a fost creat (1984) pe pia•ă •i să continue dezvoltarea MATLAB.

Potrivit lui Cleve Moler, alte trei bărba•i a jucat un rol important în originile MATLAB:
JH Wilkinson, George Forsythe, •i John Todd. De asemenea, este interesant de men•ionat autorii LINPACK: Jack
Dongara, Pete Steward, Jim Bunch, •i Cleve Moler. De atunci, a apărut un alt pachet: LAPACK. LAPACK standuri pentru
Linear Algebra Package. Acesta a fost proiectat pentru a înlocui LINPACK •i EISPACK.

C.2 Puncte forte

• MATLAB poate comporta ca calculator sau ca limbaj de programare

• MATLAB combina frumos calcul •i reprezentarea grafică de.

• MATLAB este relativ u•or de învă•at

62
• MATLAB este interpretat (nu compilat), erorile sunt u•or de fi x

• MATLAB este optimizat pentru a fi relativ rapid atunci când efectuează opera•iuni de matrice

• MATLAB are unele elemente orientate-obiect

C.3 Puncte slabe

• MATLAB nu este un general limbaj de programare, cum ar fi C, C ++, sau FORTRAN

• MATLAB este proiectat pentru a fi •tiin•i C de calcul, •i nu este bine potrivit pentru alte aplica•ii

• MATLAB este un limbaj interpretat, mai lent decât un limbaj compilat, cum ar fi C ++

• Comenzile MATLAB sunt speci fi c pentru utilizarea MATLAB. Cele mai multe dintre ele nu au un echivalent
direct cu alte comenzi limbaj de programare

C.4 Competi•ie

• Unul dintre concuren•i MATLAB este Mathematica, simbolic program de calcul.

• MATLAB este mai convenabil pentru analiza numerica •i algebră liniară. Acesta este frecvent utilizat în comunitate de
inginerie.

• Mathematica are manipulare simbolică superioară, ceea ce face popular în rândul fizicieni.

• Există al•i concuren•i:

- Scilab

- GNU Octave

- Rlab

63
Bibliografie

[1] MathWorks Inc. MATLAB 7.0 (R14SP2). MathWorks Inc., 2005.

[2] SJ Chapman. MATLAB de programare pentru ingineri. Thomson, 2004.

[3] CB Moler. Numerice de calcul cu Matlab. Siam, 2004.

[4] CF Van Loan. Introducere în •tiin•i fi c Computing. Prentice Hall, 1997.

[5] DJ Higham si NJ Higham. MATLAB Ghid. Siam, edi•ia a doua edi•ie, 2005.

[6] KR Coombes, BR Hunt, RL Lipsman, JE Osborn •i GJ Stuck. Di ff erential


Ecua•ii cu Matlab. John Wiley and Sons, 2000.

[7] A. Gilat. MATLAB: O introducere cu aplicatii. John Wiley and Sons, 2004.

[8] J. Cooper. Un Companion MATLAB pentru multivariată de calcul. Academic Press, 2001.

[9] JC PöLKING •i D. Arnold. ODE folosind MATLAB. Prentice Hall, 2004.

[10] D. Kahaner, C. Moler •i S. Nash. Metode numerice •i software. Prentice-Hall,


1989.

[11] JW Demmel. Aplicată numerică Algebră liniară. Siam, 1997.

[12] D. Houcque. Aplica•ii ale MATLAB: ordinare Di ff erential Ecua•ii. Intern


comunicare, Universitatea Northwestern, paginile 1-12, 2005.

64

S-ar putea să vă placă și