Documente Academic
Documente Profesional
Documente Cultură
ENGINEERING STUDEN•I
David Houcque
Universitatea Northwestern
1 lec•ii Tutorial 1 1
1.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 lec•ii Tutorial 2 12
2.1.1 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
eu
2.2 plotare de bază . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.9 Dimensiune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.10 Continuare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
ii
3.2.2 Func•ii Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1 Introducere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2 Script-M-File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.2.1 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.6 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4 Exerci•ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6 Debugging M- Fi les 49
6.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
iii
6.2.3 Rularea cu punctele de întrerupere. . . . . . . . . . . . . . . . . . . . . . . . 50
A Rezumatul comenzilor 53
C.1 Istorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
C.4 Competi•ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
iv
Lista de mese
v
A.6 matrici elementare •i matrice . . . . . . . . . . . . . . . . . . . . . . 56
vi
lista figurilor
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
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.
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.
Scopul acestei minim sesiune (numit, de asemenea, pornire •i ie•irea sesiuni) este de a învă•a Fi RST pa•i:
• Invoke MATLAB
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:
Notă: Pentru a simplifica notatia, vom folosi acest prompt, >>, ca un semn prompt de Standard, de•i versiunea noastră
MATLAB este în scop educativ.
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
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.
După ce a aflat sesiunea de minim MATLAB, vom învă•a acum să folosească unele opera•ii suplimentare.
Variabilele MATLAB sunt create cu o declara•ie de atribuire. Sintaxa de atribuire este variabilă
De exemplu,
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
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 =
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
|
Eroare: expresie MATLAB nea•teptat.
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.
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
6
>> 1 + 2 * 3
ans =
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,
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
cele mai multe programe de calculator. Pentru operatorii de egal prioritate, evaluarea este de la stânga la dreapta.
1 2 + 32+ 4
5×6 7
În MATLAB, devine
7
Deci aici ce avem: două di ff erent rezultate. De aceea, dorim să subliniem importan•a regulii prioritate pentru
ambiguitate a evita.
Dacă vrem să vedem toate cele 15 cifre, vom folosi comanda format lung
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,
> > Xx =
- 163.6667
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
in timp ce, whos va da mai multe detalii, care includ dimensiunea, alocarea spa•iului, •i clasa a variabilelor.
Este posibil pentru a urmări tot ceea ce face în timpul unei sesiuni MATLAB cu jurnal
comanda.
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.
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.
0.6570
c=
548.3170
9
1.4.10 comenzi Diverse
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
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.
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:
• Î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.
10
• Utilizare cauta pentru a fi doua functii de cuvinte cheie. Forma generală este
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
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.
12
valori constante. O listă a celor mai comune valori este prezentată în tabelul 2.2.
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.
> > a = 5; x = 2; y = 8;
> > y = exp (-a) * sin (x) + 10 * sqrt (y) = y
28.2904
Observa•i erence di ff între logaritmul natural log (x) •i logaritmul zecimal (baza
10) log10 (x).
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ă.
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.
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.
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
Note:
- începe de la 0,
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 π
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.
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 π.
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.
2 * cos (x)
cos (x)
23
funcţii cosinus
01
-1
-2
-3
0 1 2 3 4 5 6
0≤X≤2π
Î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.
Este posibil să se specifice stiluri de linii, culori, •i markerii ( de exemplu, cercuri, semne plus,. . . ) Folosind intrigă comanda:
Pentru informa•ii suplimentare nd fi, de tip ajutor complot sau doc complot.
17
Tabelul 2.3: Atribute pentru intrigă
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.
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.
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
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ă,
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,
Unde Sfâr•it fi cativ ES ultimul element din vector. Dacă v este un vector, scris
• începe cu o 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]
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.
A (2,1) este un element situat în al doilea rând •i prima coloană Fi. Valoarea sa este de 4.
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
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.
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
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,
împarte intervalul [0, 2 π] în 100 subintervale egale, apoi crearea unui vector de 101 elemente.
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
Operatorul de colon poate fi de asemenea utilizat pentru a extrage un sub-matrice dintr-o matrice A.
5 6
8 0
Un rând sau o coloană a unei matrice poate fi eliminată, prin fixarea unui nul vector, [].
4 6
7 0
4 5
7 8
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 =
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
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
8 9
24
> > A ([1 3], [2 3]) ans =
2 3
8 9
Pentru a •terge un rând sau o coloană dintr-o matrice, utiliza•i vector gol operator [].
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
1 2 3
4 5 6
7 8 0
2.5.9 Dimensiune
Pentru a determina dimensiuni dintr-o matrice sau vector, utiliza•i comanda mărimea. De exemplu,
3 3
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.
Re•ine•i că gol spa•ii în jurul valorii de +, -, = semnele sunt op•ionale, dar îmbunătă•esc lizibilitatea.
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.
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
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
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.
Pentru o listă completă a matrici elementare •i manipulări matrice, tip ajutor ELMAT
sau doc ELMAT. Aici sunt cateva exemple:
1 0 0
0 1 0
0 0 1
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ă
1 2 0 0
3 4 0 0
1 1 1 0
1 1 0 1
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.
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
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.
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 este valabil în cazul în care A Numărul lui de coloane egali B numărul lui de rânduri
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
> > 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 .ˆ
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.
•
• x+2y+3z=14x+5y+6z
=17x+8y
•
=1
A= • 6789 • •i vectorul b = • 1 •
1
Ax = b (3.2)
Această ecua•ie poate fi rezolvată pentru X folosind algebra liniară. Rezultatul este x = A - 1 b.
32
> > A = [1 2 3; 4 5 6; 7 8 0];
> > b = [1; 1; 1];
> > x = inv (A) * bx =
- 1.0000
1.0000
- .0000
- 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.
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
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
Pentru detalii suplimentare despre algebra liniară numerică aplicată, vezi [10] •i [11].
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
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
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:
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.
• 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
Exemplul 1
3x+3y+4z=12x+3y+3z
=2
Soluţie:
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
36
> > Editare
sau
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.
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])
Toate variabilele create într-un script fi lul se adaugă la spa•iul de lucru. Acest lucru poate avea e nedorite ff ecta, deoarece:
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ă.
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,
120
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.
Scripturi funcţii
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 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.
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.
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.
Punctul% din fiecare joc sunt atribuite unei variabile% utilizând comanda „de
intrare“.
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.
= 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].
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).
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.
42
capitolul 5
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.
MATLAB are patru fl ow de control structuri: a dacă declara•ie, pentru au bucle, in timp ce buclă, •i intrerupator afirma•ie.
43
• dacă ... elseif ... altceva ... capăt
dacă expresia
end declara•ii
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
3. discr = b * b - 4 * a * c; dacă
discr <0
disp ( 'Aten•ie: discriminant este negativ, rădăcinile sunt imaginare'); elseif discr
== 0
• fără virgulă (;) este necesară la sfâr•itul liniilor care con•in în cazul în care, altfel, la sfâr•itul
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.
Operator Descriere
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.
În pentru ... final buclă, executarea unei comenzi se repetă la un număr fix public •i predeterminat de ori. Sintaxa este
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
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
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.
• 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.
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
Î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:
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.
• 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.
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
• Setarea breakpoints
• 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.
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 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.
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:
K >>
• 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.
Î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.
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.
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.
• Părăsi•i de depanare
• Salva•i M- fi lul
• breakpoints clare
51
• Rula•i M- fi lul din nou, pentru a fi siguri că produce rezultatele a•teptate.
52
Anexa A
Rezumatul comenzilor
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
caracter Descriere
54
A.4 Tabel: Gestionarea spa•iului de lucru •i a fi lul comenzi
comandă Descriere
Descriere variabilă
pi Numarul π ( 3.14159. . .)
55
A.6 Tabel: matrici elementare •i matrice
comandă Descriere
comandă Descriere
comandă Descriere
56
A.9 Tabel: Tablourile •i Matrici: analiza matrice •i ecua•ii liniare
comandă Descriere
57
Anexa B
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).
A * .5
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:
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.
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.
3.14159265358979e + 000
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.
• 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.
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.
%{
%}
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).
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.
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.
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
C.1 Istorie
• Derivat din FORTRAN subrutine LINPACK •i EISPACK, liniare •i sisteme de valori proprii.
• Câ•tigat popularitatea prin cuvânt din gura, pentru că nu a fost o FFI distribuit cial.
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.
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 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
• 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.
- Scilab
- GNU Octave
- Rlab
63
Bibliografie
[5] DJ Higham si NJ Higham. MATLAB Ghid. Siam, edi•ia a doua edi•ie, 2005.
[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.
64