Lucrari Laborator MATLAB UTM

119

Click here to load reader

description

Lucrari Laborator MATLAB UTM

Transcript of Lucrari Laborator MATLAB UTM

  • UNIVERSITATEA TEHNIC A MOLDOVEI

    FACULTATEA CIM CATEDRA MECANICA TEORETIC

    ION BALMU ANATOLIE CASIAN

    VALERIU MIHAILOV

    LUCRRI DE LABORATOR LA MECANIC

    realizate n MATLAB

    Chiinu U.T.M.

    2007

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    3

    Prezenta lucrare didactic conine o expunere pe scurt a materialului, necesar pentru a aplica pachetul MATLAB, i exerciii de antrenament n acest sens (Lucrrile de laborator nr 1 i nr 2 - calculul expresiilor aritmetice, utilizarea masivelor unidimensionale i bidimensionale, construirea graficelor). Este expus pe scurt i materialul teoretic pentru a efectua dou lucrri de laborator la mecanic n pachetul MATLAB (Lucrrile de laborator nr 3 i nr 4 construirea traiectoriei punctului material n plan i n spaiu, calcularea integralelor, rezolvarea ecuaiilor difereniale de ordinul doi, studiul oscilaiilor forate). Sarcinile lucrrilor de laborator sunt prezentate n 30 de variante. Studentul primete numrul variantei de la profesor pentru toate patru lucrri de laborator. Dup efectuarea lucrrii studentul ndeplinete raportul despre lucrarea respectiv. Raportul trebuie oformat pe foi A4 cu chenar la 5 mm de la margine sus, jos i n dreapta i 20 mm n stnga, ca documentaie tehnic. Dac imprimanta nu accept astfel de margini, se admit, ca excepie, foi A4 cu chenar la 10 mm de la margine sus, jos i n dreapta i 20 mm n stnga. Foaia de titlu a raportului este indicat de profesor conform Anexei 1 sau 2. Raportul se prezint pentru susinere la urmtoarea lucrare de laborator. Dup susinerea ultimei lucrri studentul prezint profesorului rapoartele despre toate lucrrile n ansamblu, prinse cu o clam. Ele se pstreaz la catedr timp de un an.

    Lucrrile de laborator sunt destinate studenilor de la Facultatea Calculatoare, Informatic i Microelectronic.

    Autorii: conf. univ. dr. Ion Balmu prof. univ. dr. hab. Anatolie Casian asistent univ. Valeriu Mihailov Redactor responsabil: prof. univ. dr. hab. Anatolie Casian Recenzent: conf. univ. dr. Gheorghe Coman

    U.T.M., 2007

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    4

    Cuprinsul

    Notri ................................................................................................. 6 Introducere........................................................................................ 7 Ce este MATLAB............................................................................. 7 Versiunile existente .......................................................................... 9 Pornirea sistemului MATLAB i lucrul n regim de dialog ............. 9

    Lucrarea nr. 1. Elemente ale sistemului MATLAB..................... 12 1.1. Comenzile de redactare a rndului .......................................... 12 1.2. Comenzile de dirijare a ferestrei n regimul de comand ........ 14 1.3. Regimul de comand ............................................................... 15 1.4. Expresiile aritmetice ................................................................ 16

    1.4.1. Numerele ....................................................................... 16 1.4.2. Operaiile aritmetice...................................................... 17

    1.5. Variabilele................................................................................ 18 1.5.1. Vizualizarea variabilelor ............................................... 19 1.5.2. tergerea determinrii variabilelor................................ 20 1.5.2. Fereastra Workspace ..................................................... 20

    1.6. Formatul numerelor ................................................................. 21 1.7. Funciile matematice................................................................ 23 1.8. Vectorii i matricele................................................................. 25

    1.8.1. Matricele........................................................................ 26 1.8.2. Introducerea matricelor ................................................. 26 1.8.3. Operatorul colon............................................................ 29 1.8.4. Generarea matricelor ..................................................... 30 1.8.5. Apelri la matrice .......................................................... 30 1.8.6. Dimensiunile matricei ................................................... 33 1.8.7. Operaiile cu matrice ..................................................... 34 1.8.8. Operaiile cu masivele (tabelele)................................... 35 1.8.9. Lucrul cu matricele........................................................ 36

    1.9. Anunul despre erori i ndreptarea erorilor............................. 39 Sarcina Lucrrii nr. 1. ..................................................................... 44

    Lucrarea nr. 2. Grafica n sistemul MATLAB ............................ 53 2.1. Crearea graficelor .................................................................... 53 2.1.1. Fereastra cu grafic................................................................. 53

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    5

    2.1.2. tergerea figurii .................................................................... 54 2.2. Construirea graficelor funciilor de o singur variabil.......... 54

    2.2.1. Funcia comet ................................................................ 55 2.3. Construirea graficelor funciilor de dou variabile................. 56

    2.3.1. Construirea graficelor plane cu liniile de nivel ............ 57 2.4. Construirea graficelor funciilor determinate

    n mod parametric ................................................................... 59 2.5. Construirea ntr-o fereastr a graficelor ctorva funcii .......... 60

    2.5.1. Grafice cu axele comune ............................................... 60 2.5.2. Grafice cu axele proprii................................................. 61 2.5.3. Setarea axelor ................................................................ 62

    2.6. Crearea interactiv a graficelor................................................ 63 2.7. Oformarea graficelor ............................................................... 64 Sarcina Lucrrii nr. 2 ...................................................................... 70

    Lucrarea nr. 3. Calculul traiectoriei punctului material ............ 74 3.1. Redactorul incorporat .............................................................. 74 3.1. File-funcii i file-programe..................................................... 75 Sarcina Lucrrii nr. 3 ...................................................................... 81

    Lucrarea nr. 4. Studiul oscilaiilor forate ale unui corp n prezena forei de rezisten .......................................................... 90 4.1. Integrarea numeric ................................................................. 90

    4.1.1. Integrale definite ordinare ............................................. 90 4.1.2. Integrale definite duble.................................................. 92

    4.2. Rezolvarea ecuaiilor difereniale ............................................ 93 4.3. Studiul oscilaiilor libere.......................................................... 97 4.4. Influena rezistenei asupra oscilaiilor libere. Oscilaii

    amortizate .............................................................................. 101 4.5. Oscilaii forate n prezena forei de rezisten ..................... 103 Sarcina lucrrii nr. 4. .................................................................... 107

    ANEXA 1. EXEMPLU - Foaie de titlu. ...................................... 115 ANEXA 2. EXEMPLU - Foaie de titlu. ...................................... 116 ANEXA 3. Secvenele de caractere folosite la grafice ............... 117 Bibliografie .................................................................................... 119

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    6

    Notri Exemplu pentru regimul de comand - fereastra Command

    Windows, >> x = 0.2; >>

    Exemplu pentru Editorul intern a MATLAB.

    x = 0.2; z=x

    Exemplu pentru Editorul intern a MATLAB cu programul

    salvat n fiierul file.m. file.m x = 0.2; z=x

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    7

    Introducere Ce este MATLAB n timpul de fa MATLAB este unul din cele mai puternice din

    toate pachetele universale de calcul. Inginerii i savanii aplic MATLAB pentru rezolvarea problemelor din diferite domenii de aplicare: achiziionarea, analizarea i vizualizarea datelor; prelucrarea semnalelor i a imaginilor; cercetarea i calcularea diferitor procese tehnice; modelarea, simularea i optimizarea sistemelor tehnice; dezvoltarea aplicaiilor, incluznd interfeele grafice etc.

    MATLAB este un sistem interactiv cu un limbaj de performan nalt foarte efectiv pentru calcule tehnice a crui element informaional de baz este matricea. Denumirea de MATLAB provine de la Matrix Laboratory.

    MATLAB s-a dezvoltat pe parcursul anilor cu adugrile a mai multor utilizatori. La universiti pachetul MATLAB se folosete ca un instrument standard de iniiere i cursuri avansate n matematic. n industrie MATLAB este instrumentul cu o capacitate nalt pentru cercetare, dezvoltare i analiz.

    Fig. I.1. Componena sistemului MATLAB

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    8

    Sistemul MATLAB const din 5 pri principale: Mediul de dezvoltare este un set de utiliti cu faciliti care

    ajut s folosim funciile i fiierele din MATLAB. Multe din aceste utiliti au interfa grafic. Ele includ fereastra de lucru (MATLAB desktop), fereastra liniei de comand (Command window), fereastra istoriei comenzilor (Command history), editorul intern, software pentru corecia programelor (debugger), Ajutorul i navigatorul lui (help), Spaiul de lucru a sesiunii (Workspace), fiierele i drumul de cutare (Curent directory).

    Biblioteca cu funciile matematice conine o vast colecie de

    algoritmi de calcul de la funciile elementare - suma, sinus, cosinus, etc, pn la funciile sofisticate - matrice inverse, funciile Bessel, transformarea rapid Furier etc.

    Limbajul MATLAB este limbaj de performan nalt cu funcii,

    structuri, date de intrare i ieire, programarea orientat pe obiecte APOO. El permite att crearea rapid a programelor mici, ct i crearea programelor i aplicaiilor mari i complexe.

    Grafica. MATLAB are faciliti extensive pentru vizualizarea

    vectorilor i matricelor ca grafice. Grafica include funcii pentru vizualizarea datelor n form bidimensional i tridimensional, prelucrarea imaginilor, animaie, grafica pentru prezentaii. Totodat ea include funcii care permit setarea complet a graficelor, precum i crearea interfeelor grafice n aplicaiile MATLAB.

    Interfaa Extern (External Interfaces - API). Aceasta este o

    bibliotec care v permite a scrie programe n limbajele C i Fortran care interacioneaz cu MATLAB. Ea include faciliti pentru apelare la funciile i procedurile din MATLAB (dynamic linking), apelarea la MATLAB ca la nucleul de calcul, pentru citirea i scrierea fiierelor MAT etc.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    9

    Versiunile existente n momentul de fa sunt mai multe versiuni a pachetului

    MATLAB : 1) MATLAB 6.1 (Release 12) lansat la 7 Martie 2005,

    instalarea ocup ~260 Mb 2) MATLAB 6.5.1 (Release 13) SP3 3) MATLAB 7.0.0 (Release 14) 4) MATLAB 7.0.1 (Release 14) SP1 5) MATLAB 7.0.4.365 (Release 14) SP2 lansat la 1

    Septembrie 2005 instalarea ocup 3 CD 6) MATLAB 7.1 (Release 14) SP3 7) MATLAB 7.2 (Release 2006a) lansat la 1 Martie 2006

    (http://www.mathworks.com/products/new_products/release2006a.html)

    8) MATLAB 7.3 (Release 2006b) lansat la 1 Septembrie 2006 (http://www.mathworks.com/products/new_products/latest_features.html?s_cid=MLD0906rowP1&s_v1=MLD0906)

    Versiunile sunt pentru diferite platforme: UNIX/Linux (Solaris versiunile 8, 9, 10 pe 32 bit, Linux 32 i 64 bit), Macintosh, Windows (32 i 64 bit, Windows 2000, Windows XP i Windows Server 2003)

    ndrumarul de fa e scris pe baza versiunilor R12 i R14SP2. Daca sunt diferene eseniale ntre programe n ndrumar ele sunt artate.

    Pornirea sistemului MATLAB i lucrul n

    regim de dialog Pachetul MATLAB se lanseaz din meniul principal, apsnd

    pe iconia MATLAB (de obicei Start -> Programs -> Programming). Sistemul este gata de a face calcule n regimul de comand. Fereastra de baz iniial deschis complet este indicat pe Fig. I.2.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    10

    Fig.I.2. Fereastra principal iniial a sistemului MATLAB n partea dreapt avem fereastra Command Window, n

    stnga sus avem fereastra Launch Pad cu Workspace i stnga jos avem fereastra Command History.

    Uneori MATLAB se lanseaz numai cu o fereastr activ, de exemplu Command History.

    Fig.I.3. Sistemului MATLAB numai cu fereastra Command

    History activ Pentru a face vizibile i restul ferestrelor este nevoie de a seta

    vizibilitatea default

    a) Matlab 6 b) Matlab 7 Fig.I.4. Setarea vizibilitii tuturor ferestrelor:

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    11

    Programele pot fi redactate ntr-un editor de texte i pe urm copiat n rndul de comand folosind Clipboard-ul. Exemplele din prezenta lucrare servesc pentru antrenare n aplicrile MATLAB. n versiunea 6.1 era posibil copierea chiar i cu simbolurile rndului de introducere >> sistemul automat le v-a omite, iar n versiunile mai mari sistemul nu le omite i d eroare.

    Care editor de folosit? Editorul intern a MATLAB, Notepad, MS Word, redactorul intern al NORTON Comander sau FAR Manager. ns exist diferene ntre ele. MS Word este un redactor mai sofisticat i ceea ce vedem noi pe ecran nu tot timpul v-a nelege MATLAB, pe cnd celelalte editoare enumerate mai sus sunt editoare simple. Exemplul de mai jos pare simplu, ns la inserare din MS Word n MATLAB v-a da trei greeli (acest exemplu v-a fi analizat n capitolul 1.10).

    x=10 2 3 Totui cel mai comod editor pentru MATLAB este redactorul

    intern (incorporat) al lui, deoarece el are aceleai faciliti ca i linia de comand, plus avantajele unui translator executarea pas cu pas, setarea punctelor de stopare a programului etc.

    Fig.I.5. Fereastra editorului intern a MATLAB

    Unicul neajuns este c erorile apar numai n fereastra liniei de

    comand. Pentru lansarea Editorului intern din MATLAB este nevoie de

    a face clic pe butonul New M-file pe panelul de instrumente a mediului de lucru sau de selectat meniul File->New-> M-file. Pe ecran va aprea fereastra redactorului.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    12

    Fig.I.6. Butonul de lansare a editorului intern a MATLAB Sfaturi practice. Exemplele din lucrarea de laborator nr.1 e preferabil s le

    ncercai din linia de comand pentru a vedea i a nltura erorile, iar n restul lucrrilor - s folosii redactorul intern.

    Lucrarea nr. 1. Elemente ale sistemului MATLAB

    1.1. Comenzile de redactare a rndului Cnd se lucreaz cu MATLAB n regim de comand, se aplic

    comenzile de redactare a rndului, indicate n tabelul 1.1. Tabelul 1.1

    Comenzile de redactare a rndului n MATLAB

    Tasta Combinaia de taste Destinare

    Ctrl+P Rsfoirea comenzilor precedente (n sus) pentru includerea n rndul de introducere

    Ctrl+N Rsfoirea comenzilor urmtoare (n jos) pentru includerea n rndul de introducere

    Ctrl+Home Deplasarea cursorului la nceputul ferestrei Command Window

    Ctrl+End Deplasarea cursorului la sfritul ferestrei Command Window

    Ctrl+B Deplasarea cursorului n stnga la un simbol

    Ctrl+F Deplasarea cursorului n dreapta la un simbol

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    13

    Ctrl+ Deplasarea cursorului n stnga la un cuvnt

    Ctrl+ Deplasarea cursorului n dreapta la un cuvnt

    Home Ctrl+A Deplasarea cursorului la nceputul rndului de comand

    End Ctrl+E Deplasarea cursorului la sfritul rndului de comand Esc Ctrl+U Curirea rndului de introducere

    Delete Ctrl+D tergerea simbolului la dreapta de cursor

    Backspace Ctrl+H tergerea simbolului la stnga de cursor Ctrl+K tergerea pn la sfritul rndului

    Ins Activarea/dezactivarea regimului de includere Shift+Home Selectarea pn la nceputul rndului

    Shift+End Selectarea pana la sfritul rndului

    PgUp Rsfoirea foilor sesiunii n sus

    PgDn Rsfoirea foilor sesiunii n jos

    Enter

    Executarea comenzii. Daca exist ceva selectat n fereastra command windows textul selectat este adugat la rndul de comand nainte de executare

    Repetarea executrii rndului n linia de comanda e posibil

    prin dou metode: 1) rsfoirea comenzilor n linia de comand i apsnd

    ;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    14

    2) gsirea comenzii n fereastra Command History i fcnd dublu clic cu mausul pe ea.

    inei minte: Fereastra Command Window ofer posibilitatea de

    redactare numai a ultimului rnd de comand. S nu v mire faptul, c cursorul -l putei muta n rndurile precedente i nu le putei redacta.

    1.2. Comenzile de dirijare a ferestrei n

    regimul de comand clc - cur ecranul i pune cursorul n colul de sus din stnga a

    ecranului gol. home - ntoarce cursorul n colul de sus din stnga a ferestrei. echo on deschide regimul de scoatere pe ecran a codului

    surs. echo on nchide regimul de scoatere pe ecran a codului surs. echo on deschide regimul de scoatere la ecran a

    codului surs a fiierului .

    echo off nchide regimul de scoatere la ecran a codului surs a fiierului .

    echo - schimb regimul de scoatere la ecran la opus.

    echo on all deschide regimul de scoatere la ecran a codului surs a tuturor m-fiierelor.

    echo off all nchide regimul de scoatere la ecran a codului surs a tuturor m-fiierelor.

    more on - deschide regimul de scoatere la ecran a rezultatelor pe pagini. Se folosete la vizionarea rezultatelor voluminoase.

    more off - nchide regimul de scoatere la ecran pe pagini.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    15

    1.3. Regimul de comand Seansul de lucru cu MATLAB se numete sesiune (session).

    Sesiunea, n realitate, este un document curent, care reflect lucrul utilizatorului cu sistemul MATLAB. n ea sunt rnduri de introducere (cu simbolul >>), de extragere (cu simbolul ans=) i de informaii despre erori (??? Error).

    MATLAB permite de a efectua calcule foarte complicate n regimul de calcule directe, adic fr a pregti o program. Utilizatorul culege cu tastatura expresia respectiv, o redacteaz (dac este necesar) n rndul de comand i apas . Pe ecran apare rezultatul n rndul ans= sau x=.

    n cazul cnd expresia matematic care trebuie s fie introdus

    este foarte lung, o parte din ea poate fi trecut ntr-un rnd nou cu ajutorul semnului ... (3 sau mai multe puncte), de exemplu

    >> X = 3 + 2 - 4 + 5 +...

    7 +1 + 2 - 3 Semnul operaiei se indic naintea celor 3 puncte, i se tasteaz

    . Aceast metod e comod pentru a pstra ntregul document n limitele ferestrei deschise. n general, ntr-un rnd pot fi 4096 de simboluri.

    n cazul cnd avem nevoie ntr-un rnd s scriem dou expresii

    le scriem prin virgul, de exemplu

    >> a=3,25*(0.7-3.5/5.1)+2.3^3 a =

    3 ans =

    12.5101 n cazul dat s-au calculat dou expresii : a=3 i 25*(0.7-

    3.5/5.1)+2.3^3.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    16

    Pentru a opri apariia rezultatului expresiile trebuie s se termine cu punct i virgul :

    >> x = 0.2; >> y = -3.9; >> a = sin(4/3*pi*x)+exp(0.1*y); >> b = cos(4/3*pi*x)+exp(0.1*y); >> c = sqrt(a/b)+(a/b) ^ (1/3) c =

    2.0451 1.4. Expresiile aritmetice Ca i alte limbaje de programare MATLAB permite calcularea

    expresiilor matematice, dar n comparaie cu majoritatea limbajelor, aceste expresii implic la calculare matricea ntreag.

    Expresiile matematice n MATLAB sunt formate din numere, semnele operaiilor aritmetice, variabile i funcii introduse.

    1.4.1. Numerele Pentru numere MATLAB folosete notaia convenional

    decimal, n fa cu semnul plus sau minus iar partea zecimal a numrului se desparte prin punct. Unele exemple a numerelor:

    3 -99 0.0001 -9.6397238 Simbolul e servete pentru a scrie numerele n form

    exponenial, adic indic puterea numrului zece. De exemplu, numerele 0.00215 i 2.15e-3 sunt echivalente. Numerele complexe se scriu cu ajutorul literei i sau j.

    >>2.15e-3 ans = 0.00215 >> 5*(2.2+3.9i)+0.8 ans = 11.8000+19.5000i

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    17

    Toate numerele sunt stocate n seansul de lucru folosind formatul lung specificat de IEEE - standardul virgulei mobile. Numerele cu virgul mobil au o precizie finit cu 16 numere dup virgul, iar valoarea n intervalul de la 10-308 pn la 10+308.

    1.4.2. Operaiile aritmetice Expresiile matematice folosesc urmtoarele operaii aritmetice

    i regulile lor: + Adunarea; - Scderea; * nmulirea; / mprirea; \ mprirea la stnga (descris n "Matrices and Linear

    Algebra" n documentaia MATLAB); ^ ridicarea la putere; ' Transpunerea matricei (Complex conjugate

    transpose); ( ) Specificarea prioritii de evaluare.

    inei minte: Expresiile matematice se calcul conform regulilor de

    prioritate a operaiilor i de la stnga la dreapta:

    a*b/c este echivalent cu c

    ba * ,

    ns

    a/b*c este echivalent cu cba * .

    Exemplu de mprire la stnga:

    >> 1\2/5 ans = 0.4000 >> 1/2\5 ans = 10

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    18

    n primul exemplu 1\2/5 se execut n felul urmtor - 2/1 i

    rezultatul se mparte la 5, iar n exemplul doi 1/2\5 1 se mparte la 2, iar 5 se mparte la rezultat obinut.

    1.5. Variabilele MATLAB nu necesit declararea tipului sau dimensiunilor

    variabilelor. Cnd MATLAB are nevoie de o variabil nou, programul automat creeaz variabila i aloc memorie. Dac variabila deja exist, MATLAB schimb coninutul ei i, dac e necesar, aloc spaiu nou. Ca semn de atribuire a valorii sau a expresiei se folosete = i rezultatul apare direct n fereastra de comand, de exemplu:

    >> num_students = 25 num_students = 25

    creeaz o matrice 1x1 cu numele num_students i-i atribuie

    valoarea 25 n singurul ei element. inei minte: Numele variabilei se ncepe cu o liter, urmat de un numr

    arbitrar de litere, cifre sau semnul de subliniere "_". n numele variabilei spaiul (locul gol) nu se admite. MATLAB folosete doar primele 31 de caractere din numele variabilei.

    Trebuie de inut cont c MATLAB este case sensitive - literele majuscule i minuscule se deosebesc. Variabilele "A" i "a" nu sunt aceleai.

    La calcularea unei expresii din rndul de comand rspunsul se

    nscrie n variabil redefinit special ans (din englez "answer" - rspuns):

    >> 2.15+1.07 ans =3.2200

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    19

    >> ans-0.22 ans =3.0000

    Valoarea ans se va schimba dup calculul expresiei urmtoare. 1.5.1. Vizualizarea variabilelor n oriice moment poate fi extras valoarea variabilei n

    fereastra de comand. Pentru aceasta trebuie de cules numele variabilei n rndul de comand i de apsat , ori de utilizat funcia disp (din englez "display" a vizualiza):

    >> a a =

    -1.34 >> disp(a)

    -1.34 Pentru a opri imprimarea la ecran a valorii expresiei sau

    variabilei la sfritul ei se pune ; Vizionarea listei variabilelor n mediul de lucru se efectueaz

    cu ajutorul comenzii whos (din englez "whos" a cui). Presupunem, c variabilelor a i b le-au fost atribuite valori. Chemai comanda whos indicnd n calitate de parametru a comenzii numele variabilelor. n fereastra de comand apare tabelul prezentat mai jos.

    >> b=2.98+3.86i; >> whos a b Name Size Bytes Class a 1x1 8 double array b 1x1 16 array (complex) Crand total is 2 elements using 24 bytes

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    20

    n coloana Class este indicat tipul variabilei, n Bytes - numrul de bii, pentru a pstra valoarea, iar Size conine informaia despre dimensiune. Dup tabel e plasat un rnd cu numrul total al volumului de memorie n octei pe care le ocup toate variabilele.

    1.5.2. tergerea determinrii variabilelor n memoria calculatorului variabilele ocup un anumit loc,

    numit spaiu de lucru (workspace). Pentru a curi spaiul de lucru se utilizeaz funcia clear n diferite forme, de exemplu:

    o clear - tergerea determinrii tuturor variabilelor o clear x - tergerea determinrii unei variabile (n cazul dat

    x) o clear a b c - tergerea determinrii ctorva variabile

    (n cazul dat a, b c). Variabila tears devine nedeterminat. Folosirea variabilelor

    nedeterminate nu se permite i aa ncercri vor da anunuri de eroare. ncercai s experimentai cu aceast funcie mpreun cu comanda whos :

    >> whos >> clear a b >> whos >> clear >> whos

    1.5.2. Fereastra Workspace n fereastra Workspace (v. fig. 1.7) se afla lista tuturor

    variabilelor n form de tabel ca i la comanda whos cu o singur diferen n ea este si un cmp cu valoarea variabilei.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    21

    Fig. 1.7. Fereastra Workspace

    Din fereastra Workspace e posibil: 1) de redactat valoarea variabilei: dac variabila e un simplu

    numr se face un clic pe valoarea ei, iar dac e matrice fcnd dublu clic pe variabil se deschide un tabel cu valorile elementelor care pot fi redactate;

    2) de schimbat numele variabilei (de exemplu - ca s nu pornim programul de la nceput, dac am greit numele variabilei n majuscule-minuscule);

    3) de duplicat variabila cu valoarea ei; 4) de ters o singur variabil sau pe toate odat (analogic

    clear); 5) de creat grafice de la valorile variabilelor. 1.6. Formatul numerelor MATLAB automat trece n domeniul numerelor complexe

    continund calculele. Comanda format servete pentru stabilirea formatului din rndul de comand. Poate fi stabilit unul din urmtoare formate:

    short format scurt cu punct plutitor cu 4 cifre dup punctul zecimal (se folosete iniial - default)

    long format lung cu punct plutitor cu 14 cifre dup punctul zecimal

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    22

    short e format exponenial cu 4 cifre dup punctul zecimal

    long e format exponenial cu 15 cifre dup punctul zecimal

    short g cea mai bun prezentare a datelor sau n formatul short sau n short e

    hex prezentarea numrului prin 16 cifre + datele pozitive i negative se arat prin semnele

    + i - dar cele nule- prin goluri. bank format pentru scoaterea sumelor bneti cu dou

    semne dup punctul zecimal rat numerele reale se prezint aproximativ ca raportul

    a dou numere mici ntregi Independent de formatul stabilit toate calculele se fac cu

    precizie dubl, prin urmare dup schimbul formatului de la short la long nu se cere de gsit din nou valoarea variabilelor. Este suficient de a scoate din nou valorile lor n fereastra de comand.

    >>a=1/3333; b=1/4; c=0.123456789; >> format short; a, b, c a = 3.0003e-004 b = 0.2500 c = 0.1235 >> format long; a, b, c a = 3.000300030003001e-004 b = 0.25000000000000 c = 0.12345678900000 >> format hex; a, b, c a = 3f33a9ab0cfb01ec b = 3fd0000000000000 c = 3fbf9add3739635f >> format +; a a =+ >> format bank; a, b, c a = 0.00 b = 0.25

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    23

    c = 0.12 >> format rat; a, b, c a = 1/3333 b = 1/4 c = 10/81

    MATLAB admite dou metode de vizualizare a rezultatelor n

    fereastra de comand: compact rndurile cu rezultatele se scot la rnd. loose rndurile cu rezultate se despart prin rnd gol. Experimentai cu aceste moduri de sinestttor, vizualiznd

    variabilele a, b i c. 1.7. Funciile matematice MATLAB are un numr mare de funcii matematice introduse.

    Unele din ele sunt prezentate n tabelul 1.7. Lista complet a tuturor funciilor matematice elementare poate fi obinut, culegnd n rndul de comand help elfun (din englez "elfun" "elementary functions" funcii elementare). Pentru a obine informaia amnunit despre sintaxa unei funcii culegei i executai n linia de comand help .

    Tabelul 1.2 Funciile matematice principale

    Funciile trigonometrice (argumentul se d n radiani) sin, cos, tan, cot Sinus, cosinus, tangenta, i cotangenta

    sec, csc Secanta, cosecanta Funciile trigonometrice inverse (rezultatul se calculeaz n

    radiani) asin, acos, atan, acot

    Arcsinus, arccosinus, arctangenta i arccotangent

    asec, acsc Arcsecanta, arccosecanta Funciile hiperbolice

    sinh, cosh, tanh, coth

    Sinus, cosinus, tangenta i cotangenta hiperbolice

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    24

    (Continuare) Tabelul 1.7 sech, csch Secant i cosecant hiperbolice

    asinh, acosh, atanh, acoth

    Arcsinus, arccosinus, arctangent i arccotangent;

    Funcie exponenial, logaritmii, funciile de putere exp Funcia exponenial

    log, log2, log10 Logaritm natural, logaritmii n baza 2 i 10 pow2 Ridicarea la ptrat

    sqrt, nthroot Rdcin ptrat, rdcina de ordinul N Modul, semnul i funciile pentru lucrul cu numere complexe

    abs, sign Modulul i semnul numrului conj, imag, real Complex-conjugat, partea imaginar i real

    Funcii speciale a constantelor cel mai des folosite pi 3.14159265... i, j unitatea imaginar, 1 eps eroarea relativ, 522=

    realmin cel mai mic numr real, 10222 realmax cel mai mare numr real, 10232)2(

    Inf Infinit NaN Nu este numr (Not-a-number)

    inei minte: La executarea funciei matematice argumentul se scrie n

    paranteze rotunde imediat dup numele funciei. Fie, de exemplu, c trebuie de gsit valoarea expresiei de mai

    jos cnd x = 0.2 i y = -3.9:

    31.0

    1.0

    1.0

    1.0

    34cos

    34sin

    34cos

    34sin

    y

    y

    y

    y

    ex

    ex

    ex

    exc

    +

    +

    ++

    +

    =

    n pachetul MATLAB vom avea: >> x=0.2; >> y= -3.9;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    25

    >> c=sqrt((sin(4/3*pi*x)+exp(0.1*y))/(cos(4/3*pi*x)+... exp(0.1*y)))+((sin(4/3*pi*x)+exp(0.1*y))/(cos(4/3*pi*x)+... exp(0.1*y)))^(1/3) c =

    2.0451 Este mai simplu de a rezolva aceast problem, aplicnd

    variabilele intermediare: >> x=0.2; >> y= -3.9; >> a= sin(4/3*pi*x)+exp(0.1*y); >> b= cos(4/3*pi*x)+exp(0.1*y); >> c=sqrt(a/b)+(a/b) ^ (1/3) c =

    2.0451 1.8. Vectorii i matricele n MATLAB matricea este un masiv rectangular de numere.

    Masivele sunt unul din cele mai rspndite procedee de pstrare a datelor i se folosesc n toate limbajele de programare. Sistemul MATLAB opereaz cu matrice mn. Scalarul este o matrice 11. n MATLAB masivul unidimensional poate fi vector-rnd sau vector-coloan. Vectorul este o matrice de tipul 1n. MATLAB are i alte forme de stocare a datelor, att numerice ct i non-numerice, dar ele sunt cazuri particulare a matricelor.

    inei minte: Avantajele MATLAB-ului: - n timp, ce unele limbaje de programare lucreaz doar cu

    cte un element din matrice, MATLAB permite s lucrm cu ntreaga matrice repede i uor.

    - nu este necesar s declarm dimensiunile matricelor - ele pot fi redimensionate pe parcursul lucrului.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    26

    1.8.1. Matricele Pentru a introduce orice matrice trebuie de inut cont de regulile

    urmtoare: de separat elementele unui rnd prin virgul sau spaiu

    (lacune) de folosit ; pentru a indica sfritul fiecrui rnd de luat toat lista de elemente n paranteze ptrate

    >> a=[1 2 3 4 5 6 7 8 9]; a = 1 2 3 4 5 6 7 8 9 >> b=[1 2 3; 4 5 6; 7 8 9; 10 11 12]; b = 1 2 3 4 5 6 7 8 9 10 11 12 >> c=[1 4 7 10; 2 5 8 11; 3 6 9 12] c = 1 4 7 10 2 5 8 11 3 6 9 12

    Vectorii sunt cazuri particulare a matricelor cu o singur linie

    sau cu o singur coloan: >> vl = [7 3 5 9] >> vl = [7,3,5,9] >> vc = [9;5;3;7]

    1.8.2. Introducerea matricelor Matricea (vectorul) se poate de introdus n cteva metode: - introducerea explicit a elementelor - citirea matricei dintr-un fiier cu date

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    27

    - generarea matricei folosind operatorul colon - generarea matricei folosind o funcie intern din MATLAB - crearea matricei cu funcia personal din M-fiier Introducerea explicit a elementelor matricelor de dimensiuni

    mici este comod din rndul de comand. Exist mai multe procedee de a introduce o matrice. De exemplu, matricea

    =

    129631185210741

    c

    >> c=[1 4 7 10; 2 5 8 11; 3 6 9 12] >> % sau c=[1,4,7,10; 2,5,8,11; 3,6,9,12] c = 1 4 7 10 2 5 8 11 3 6 9 12

    Ea poate fi introdus din rndul de comand culegnd expresia c=[14710 i apsm . Cursorul se deplaseaz n rndul urmtor (simbolul >> nu apare). Elementele fiecrui urmtor rnd al matricei se culeg i sfritul fiecrui rnd se termin cu apsarea tastei . Dup introducerea ultimului rnd la urm se pune paranteza ptrat de nchidere: >> c=[1 4 7 10 2 5 8 11 3 6 9 12]

    Alt procedeu const n aceea, c matricea poate fi introdus i

    prin combinarea a mai multor matrice. Matricea poate fi privit ca un vector-coloan, fiecare element

    al cruia este un rnd al matricei: [ ][ ][ ]

    =

    129631185210741

    c

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    28

    >> c=[[1 4 7 10]; [2 5 8 11]; [3 6 9 12]] Matricea poate fi considerat i ca un vector-rnd fiecare

    element al cruia este coloana matricei:

    =

    121110

    987

    654

    321

    c

    >> c=[[1;2;3] [4;5;6] [7;8;9] [10;11;12]] Matricea poate fi introdus i cu ajutorul altei matrice:

    >> c=[[1 4 7 10 ; 2 5 8 11]; [3 6 9 12]] >> c=[ [[1;2;3] [4;5;6]] [7;8;9] [10;11;12] ] >> c=[ [1 4; 2 5;3 6] [7;8;9] [10;11;12]]

    Matricele pot fi introduse prin metode mixte principalul e ca

    toate elementele s fie introduse. Exemplu: [ ]

    =1211

    9685

    32

    10741c

    >> c=[ [1 4] 7 10; [2;3] [5 8; 6 9] [11;12]] Exemple. Fie, c avem de introdus vectori-coloan i vectori-

    rnd

    =

    6.49.3

    2.01c

    =

    5.21.06.7

    2c

    [ ]1.87.35.01.01 =r [ ]7.54.37.92.52 =r

    n MATLAB n linia de comand va fi nevoie de scris urmtoarele rnduri >> c1=[0.2; -3.9; 4.6]; >> c2=[7.6; 0.1; 2.5];

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    29

    >> r1=[0.1 0.5 -3.7 8.1]; >> r2=[5.2 9.7 3.4 -0.2];

    1.8.3. Operatorul colon Operatorul colon ":" este un operator important n MATLAB.

    El poate fi n cteva forme diferite. Formatul de baz este :< valoarea final >

    rezultatul cruia este un vector elementele cruia sunt de la valoarea iniial pn la valoarea final.

    Urmtoarea expresia este un vector rnd care conine numerele ntregi de la 1 la 10:

    >> a = 1:9 a = 1 2 3 4 5 6 7 8 9

    Deoarece rezultatul operatorului colon este un vector urmtoarea expresie este echivalent cu cea precedent:

    >> a = [1:9] a = 1 2 3 4 5 6 7 8 9

    Aceleai matrice, artate anterior, pot fi introduse n felul

    urmtor >> a=[1:9]; b=[1:3;4:6;7:9;10:12]; >> c=[[1:3]` [4:6]` [7:9]` [10:12]`];

    Pentru a obine o incrementare neunitar, trebuie de specificat

    pasul. Formatul este: ::< valoarea final > De exemplu:

    >> 100:-7:50 100 93 86 79 72 65 58 51 >> 0:pi/4:pi 0 0.7854 1.5708 2.3562 3.1416

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    30

    1.8.4. Generarea matricelor ZEROS - generarea unei matrice elementele creia este 0.

    Sintaxa este zeros(m,n) unde m i n sunt dimensiunile matricei rezultante, iar dac m=n atunci zeros(n) unde n este dimensiunea matricei ptrate rezultante. Apelarea la funcia zeros fr argument este un scalar cu valoare 0.

    ONES - generarea unei matrice elementele creia este 1. Sintaxa este ones(m,n) unde m i n sunt dimensiunile matricei rezultante, iar dac m=n atunci ones(n) unde n este dimensiunea matricei ptrate rezultante. Apelarea la funcia ones fr argument este un scalar cu valoare 1. Generarea unei matrice elementele creia vor fi egale cu un numr k se execut n felul urmtor k*ones(m,n)

    RAND - crearea unei matrice cu elemente aleatorii. Sintaxa este rand(m,n) unde m i n sunt dimensiunile matricei rezultante, iar dac m=n atunci rand(n) unde n este dimensiunea matricei ptrate rezultante. Apelarea la funcia rand fr argument este un scalar cu valoare aleatorie.

    EYE - crearea unei matrice diagonala creia este egal cu 1 iar restul sunt 0. Sintaxa este eye(m,n) unde m i n sunt dimensiunile matricei rezultante, iar dac m=n atunci eye(n) unde n este dimensiunea matricei ptrate rezultante. Apelarea la funcia eye fr argument este un scalar cu valoarea 1.

    MAGIC - crearea unei matrice ptrate magice sumele elementelor fiecrui rnd i fiecrei coloane sunt egale. Sintaxa este magic(n) unde n este dimensiunea matricei ptrate.

    Exist i alte funcii, aa ca: hadamard matricea Hadamard, hilb - matricea Hilbert, invhilb - matricea Hilbert inversa, pascal - matricea Pascal, vander matricea Vandermonde, wilkinson matricea Wilkinson's etc.

    1.8.5. Apelri la matrice Pentru accesarea unui element al matricei este nevoie de scris

    variabila matricei i n paranteze rotunde de indicat numrul de ordine al elementului necesar, n caz general este M(y,x): unde M este

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    31

    numele matricei, x,y este numrul liniei i numrul coloanei al elementului dat. >> b(2,3) ans = 6 >> c(3,4) ans = 12

    Pentru un vector sintaxa este de V(n), unde n este numrul de ordine al elementului necesar, indiferent dac vectorul este vector-rnd sau vector-coloan. >> vl(2) ans =3 >> vc(2) ans =5

    n matricea M(m,n) elementul din rndul i i coloana j se

    noteaz ca M(i,j). De asemenea e posibil de adresat la elementul M(i,j) cu un singur index M(k) (fig. 1.8). Aceasta este metoda obinuit de apelare la elementele unui vector rnd sau vector coloan, dar, totodat, poate fi aplicat i la matrice bidimensionale. n aa caz masivul reiese ca un vector mare format din elementele matricei originale:

    Fig. 1.8. Apelarea la matrice folosind un singur index

    unde M(k)=M((i-1)*n+j), 1im , 1jn , 1km*n Adresarea la matrice, folosind operatorul colon, se va referi la o

    poriune din matrice. Rezultatul unei astfel de apelri va fi o alt matrice coninutul creia vor fi elementele apelate. Aa dar,

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    32

    adresarea A(i1:i2 , j1:j2) se va referi la elementele din coloanele de la j1 pn la j2 din rndurile de la i1 pn la i2 inclusiv (fig. 1.9).

    Fig. 1.9. Rezultatul adresrii la matrice A(i1:i2 , j1:j2)

    n aa mod se poate de setat automat o poriune a matricei cu o

    valoare anumit: >> d=c; d(1:2,2:3)=0 d = 1 0 0 10 2 0 0 11 3 6 9 12

    Operatorul colon indicat fr valori refer la toate elementele

    din rnd sau coloan a matricei iar cuvntul cheie "end" refer la ultimul rnd sau ultima coloan. Exemplu de mai jos va indica elementele din toate rndurile din ultima coloana: >> c(:,end) ans = 10 11 12

    Dac vei ncerca s apelai la un element n afara limitelor

    matricei vei primi o eroare: >> a(0),a(10),vl(0),vl(5),vc(0),vc(5),b(0,1),c(4,5) Index exceeds matrix dimensions.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    33

    Pe de alt parte, dac vei memoriza un element n afara matricei, dimensiunile ei vor crete pn nu va ndestula rezultatul:

    >> d=c; d(3,5) = 15 d = 1 4 7 10 0 2 5 8 11 0 3 6 9 12 15

    Pentru rearanjarea coloanelor sau liniilor unei matrice este

    nevoie la apelare n loc de index de indicat un vector cu lista liniilor sau coloanelor ce trebuie rearanjate: >> c(:,[1 3 2 4]) ans = 1 7 4 10 2 8 5 11 3 9 6 12 >> c([1 3 2],:) 1 4 7 10 3 6 9 12 2 5 8 11

    Dac rearanjm i coloanele i liniile concomitent MATLAB mai nti rearanjeaz coloanele iar pe urm liniile: >> c([3 1 2], [2 1 3 4]); c(:, [2 1 3 4]); ans([3 1 2], :) ans = 6 3 9 12 4 1 7 10 5 2 8 11

    1.8.6. Dimensiunile matricei Pentru a calcula lungimea vectorului se folosete funcia length,

    iar vectorul se indic ca argument >> length(a) ans=9

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    34

    Dac argumentul este o matrice, atunci funcia length va indica dimensiunea maxim dintre numrul de rnduri sau coloane >> length(b) ans=4

    Funcia size determin dimensiunile masivului. Ea prezint rezultatul n form de vector format din dou elemente: primul element este egal cu numrul de rnduri, iar al doilea cu numrul de coloane >> sc=size(c) sc = 3 4

    Din paragraful precedent tim, c dac memorizm un element n afara matricei, dimensiunile ei vor crete pn nu va ndestula rezultatul: >> d=c; d(3,5) = 15; >> size(d) ans = 3 5

    Dac avem nevoie de ters o linie sau coloan este nevoie de egalat aceast coloan cu un vector nul: >> d(:,5)=[], size(d) d = 1 4 7 10 2 5 8 11 3 6 9 12 ans = 3 4

    1.8.7. Operaiile cu matrice Matricele de aceleai dimensiuni se adun i se scad una din

    alta cu ajutorul semnelor + i -. Aceasta este valabil i pentru vectori: >> c3=c1+c2; c4=c1-c2; >> l3=l1+l2; l4=l1-l2;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    35

    Semnul * servete pentru nmulirea matricelor conform regulilor matematice, adic A(m,n)*B(n,k)=P(m,k): >> p= b*c p = 14 32 50 68 32 77 122 167 50 122 194 266 68 167 266 365

    Apostroful servete pentru a determina matricea transpus

    (echivalent cu funcia transp). Pentru a ridica o matrice ptrat la putere se aplic ^.

    1.8.8. Operaiile cu masivele (tabelele) Dac ne vom ndeprta de algebra liniar, matricele pot fi

    privite ca masive numerice bidimensionale. Operaiile aritmetice se nfptuiesc cu fiecare element pe rnd. Cum aceasta lucreaz? Foarte simplu. Dac avem o expresie aritmetic cu cteva variabile:

    - n primul rnd masivele trebuie s fie de aceleai dimensiuni

    - pentru fiecare pereche de elemente respective din variabilele date se calculeaz valoarea expresiei iar rezultatul se nscrie n elementul respectiv al variabilei rezultante - dac avem X(m,n) i Y(m,n) i funcia F(X,Y) atunci rezultatul va fi Z(m,n) unde Z(i,j)=F(X(i,j),Y(i,j))

    De aici rezult, ca adunarea i scderea pentru masive i matrice sunt identice - X+Y este echivalent cu X.+Y, ns operaiile multiplicative sunt diferite - X*Y nu este echivalent cu X.*Y.

    MATLAB folosete punctul . ca parte a notaiei pentru operaiile multiplicative a masivelor.

    Lista operaiilor include: + Adunarea - Scderea .* nmulirea masivelor (element cu element) ./ mprirea masivelor (element cu element)

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    36

    .\ mprirea la stnga a masivelor (element cu element)

    .^ Ridicarea la putere a masivelor (element cu element)

    .' Transpunerea masivelor De exemplu, pentru vectorii precedeni :

    >> c2=[20:23; 30:33; 40:43] >> c3=c .* c2 c3 = 20 84 154 230 60 155 256 363 120 246 378 516

    Un exemplu de calcul a funciilor mai complicate de la valorile

    vectorilor. Des se cere de a calcula o funcie de la valorile argumentului

    unui vector, care se deosebesc cu un pas constant:

    1sin)(

    2

    ++=

    xxxxxf pentru x=[-1.2 1.8] cu pasul 0.5.

    Consecutivitatea de comenzi este: >> x=-1.2:0.5:1.8; >> f=(x.*sin(x)+x.^2)./(x+1);

    i duce la crearea vectorilor: >> x x = -1.2000 -0.7000 -0.2000 0.3000 0.8000 1.3000 1.8000 >> f f = -12.7922 3.1365 0.0997 0.1374 0.6744 1.2794 1.7832

    1.8.9. Lucrul cu matricele Vectorii pot fi argumente la funcii, ca sin, cos etc. n rezultat

    se obine un vector cu elementele egale cu valorile funciei respective de la elementele vectorului iniial, de exemplu: >> sin(a)

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    37

    ans = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 0.4121 >> sin([0 pi/2 pi]) ans = 0 1.0000 0.0000

    Operaia de transpunere se nseamn cu un apostrof '.

    Operaia inverseaz matricea fa de diagonala principal i preface un vector rnd n vector coloan i viceversa. >> b' ans = 1 4 7 10 2 5 8 11 3 6 9 12 >> c' ans = 1 2 3 4 5 6 7 8 9 10 11 12

    FLIPLR inverseaz matricea n direcia din stnga n dreapta. FLIPUD inverseaz matricea de sus n jos. De exemplu:

    >>fliplr(b) ans = 10 3 2 1 11 6 5 4 12 9 8 7 >> flipud(b) ans = 10 11 12 7 8 9 4 5 6 1 2 3

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    38

    SUM suma elementelor. S = SUM(X) este suma elementelor a vectorului X. Dac X este

    matrice, S este un vector cu sumele fiecrei coloane. >> sum(a),sum(b) ans = 45 ans = 22 26 30

    Suma tuturor elementelor tabelei se poate de obinut prin

    SUM(SUM(X)). Cum de calculat suma rndurilor? MATLAB prefer s lucreze cu coloanele matricelor, deci, cel mai uor mod de a calcula suma rndurilor este:

    1) transpunerea matricei; 2) calcularea sumei coloanelor a matricei transpuse; 3) transpunerea rezultatului primit.

    >> sum(a')',sum(b')' ans = 45 ans = 6 15 24 33

    DIAG este: 1-matrice diagonal din vector i 2-vector format

    din diagonala matricei. DIAG(V,K) cnd V este un vector cu N elemente este o matrice

    ptrat cu rangul N+ABS(K) cu elementele vectorului V n diagonala K. Dac K > 0 este diagonala mai sus de diagonala principal iar cnd K < 0 - mai jos de diagonala principal. Dac K = 0, atunci DIAG(V) este echivalent cu DIAG(V,0) i seteaz elementele vectorului V n diagonala principal.

    Cnd X este o matrice, rezultatul DIAG(X,K), este un vector coloan format din elementele diagonalei K din X. Rezultatul

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    39

    DIAG(X) este un vector coloan format din elementele diagonalei principale din X. >> diag([1 2 3]) ans = 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0

    >> diag(a,1) ans = 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0

    >> diag(a,-1) ans = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 0

    DIAG(DIAG(X)) este o matrice diagonal. Diagonala secundar matematic nu este important, de aceea

    MATLAB nu are funcie pentru ea, dar e posibil de calculat - diag(fliplr(b)).

    1.9. Anunul despre erori i ndreptarea

    erorilor MATLAB controleaz comenzile introduse i expresiile i

    anun despre erori sau prentmpinri. S considerm un exemplu. S introducem greit expresia i s apsm tasta . Sistemul va anuna despre eroare:

    >> sqr(2) ??? Undefined function or variable sqr.

    Acest anun nseamn c nu este determinat variabila sau

    funcia i indic care anume - sqr. n acest caz se poate de cules din nou expresia corect. ns n cazul expresiilor complicate e mai bine de folosit redactarea. Cu ajutorul tastei trecem n rndul precedent redactat (vezi punctul 1.2), adic >>sqr(2) cu cursorul la capt.

    Dac utilizatorul a uitat numele oarecrei funcii se poate de apsat tasta , dup care sistema va analiza simbolurile introduse i ne va da o variant (variantele) de rspuns. Fii ateni - MATLAB analizeaz simbolurile introduse pn la cursor.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    40

    n versiunea MATLAB 7:

    Fig.1.10. Meniul de completare a comenzii n MATLAB 7

    1. dac exist o singur variant, atunci dup apsarea tastei sistemul ar fi terminat numele funciei necunoscute fr transferul rndului.

    2. dac variante sunt cteva i este apsat tasta atunci apare un meniu cu toate variantele posibile sortate n ordine alfabetic de unde e posibil de selectat doar o singur variant dorit (fig. 1.10). n versiunea MATLAB 6 :

    1. dac exist o singur variant, atunci dup apsarea tastei sistemul ar fi terminat numele funciei necunoscute fr transferul rndului.

    2. dac variante sunt cteva i tasta se apas doar o singur dat atunci MATLAB d un sunet de avertizare

    3. dac variante sunt cteva i tasta va fi apsat dublu atunci MATLAB va afia variantele posibile n fereastra Command Window i va repeta linia de comand introdus. S considerm un exemplu:

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    41

    >> cl cl2tf cleanaxe clg cloop clusterdata cla cleanerrormsg clipboard close clutch clabel cleanp clipdata close_system clutch_if cliprollregions clabelm closereq cleanupcomment class clear cliptr clrmenu clutchplot_if classfin clearcase clma clrpopup clxbode classify clegendm clmo clruprop clyap clc clf clock cluster >> cle cleanaxe cleanp clear clegendm cleanerrormsg cleanupcomment clearcase >> cleanupc >> cleanupcomment

    La introducerea unei expresii matematice greite sau a unui

    simbol necunoscut MATLAB anun despre eroare i indic locul erorii cu un indicator de tip |.

    Exemplu. Memorizai din Word n clipboard i inserai n

    MATLAB urmtoarea expresie : x=10 2 3 >> x=10 2 3 ??? x=10 2 ? 3 | Error: Missing variable or function. >> x=10 2 3 ??? x=10 2 ? 3 | Error: Missing operator, comma, or semicolon.

    Command windows din MATLAB 7 in comparaie cu

    MATLAB 6 este mai sofisticat i arat simbolurile din Word aa cum sunt n Word, ns tot le evideniaz ca greeli (de ex., fig.1.11, a) i b)).

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    42

    a) Matlab 6 b) Matlab 7

    Fig.1.11. Simbolurile necunoscute n MATLAB

    MATLAB are un ajutor foarte bogat. Comanda help prezint n

    fereastra de comand lista diviziunilor sistemului de informaii. Pentru a obine coninutul diviziunii trebuie de indicat help i printr-un spaiu (loc gol) numele ei, iar pentru a extrage informaia detailat despre o funcie oarecare, trebuie de introdus n rndul cu help numele funciei:

    >> help sqrt SQRT Square root. SQRT(X) is the square root of the elements of X. Complex results are produced if X is not positive. See also SQRTM. Overloaded methods help sym/sqrt.m

    La scrierea expresiilor matematice cu multe paranteze des se

    ntmpl scparea unor paranteze deschise sau nchise de prisos, care la executare v-a da eroare:

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    43

    Fig.1.12. Exemplu de eroare cu paranteze de prisos n cazul acesta MATLAB ofer posibilitatea de a gsi perechile

    de paranteze (indiferent de care - ")", "]", "}") i ajut la corectarea expresiilor (fig. 1.12). Acest ajutor sistemul MATLAB l arat doar cteva secunde.

    n versiunea MATLAB 7: Acest ajutor n aceast versiune este mai avansat.

    a) perechea gsit b) fr pereche

    Fig.1.13. Exemplu cu perechile de paranteze. Plasnd cursorul dup o parantez, MATLAB i caut perechea

    i dac o gsete le subliniaz pe ambele, iar dac perechea nu a fost gsit paranteza la care a fost plasat cursorul este ntretiat, dnd de tire c trebuie eliminat (fig. 1.13).

    n versiunea MATLAB 6: n aceast versiune MATLAB caut perechile doar la

    editarea rndului - dac gsete perechea la paranteza introdus atunci automat le evideniaz pe ambele.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    44

    Sfaturi practice. nceputul fiecrui program ncepei cu tergerea tuturor

    variabilelor din sesiune. Aceasta v d posibilitatea s evitai eroarea folosirii variabilelor determinate din programul precedent.

    Preferabil ca orice program s se nceap cu comenzile clear; format compact;

    Sarcina Lucrrii nr. 1. I. Descriei comenzile de baz n regimul de comand a Programului MATLAB. II. n toate exerciiile se cere de a introduce ntr-o variabil oarecare valorile expresiilor cnd x = -1.75*10-3 i y = 3.1. De calculat expresiile mai nti ntr-un rnd, iar pe urm de optimizat (dup posibilitate) folosind variabilele intermediare. De prezentat rezultatul n diferite formate i de studiat informaia despre variabile cu ajutorul comenzii whos.

    Varianta Expresiile

    1

    3.5

    1sin cos sin sin ;

    sin sin cos

    x x x

    x x

    e y e y e yF x yx y e y e y

    + += + + + +

    5

    2 5

    ln2 sin;

    2 sinln

    x x yx yF arctg

    x yx y

    = +

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    45

    2

    ( )32.51

    ln cos;

    ln cosx ctgyx y

    Ax ctgy x y

    + += + + +

    ( ) ( )32 22 2 2

    cos cosln sin ;

    coscos

    x y x yA sh y x

    x yx y

    + = + ++

    3

    xxtgyx

    xyxy

    tgyxB 23

    5.21.33

    1 sin)ln(sin

    lnsin+

    ++

    += ;

    ( ) ( )( )

    21.3 3 2

    2 1.51.3 32

    sin 1 cosln ;

    sincos

    x y x yB ch

    x yx y

    + += +++

    4

    ( )( )( )( )

    2.322

    1 22

    1 1 2 ln;

    ln 1 1 2

    x x x ctgy xH

    ctgy x x x

    + + = + + +

    2 2

    2cosarcsin ln ;

    lnx yH x y

    x y

    + = +

    5

    ( )( )

    2

    1 2

    cos 3sin 100 cos;

    100 cos 3sin

    x

    x

    e y y x tgy yZ

    x tgy e y y

    + + += ++ +

    ( )3 2.32 22 2 2

    cos sin;

    sin cosx y x y

    Z cthx y x y+ + = + + +

    6

    ( )( )

    2.12

    1 2 2

    1 2 100 sin ;100 1 2

    x x x ctgy yQx ctgy x x

    + + + = + + +

    ( ) ( )( )

    2.2 1.33 2

    2 33

    cos sin;

    sin cos

    x y x x yQ

    x y x y

    += ++

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    46

    7

    ( )( )

    ( )( )

    2.22

    1 1/3 422

    5 sin;

    50 sin

    x yx x tgyR

    x x tgyx y

    ++= + ++

    ( ) ( )2

    2 1.3 1/32

    ln cos2 sin;

    ln 2 sin

    x tgy yx yR sh

    x tgy x x y

    + ++= + + +

    8

    ( )( ) ( )( )

    2 1/32 3

    1 2 3

    2 1 3 sin ln cos;

    sin ln 1 3

    x x x y x yT

    y x x x

    + + + += ++ +

    ( )( )

    ( )( )

    1/ 44

    2 1/ 44

    1 2 cosarcsin cos 2;

    arcsin cos 2 sin1 2

    x yy xT

    y x yx

    + ++= + + ++

    9

    2.5

    31sin cos sin sin ;

    sin sin cos

    x x

    x x

    e y e y x yF x yx y e y e y

    + += + + + + 1.3

    2 2

    2cosarcsin ln ;

    lnx yH x y

    x y

    + = +

    10

    ( )32.55

    1

    ln cos;

    ln cosx ctgyx y

    Ax ctgy x y

    + += + + +

    ( )2 2.32 22 2 2

    cos sin;

    sin cosx y x y

    Z cthx y x y+ + = + + +

    11

    ( )2.33 21 3

    sin ln 2.5sin ;

    sin lny xx tgyB x y

    y x x tgy

    += + + +

    ( ) ( )( )

    1.3 1.33 2

    2 33

    cos sin;

    sin cos

    x y x x yQ

    x y x y

    += ++

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    47

    12

    ( )( )( )( )

    2.322

    1 22

    1 1 2 ln;

    ln 1 1 2

    x x x ctgy xH

    ctgy x x x

    + + = + + +

    ( ) ( )2

    2 1.3 1/32

    ln cos2 sin;

    ln 2 sin

    x tgy yx yR sh

    x tgy x x y

    + ++= + + +

    13

    ( )( )

    2

    1 2

    cos 3sin 100 cos;

    100 cos 3sin

    x

    x

    e y y x tgy yZ

    x tgy e y y

    + + += ++ +

    ( )( )

    ( )( )

    1/ 44

    2 1/ 44

    1 2 cosarcsin cos 2;

    arcsin cos 2 sin1 2

    x yy xT

    y x yx

    + ++= + + ++

    14

    ( )( )

    2.12

    1 2 2

    1 2 100 sin ;100 1 2

    x x x ctgy yQx ctgy x x

    + + + = + + +

    5

    2 5

    ln2 sin;

    2 sinln

    x x yx yF arctg

    x yx y

    = +

    15

    ( )( )

    ( )( )

    2.22

    1 1/3 422

    5 sin;

    50 sin

    x yx x tgyR

    x x tgyx y

    ++= + ++

    ( ) ( )32 22 2 2

    cos cosln sin ;

    coscos

    x y x yA sh y x

    x yx y

    + = + ++

    16

    ( )( ) ( )( )

    2 1/32 3

    1 2 3

    2 1 3 sin ln cos;

    sin ln 1 3

    x x x y x yT

    y x x x

    + + + += ++ +

    ( ) ( )( )

    21.3 3 2

    2 1.51.3 32

    sin 1 cosln ;

    sincos

    x y x yB ch

    x yx y

    + += +++

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    48

    17

    ( )32.51

    ln cos;

    ln cosx ctgyx y

    Ax ctgy x y

    + += + + +

    1.32 2

    2cosarcsin ln ;

    lnx yH x y

    x y

    + = +

    18

    ( )3.13 21 3

    sin ln 2.5sin ;

    sin lny xx tgyB x y

    y x x tgy

    += + + +

    ( )3 2.32 22 2 2

    cos sin;

    sin cosx y x y

    Z cthx y x y+ + = + + +

    19

    ( )( )( )( )

    2.322

    1 22

    1 1 2 ln;

    ln 1 1 2

    x x x ctgy xH

    ctgy x x x

    + + = + + +

    ( ) ( )( )

    2.2 1.33 2

    2 33

    cos sin;

    sin cos

    x y x x yQ

    x y x y

    += ++

    20

    ( )( )

    2

    1 2

    cos 3sin 100 cos;

    100 cos 3sin

    x

    x

    e y y x tgy yZ

    x tgy e y y

    + + += ++ +

    ( ) ( )2

    2 1.3 1/32

    ln cos2 sin;

    ln 2 sin

    x tgy yx yR sh

    x tgy x x y

    + ++= + + +

    21

    ( )( )

    ( )( )

    2.22

    1 1/3 422

    5 sin;

    50 sin

    x yx x tgyR

    x x tgyx y

    ++= + ++

    5

    2 5

    ln2 sin;

    2 sinln

    x x yx yF arctg

    x yx y

    = +

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    49

    22

    ( )( )

    2.12

    1 2 2

    1 2 100 sin ;100 1 2

    x x x ctgy yQx ctgy x x

    + + + = + + +

    ( ) ( )32 22 2 2

    cos cosln sin ;

    coscos

    x y x yA sh y x

    x yx y

    + = + ++

    23

    ( )( ) ( )( )

    2 1/32 3

    1 2 3

    2 1 3 sin ln cos;

    sin ln 1 3

    x x x y x yT

    y x x x

    + + + += ++ + 1.3

    2 2

    2cosarcsin ln ;

    lnx yH x y

    x y

    + = +

    24

    F = 2.3

    sin 2 cos sin 2 cosln sin200 200

    x x x xe y y e y yyx y x y

    + ++ + + ;

    ( ) ( ) ( ) ( )2 3

    2 35 3

    1 1 21 1 2

    lnx x x

    A x x xctgy

    + += + + + ;

    25

    23

    2 3

    1sin( )sin( )

    x xx yZ arctg

    x yx x

    = ;

    sin cossin cos 1x x

    x y e y e yQ e y e ytgy

    += + + + ;

    26

    x

    xe

    yyy

    eyyy

    yyyT 3sin2sinsin13sin2sinsin1

    )3sin2sin(sin 4 +++++++++= ;

    ( ) ( )cos 2 sin 4

    3 sin 4 cos 2 2 2

    x x

    x x

    y y e eH

    e e y y

    + + += + + ;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    50

    27

    1lnln1

    x tgyyyW

    x tgy

    ++ = + + ;

    ( ) ( )3ln

    ln lnln

    x yR sh ch x y x y

    x y+ = + ;

    28

    F = 2.3

    sin 2 cos sin 2 cosln sin200 200

    x x x xe y y e y yyx y x y

    + ++ + + ( ) ( )

    3lnln ln

    ln

    x yR sh ch x y x y

    x y+ = + ;

    29 ( ) ( ) ( ) ( )

    2 32 3

    5 31 1 2

    1 1 2ln

    x x xA x x x

    ctgy+ += + + + ;

    23 )22cos4(sin)(4sin2cos

    +++++=

    yyeeeeyy

    H xxxx

    ;

    30

    sin cossin cos 1x x

    x y e y e yQ e y e ytgy

    += + + + ; 1

    lnln1

    x tgyyyW

    x tgy

    ++ = + + ;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    51

    III. De calculat valorile funciei pe segmentul dat n N puncte la intervale egale unul de altul. Optimizai programul folosind variabilele intermediare. Varianta Funcia Intervalul N

    1 ( ) ( )2 2ln 1 cosy x x x x= + + [ ], N=8 2 ( ) 2 ln

    1

    x

    x

    ey x x xe

    = ++ [ ]1,3 N=6 3 ( ) ( )3sin 2xy x e x x= + [ ], 2 N=9 4 ( ) ( )2 cos ln 3y x x x x= + [ ]0.5, 2 N=8 5 ( ) ( )sin lnxy x e x x x= + [ ]0.2,3 N=7 6 ( ) ( )2 2ln 1 siny x x x x x= + + [ ], N=8 7 ( ) sin cosx xy x e x e x= + [ ], N=7 8 ( ) ( ) ( )ln lny x x x ch x x= + + [ ]1,3 N=5 9 ( ) ( ) ( )2 21 ln 1xy x e x x= + + + [ ]0,3 N=7

    10 ( ) ( )2 22sin cos 1y x x x= + [ ]0, 2 N=8 11 ( ) ( )3 2sin ln 2 cosy x x x x x= + + 3,2 2 N=6 12 ( ) ( )2 2 2sinxy x e x x ctgx= + [ ], 2 N=7 13 ( ) ( )ln cos lny x x x x x= + [ ]0.3,3 N=6 14 ( ) ( )2 2cos 1xy x e x x= + [ ]1,3 N=8 15 ( ) ( )2 ln 1 cosy x x x x x= + + 3,

    2 2 N=7

    16 ( ) ( )2 lnx xy x e e x x= + + [ ]0.2, 4 N=6 17 ( ) ( )2 sin ln 4y x x x x= + [ ]1,3 N=7

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    52

    18 ( ) ( )3cos 3xy x e x x= + [ ],3 N=8 19 ( ) ( )2 2cosy x x x thx= + [ ], 2 N=7 20 ( ) ( ) ( )2 ln 1 1y x x x ctg x= + + + [ ]0.3, 4 N=6 21 ( ) ( )3 2siny x x xtgx x= + [ ],3 N=8 22 ( ) ( )( )2ln 1 sin arcsiny x x x x x= + +

    [ ]1,3 N=7

    23 ( ) ( )3 2cos ln 2 siny x x x x x= + + [ ],3 N=8 24

    1cossin)( 2 += x

    xxxy ]2,0[ N=1025 xx eexxy ++= )1ln()( ],2.0[ N=8 26 xtgxxy arcsin)( 2= ]

    31,0[ N=9

    27 1

    sin)( 3 ++= xexxxxy

    x

    ]1,0[ N=7

    28 x

    xxy

    ++=

    11

    1)( ]3,0[ N=9

    29 2cossin

    )(x

    eexyxx += ]3,[ N=11

    30 )2cos2(sin)1()( 2 xxxctgxy ++= ]1,1[ N=7

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    53

    Lucrarea nr. 2. Grafica n sistemul MATLAB 2.1. Crearea graficelor Tipul graficului selectat depinde de natura datelor i ce dorim

    s artm. MATLAB are multe tipuri de grafice redefinite, aa ca linii, bare, histograme, etc. De asemenea sunt grafice tridimensionale, aa ca carcase, suprafee, plane, linii de contur etc.

    Sunt dou metode de creare a graficelor n MATLAB: 1) crearea interactiv i 2) crearea graficelor cu programele introduse n linia de comand. V-om studia mai detailat metoda a doua.

    2.1.1. Fereastra cu grafic Toate graficele se scot n ferestre ale graficelor cu meniurile i

    panelele de instrumente ale sale. Forma graficelor poate fi schimbat interactiv cu ajutorul instrumentelor ferestrei graficului.

    Desennd un grafic, MATLAB automat deschide o fereastr-figur (fereastr cu figur, mai departe o v-om numi i prescurtat - figura) dac aa fereastr nc nu exist. Dac figura exist, MATLAB desin n ea. Dac sunt mai multe figuri, MATLAB desin n figura marcat figura activ. Figura activ este ultima figur folosit sau activat de utilizator.

    Dac se cere de a obine cteva grafice n diferite ferestre, atunci nainte de a chema funcia grafic trebuie de apelat comanda figure fr parametri, care deschide o figur nou i o face activ. Ferestrele graficelor vor fi numerotate Figure No1, Figure No 2, etc. Pentru a seta o figur activ e necesar de a clica cu mausul pe fereastra dat sau n linia de comand de scris

    >> figure(n);

    unde n este numrul figuri date (se indic n bara de titlu a ferestrei). Rezultatul a comenzilor grafice vor fi artate n aceast figur.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    54

    Fig. 2.1. Exemplu de fereastr-figur

    Fiecare fereastr are axele de coordonate ale sale. Dac chiar n

    fereastr sunt mai multe axe, graficul va aprea n axele curente, care sunt ultimele din cele create. Pentru a alege axele curente din cteva este suficient de a clica pe ele cu butonul din stnga a mousul nainte de a chema funcia grafic.

    2.1.2. tergerea figurii Dac o figur deja exist, majoritatea comenzilor de desenare

    terg axele i folosesc aceast figur pentru crearea unui grafic nou. Pe de alt parte, aceste comenzi nu v-or reseta proprietile figurii aa ca culoarea fonului sau paleta de culori. Dac ai setat careva proprietate a figurii precedente i nainte de crearea unui grafic nou dorii s le resetai trebuie de apelat la comanda clf (din englez clear figure) cu opiunea reset: >> clf >> clf reset

    Comanda clf terge figura fr resetarea proprietilor ei. Tot acelai rezultat v-om obine dac din meniul figurii v-om selecta Edit -> Clear Figure.

    2.2. Construirea graficelor funciilor

    de o singur variabil S construim graficul funciei de o variabil

    2sin)( xxexf x += pe segmentul [-2,2]. Primul pas const n determinarea coordonatelor punctelor pe axa absciselor. Construirea vectorului x1 cu elemente de pas constant se efectueaz cu ajutorul

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    55

    operatorului colon. Mai departe trebuie de calculat valorile f(x1) pentru fiecare element al vectorului x1 i de scris rezultatul n vectorul y1. Pentru construirea graficului funciei trebuie de folosit funcia plot. Se indic argumentele x1 i y1 n paranteze rotunde. Ordinea comenzilor sunt indicate mai jos

    >> x1=[-2:0.05:2]; >> y1=exp(x1).*sin(pi*x1)+x1.^2; >> plot(x1,y1)

    n urma executrii funciei plot apare graficul funciei (fig. 2.2):

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    Fig. 2.2. Graficul funciei

    2.2.1. Funcia comet Funcia comet permite de a urmri micarea punctului pe

    traiectorie. La apelarea comet(x,y) apare fereastra graficului pe axele crora se deseneaz micarea punctului n forma unei comete cu coad. Viteza micrii poate fi controlat prin schimbarea pasului la determinarea vectorului valorilor parametrului.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    56

    2.3. Construirea graficelor funciilor de dou variabile

    Exist o serie de funcii grafice pentru a vizualiza funciile de

    dou variabile: plot3 - analogul 3-dimensional a funciei plot; mesh - carcasa suprafeei; surf - suprafa plin de culoare; contour - grafic plan cu liniile de nivel; meshc, surfc - suprafa cu liniile de nivel n planul x,y; contourf - grafic plan cu liniile de nivel colorat; contour3 - suprafa compus din linii de nivel; surfl - suprafa luminat.

    Fie c trebuie de obinut carcasa suprafeei funciei

    )sin(),( yeyxz x = n dreptunghiul ]1,1[x , ]2,0[y . Primul pas const n indicarea scrii pe dreptunghi, adic punctele, care vor fi folosite pentru a calcula valorile funciei. Pentru a genera scara se folosete funcia meshgrid, care depinde de dou argumente vectorii care determin scrile pe axele x i y.

    Funcia meshgrid, creeaz dou variabile care sunt matrice

    >> [x3,y3]=meshgrid(-1:0.1:1,0:0.1:2); Matricea x3 const din aceleai rnduri egale cu primul

    argument vector n funcia meshgrid, iar matricea y3 din coloane egale care coincid cu al doilea argument n meshgrid. Aceste matrice sunt necesare pentru a face al doilea pas la completarea matricei z3, fiecare element al creia este o valoare a funciei z(x,y) n punctele scrii. Obinem matricea necesar z3: >> z3=exp(-x3).*sin(pi*y3);

    Pentru a construi graficul z(x,y) a rmas de chemat funcia

    grafic potrivit, de exemplu: >> mesh(x3,y3,z3)

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    57

    -1-0.5

    00.5

    1

    0

    1

    2-4

    -2

    0

    2

    4

    -1

    -0.50

    0.51

    0

    1

    2-4

    -2

    0

    2

    4

    Fig. 2.3. Carcasa (mesh) i suprafaa (surf) funciei z(x, y). Pe ecran apare fereastra grafic cu suprafaa funciei cercetate,

    culoarea cruia corespunde valorii implicite colorcube (culorile graficelor 3-dimensionale vor fi analizate mai departe).

    Pentru obinerea suprafeei funciei se folosete funcia surf, care se aseamn cu mesh doar prin aceea, c mesh desin carcasa iar surf suprafaa (se apeleaz ca i funcia mesh) (Fig.2.3). >> surf(x3,y3,z3)

    2.3.1. Construirea graficelor plane cu

    liniile de nivel Grafic plan cu liniile de nivel i grafic plan cu liniile de nivel

    colorat a funciei (fig. 2.4): >> contour(x3,y3,z3) >> contourf(x3,y3,z3)

    -1 -0.5 0 0.5 10

    0.5

    1

    1.5

    2

    -1 -0.5 0 0.5 10

    0.5

    1

    1.5

    2

    Fig. 2.4. Liniile de nivel (contour) i liniile de nivel colorat

    (contourf) a funciei.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    58

    Numrul liniilor de nivel se indic n al patrulea argument, adugtor, de exemplu: >> contour(x3,y3,z3, 10); contourf(x3,y3,z3, 10);

    n locul numrului liniilor se poate de indicat n form de vector valorile lui z(x,y) pentru care trebuie de construit liniile de nivel (fig. 2.5): >> contour(x3,y3,z3,[-0.51 -0.25 -0.01 0.89]) >> contourf(x3,y3,z3,[-3:0.3:3]) %sau setm pasul nostru

    -1 -0.5 0 0.5 10

    0.5

    1

    1.5

    2

    -2.4

    -2.1

    -1.8

    -1.8

    -1.5

    -1.5

    -1.2

    -1.2

    -1.2

    -0.9

    -0.9

    -0.9

    -0.9

    -0.6-0.6

    -0.6

    -0.6-0.6

    -0.3 -0.3-0.3

    0 0 0 00.3 0.30.3

    0.30.30.3

    0.60.6

    0.6

    0.60.6

    0.9

    0.9

    0.9

    0.9

    1.2

    1.2

    1.2

    1.5

    1.5

    -0.3-0.3-0.3

    1.8

    1.8

    2.1

    2.4

    -1 -0.5 0 0.5 10

    0.5

    1

    1.5

    2

    Fig. 2.5. Setarea numrului liniilor de nivel i valorile lor. Suprafaa format din liniile de nivel se prezint aa (fig.2.6):

    >> contour3(x3,y3,z3,[-3:0.1:3]);

    -1-0.5

    00.5

    1

    0

    1

    2-4

    -2

    0

    2

    4

    Fig. 2.6. Suprafaa format din liniile de nivel.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    59

    Pentru a introduce pe fiecare linie nscrieri cu valorile respective ale lui z(x,y) trebuie de chemat clabel cu dou argumente, unul fiind matricea cu informaia despre poziia liniei de nivel, iar al doilea vectorul cu indicii pe linii. Variabilele obinute trebuie folosite ca argumente ale funciei clabel: >> [CMatr, h] = contour(x3, y3, z3, [-3:0.3:3]); >> clabel(CMatr, h)

    2.4. Construirea graficelor funciilor

    determinate n mod parametric Fie c trebuie de construit graficul unei funcii determinate n

    mod parametric, de exemplu graficul isteroidei ttx 3cos)( = , ttx 3sin)( = , ]2,0[ t . Mai nti trebuie de determinat vectorul t,

    apoi de introdus valorile x(t), y(t) n vectorii x, y i de aplicat plot, pentru a descrie dependena lui y de x (fig. 2.7): >> t=[0:pi/20:2*pi]; >> x2=cos(t).^3; >> y2=sin(t).^3; >> plot(x2,y2)

    -1 -0.5 0 0.5 1-1

    -0.5

    0

    0.5

    1

    -10

    -50

    51

    -10

    0

    100

    10

    20

    30

    Fig. 2.7. Graficele funciilor determinate n mod parametric Pentru funciile de dou variabile

    >> cercuri=4; raza=10;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    60

    >> unghiul=[0:pi/20:cercuri*2*pi]; >> x2=raza*cos(unghiul); >> y2=raza*sin(unghiul); >> plot3(x2,y2,unghiul)

    2.5. Construirea ntr-o fereastr a graficelor

    ctorva funcii 2.5.1. Grafice cu axele comune La aplicarea funciei plot MATLAB implicit terge fereastra

    grafic. Pentru a suprapune o imagine pe alta se aplic comanda hold on, iar pentru anularea suprapunerii imaginilor se aplic hold off (fig. 2.8). La suprapunerea graficelor MATLAB la nevoie recalculeaz axele pentru ca s ncap graficele. Exemplu: >> hold on %hold off >> x=[-2:0.05:2]; f=exp(x).*sin(pi*x)+x.^2; >> x1=[-2:0.5:2]; g=exp(-x1.^2).*sin(5*pi*x1); >> figure(1); plot(x,f); plot(x1,g)

    Pentru a suprapune o imagine pe alta, folosind numai posibilitile funciilor de desenare, ca parametri ai comenzii trebuie de indicat consecutiv perechile de x,y la fiecare grafic n parte. Exemplu cu funcia plot: >> figure(2); plot(x,f, x1,g)

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    a) b)

    Fig. 2.8. Graficul cu i fr suprapunere (hold on i hold off)

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    61

    Adic, mai nti trebuie de calculat valorile lui f(x), g(x) i la sfrit de chemat plot, separnd prin virgul perechile x, f i x, g (vezi figura 2.8, a)).

    Analogic si cu graficele 3-dimensionale (fig. 2.9). >> raza=2; unghiul=[-2*pi:pi/20:2*pi]; %calcule preliminare >> x2=raza*cos(unghiul); >> y2=raza*sin(unghiul); >> [x3,y3]=meshgrid(-raza:0.1:raza,-raza:0.1:raza); >> z3=exp(-x3).*sin(pi*y3); >> figure(3); plot3(x2,y2,unghiul) %metoda 1 >> hold on >> contour3(x3,y3,z3,[-raza:0.1:raza]); >> figure(4); plot3(x2,y2,unghiul,x3,y3,z3); %metoda 2

    -2-1

    01

    2

    -2

    0

    2-10

    -5

    0

    5

    10

    -2-1

    01

    2

    -2

    0

    2-10

    -5

    0

    5

    10

    Fig. 2.9. Dou grafice 3-dimensionale ntr-o figur

    2.5.2. Grafice cu axele proprii Comanda subplot permite plasarea ntr-o fereastr a graficului

    sau imprimarea pe aceiai hrtie a cteva grafice cu axele proprii. Comanda subplot(m,n,p) mparte figura ntr-o matrice m pe n de pri a graficului iniial, iar p este indexul pri selectate (numerotarea este ca la matrice cu un singur index).

    Fie c trebuie de vizualizat grafice pe 6 axe de coordonate ntr-o fereastr: dou pe vertical i trei pe orizontal. Se creeaz fereastra grafic cu ajutorul figure i se aplic comanda >> subplot(2,3,1)

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    62

    n unghiul din stnga de sus apar axele. Primele dou

    argumente din paranteze indic numrul de axe de coordonate pe vertical i orizontal, ultimul indic numrul de ordine a axelor. Folosii subplot(2,3,2), , subplot(2,3,6) pentru a crea axele urmtoare. Orice grafic poate fi desenat la axele active la momentul desenrii, aplicnd, de exemplu:

    >> subplot(2,3,3) >> bar([1.2 0.3 2.8 0.9]) >> subplot(2,3,6) >> surf(x3,y3,z3)

    2.5.3. Setarea axelor Comanda axis are multe opiuni pentru setarea scrii, orientaiei

    i formatul de vizualizare a graficelor. De asemenea aceste modificri se pot executa interactiv.

    Setarea limitelor axelor. Implicit, MATLAB gsete valoarea maximal i minimal a valorilor variabilelor i alege limitele axelor n aa mod, ca s cuprind toate valorile. Comanda axis permite setarea limitelor proprii. Pentru grafice bidimensionale formatul este axis([xmin xmax ymin ymax]), iar pentru grafice 3-dimensionale - axis([xmin xmax ymin ymax zmin zmax]).

    Comanda axis auto seteaz napoi alegerea automat a limitelor.

    Setarea modului de vizualizare. Totodat, comanda axis permite specificarea a unui numr pre-definit de moduri de vizualizare:

    axis square face axele egale dup lungime axis equal face distanele ntre gradrile axelor egale. n

    rezultatul comenzii pe grafic cercul va fi cerc dar nu oval.

    axis normal returneaz la modul automat de vizualizare Vizibilitatea axelor. Implicit axele sunt vizibile. Comenzile

    axis on i axis off schimb starea n vizibil i invizibil i viceversa.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    63

    2.6. Crearea interactiv a graficelor Fie c noi avem deja datele calculate a funciilor f(x) i g(x) :

    >> x=[-2:0.05:2]; >> f=exp(x).*sin(pi*x)+x.^2; >> g=exp(-x.^2).*sin(5*pi*x);

    Apelm la comanda figure sau din meniul MATLAB selectm

    File->New->Figure i ca rezultat apare fereastra graficului. Din meniul figurii alegem Insert->Axes i cu mausul desenm axele n partea dreapt a ferestrei. Repetm operaia i desenm nc dou perechi de axe noi n partea stng una sub alta (fig.2.10, a)). Activm axele din stnga sus i apsm butonul drept al mausului; alegem Add data din meniul aprut. Apare fereastra de creare interactiv a graficului - de adugare a datelor la axe (fig.2.10, b)).

    a) b) Fig. 2.10. Figura cu 3 axe (a) i adugarea datelor la axe (b). n boxa X Data source selectm valorile abscisei, iar n boxa

    Y Data source selectm valorile ordonatei al graficului (n cazul nostru x i f respectiv). Selectm tipul graficului (plot) i apsm butonul OK. Ca rezultat apare graficul pe axele selectate.

    Construim graficul f(x) pe axele din stnga sus, g(x) pe axele din stnga jos i, consecutiv, f(x) i g(x) pe axele din dreapta (vezi Fig. 2.11).

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    64

    Fig. 2.11. Rezultatul crerii interactive a figurii. Selectnd o funcie n axa curent, se poate de fcut schimbri

    ai tipului liniei, grosimii, culorii etc. 2.7. Oformarea graficelor n MATLAB exist comenzi i funcii speciale pentru

    oformarea graficelor. Tipul liniilor, culoarea i marcherii se determin prin valoarea

    argumentului al treilea suplimentar al funciei plot. Acest argument se indic ntre apostrofe, de exemplu, comanda plot(x,f,'ro:') va construi graficul funciei cu linie roie i marcheri rotunzi.

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    Fig. 2.12. Graficele funciilor cu culoarea, tipul de marcher

    i stilul liniei schimbate

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    65

    n argumentul suplimentar pot fi completate trei poziii care corespund culorii, tipului de marcher i stilului liniei, nsemnrile crora sunt prezentate n tabelul 2.1:

    belul 2.1 Prescurtri pentru culori, tipul de marcher i stilul liniei

    Culoarea Tipul marcherului y Galben . Punct m Roz o Cercule c Albalbastru x Cruciuli r Rou + Semnul plus g Verde * Stelu b Albastru s Ptrat w Alb d Romb k Negru v Triunghi cu vrful n jos

    Tipul liniei ^ Triunghi cu vrful n sus - Dreapt < Triunghi cu vrful n stnga : Punctat > Triunghi cu vrful n dreapta -. Linie-punct p Stelu cu 5 coluri -- Linie ntrerupt h Stelu cu 6 coluri

    Comanda colorbar creeaz o coloan n fereastra graficului,

    care arat relaia ntre culoare i valoarea funciei z(x,y). Paleta culorii graficului poate fi schimbat cu ajutorul funciei colormap, de exemplu, colormap(gray) reprezint graficul culorile cruia sunt de nuan sur.

    Unele palete a culorilor sunt prezentate mai jos (v. fig. 2.13):

    bone - seamn cu aspectul gray, dar cu un ton uor de culoare albastr;

    colorcube - fiecare culoare se schimb de la nchis pn la deschis;

    cool - nuane de culori alb albastre i purpurii;

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    66

    copper - nuane de culoarea cuprului; hot - schimbare lin: negru-rou-oranj-galben-alb; hsv - schimbare lin (ca culorile curcubeului); jet - schimbare lin: albastru-alb albastru - verde- galben

    rou; spring - nuane de purpuriu i galben; summer - nuane de verde i galben; winter - nuane de albastru i verde;

    Valoarea implicit a paletei este jet.

    -2 -1 0 1 2-3

    -2

    -1

    0

    1

    2

    3

    4

    Axa X

    Axa

    Y

    10

    20

    30

    40

    50

    60

    a) b) c) d) e) f) g) h) i) j) k) l)

    Fig. 2.13. Graficul funciei n rezultatul aplicrii comenzilor: a) colorbar; i colormap cu paletele b)gray; c)bone; d)colorcube; e)cool; f)copper; g)hot; h)hsv; i)jet; j)spring; k)summer; l)winter.

    Comanda grid on, desen gradarea pe grafic, iar comanda grid

    off terge gradarea (v. fig. 2.14,a)). Fiecare grafic are un titlu. Titlul se situeaz deasupra axelor n

    centru. Titlul graficului se plaseaz cu ajutorul funciei title, care are ca argument rndul respectiv n format string (se ia n apostrofe):

    >> title('Rezultatele experienei')

    Apare figura 2.14, b).

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    67

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4Rezultatele experientei

    a) grid on b) title Fig. 2.14. Graficul funciei n rezultatul aplicrii funciilor

    a) grid on; b) title. Reutilizarea comenzii title arat titlul nou al graficului, care -l

    nlocuiete pe cel vechi. Graficele, de asemenea, au i cte o descripie pentru fiecare

    ax, care se situeaz n dreptul fiecrei axe respective. Comenzile xlabel, ylabel i zlabel servesc pentru a arta descripia la axele x, y i z, respectiv. Argumentele lor la fel sunt n format string: >> xlabel('Axa X'); ylabel('Axa Y'); zlabel('Axa Z')

    Reutilizarea comenzilor xlabel, ylabel i zlabel arta descripia nou a axelor care o nlocuiete pe cea veche.

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    functia 1functia 2

    -2 -1.5 -1 -0.5 0 0.5 1 1.5 2-3

    -2

    -1

    0

    1

    2

    3

    4

    Axa X

    Axa

    Y

    a) b) Fig. 2.15. Graficul funciei n rezultatul aplicrii funciilor:

    a) legend; b) xlabel, ylabel.

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    68

    Pentru a descrie cteva grafice se aplic comanda legend.

    nscrierile legendei, luate n apostrofe se indic n argumentele funciei legend, ordinea crora trebuie s coincid cu ordinea graficelor. Ultimul argument indic poziia legendei (implicit 1):

    -1 n afara graficului n unghiul din dreapta de sus a ferestrei graficului

    0 se alege poziia cea mai bun n limitele graficului, astfel ca mai puin s acopere graficele

    1 n unghiul din dreapta de sus a graficului 2 n unghiul din stnga de sus a graficului 3 n unghiul din stnga de jos a graficului 4 n unghiul din dreapta de jos a graficului.

    >> legend('functia 1','functia 2') Pentru a plasa un obiect de tip text pe grafic putem folosi

    comanda text, formatul creia este text(x,y,z,'string'), unde x i y sunt coordonatele pe axe curente, urmat de textul n format string luat n apostrofe. >> text(0,5,'Functia curenta.')

    Parametrii HorizontalAlignment i VerticalAlignment permit de

    a plasa textul n partea dorit fa de punctul iniial z,y,z. Parametrul HorizontalAlignment poate primi valorile left, right i center, pe cnd parametrul VerticalAlignment poate primi valorile middle, top, cap, baseline i bottom. Valorile implicite ale parametrilor sunt HorizontalAlignment=left i VerticalAlignment=middle >> text(0,5, 'Plasarea la dreapta', 'HorizontalAlignment','right')

    n comenzile title, xlabel, ylabel, zlabel i text pot fi utilizate

    urmtoarele argumente, care fac graficul mai cite: 'FontSize', 'Color', valorile crora tot se indic ca argumentul urmtor, desprite prin virgul. Parametrul color este o matrice din 3 elemente cu valoarea de la 0 pn la 1 pentru fiecare culoare rou - verde - albastru (RGB Red-Green-Blue).

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    69

    >> title('Grafic','fontSize',14,'Color',[.3 0 0]) >> xlabel('Axa X', 'fontSize',12,'Color',[.5 0 0]) >> text(0,5,'Functia curenta.', 'fontSize',12,'Color',[.5 0 0])

    La scrierea textului MATLAB ofer posibilitatea de includere a

    simbolurilor matematice, literelor greceti, precum i formatul textului folosind secvenele de caractere TEX.

    Ele se ncep cu simbolul \. Exemple: \it nceputul simbolurilor aplecate (italic).

    Acoladele {} arat nceputul i sfritul. \leq semnul mai mic i egal \leftarrow sgeat n stnga \rightarrow sgeat n dreapta \pi constanta pi \omega litera greceasc omega

    Exemple: >> title('{\it font italic} font drept') >> xlabel('-\pi \leq {\itt} \leq \pi')

    Lista tuturor secvenelor le putei vedea in anexa 2. Pentru a scrie textul n dou rnduri se folosete un tabel

    celular cu mai multe rnduri:

    >> title({'primul rand';'al doilea rand'}) Pentru importarea imaginilor n Microsoft Word fr pierdere

    de calitate trebuie de exportat imaginea n fiier emf (Enhanced metafile, format vectorial) din meniul File->Save as a ferestrei imaginii. Tot acelai rezultat putem obine, dac v-om copia n Clipboard imaginea prin meniul Edit ->Copy figure iar pe urm n documentul necesar. Folosind comanda print e posibil de memorizat n Clipboard sau n fiier:

    print -dbitmap memorizeaz ca Windows bitmap (BMP) print -dmeta memorizeaz Enhanced metafile (EMF).

  • Lucrri de laborator la Mecanic realizate n MATLAB. I. Balmu, A. Casian, V. Mihailov

    70

    Sarci