Sunteți pe pagina 1din 119

UNIVERSITATEA TEHNICA A MOLDOVEI

FACULTATEA CIM CATEDRA MECANICA TEORETICA



IONBALMUS ANATOLIE CASIAN V ALERIU MIHAILOV

...

LUCRARIDELABORATOR

...

LAMECANICA

realizate in MA TLAB

Chisiniiu U.T.M. 2007

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Prezenta lucrare didactica contine 0 expunere pe scurt a materialului, necesar pentru a aplica pachetul MA TLAB, si exercitii de antrenament in acest sens (Lucrarile de laborator nr 1 si nr 2 - calculul expresiilor aritmetice, utilizarea masivelor unidimensionale si bidimensionale, construirea graficelor). Este expus pe scurt si materialul teoretic pentru a efectua doua lucrari de laborator la mecanica in pachetul MAT LAB (Lucrarile de laborator nr 3 si nr 4- construirea traiectoriei punctului material in plan si in spatiu, calcularea integralelor, rezolvarea ecuatiilor diferentiale de ordinul doi, studiul oscilatiilor fortate), Sarcinile lucrarilor de laborator sunt prezentate in 30 de variante. Studentul primeste numarul variantei de la profesor pentru to ate patru lucrari de laborator. Dupa efectuarea lucrarii studentul indeplineste raportul despre lucrarea respectiva, Raportul trebuie oformat pe foi A4 cu chenar la 5 mm de la margine sus, j os si in dreapta si 20 mm in stanga, ca documentatie tehnica, Daca imprimanta nu accepta astfel de margini, se admit, ca exceptio, foi A4 cu chenar la 10 mm de la margine sus, jos si in dreapta si 20 mm in stanga, Foaia de titlu a raportului este indicata de profesor conform Anexei 1 sau 2. Raportul se prezinta pentru sustinere la urmatoarea lucrare de laborator. Dupa sustinerea ultimei lucrari studentul prezinta profesorului rapoartele despre toate lucrarile in ansamblu, prinse cu 0 clama, Ele se pastreaza la catedra timp de un an.

Lucrarile de laborator sunt destinate studentilor de la Facultatea

,

Calculatoare, Informatica si Microelcctronica.

Autorii: conf. univ. dr. Ion Balmus

prof. univ. dr. hab. Anatolie Casian asistent univ. Valeriu Mihailov

Redactor responsabil: prof. univ. dr. hab. Anatolie Casian

Recenzent: conf. univ. dr. Gheorghe Coman

© V.T.M., 2007

3

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Cuprinsul

1'lotiiJri CJ

Introducere 7

Ce este MA TLAB 7

Versiunile existente 9

Pomirea sistemului MAT LAB si lucrul in regim de dialog 9

Lucrarea nr. 1. Elemente ale sistemului MATLAB 12

1.1. Comenzile de redactare a randului 12

1.2. Comenzile de dirijare a ferestrei In regimul de comanda 14

1.3. Regimul de comanda 15

1.4. Expresiile aritmetice 16

1.4.1. Numerele 16

1.4.2. Operatiile aritmetice 17

1.5. Variabilele 18

1.5.1. Vizualizarea variabilelor 19

1.5.2. Stergerea determinarii variabilelor 20

1.5.2. F ereastra Workspace 20

1.6. F ormatul numerelor 21

1.7. Functiile matematice 23

,

1.8. V ectorii si 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. Apelari la matrice 30

1.8.6. Dimensiunile matricei 33

1.8.7. Operatiile cu matrice 34

1. 8.8. Operatiile cu masivele (tabelele) 35

1.8.9. Lucrul cu matricele 36

1.9. Anuntul despre erori si indreptarea erorilor. 39

Sarcina Lucrarii nr. 1 44

Lucrarea nr. 2. Grafica in sistemul MATLAB 53

2.1. Crearea graficelor 53

2.1.1. Fereastra cu grafic 53

4

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2.1.2. Stergerea figurii 54

2.2. Construirea graficelor functiilor de 0 singura variabila 54

2.2.1. Functia comet 55

,

2.3. Construirea graficelor functiilor de doua variabile 56

2.3.1. Construirea graficelor plane cu liniile de nivel 57

2.4. Construirea graficelor functiilor determinate

in mod parametric 59

2.5. Construirea intr-o fereastra a graficelor catorva functii 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 interactiva a graficelor. 63

2.7. Oformarea graficelor 64

Sarcina Lucrarii nr. 2 70

Lucrarea nr. 3. Calculul traiectoriei punctului material 74

3.1. Redactorul incorporat 74

3.1. File-functii si file-programe 75

Sarcina Lucrarii nr. 3 81

Lucrarea nr. 4. Studiul uscilatiilor fortate ale unui corp in

prezenta fortei de rezlstenta 90

•• •

4.1. Integrarea numerica 90

4.1.1. Integrale definite ordinare 90

4.1.2. Integrale definite duble 92

4.2. Rezolvarea ecuatiilor diferentiale 93

, ,

4.3. Studiul oscilatiilor libere 97

,

4.4. Influenta rezistentei asupra oscilatiilor libere. Oscilatii

amortizate 101

4.5. Oscilatii fortate in prezenta fortei de rczistenta 103

Sarcina lucrarii nr. 4 107

ANEXA 1. EXEMPL U - Foaie de titlu 115

ANEXA 2. EXEMPLU - Foaie de titlu 116

ANEXA 3. Secventele de caractere folosite la grafice 117

Bibliografie 119

5

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Notari

Exemplu pentru regimul de comanda - fereastra "Command Windows",

Exemplu pentru Editorul intern a MATLAB.

I x = 0.2;

z=x

Exemplu pentru Editorul intern a MA TLAB eu programul salvat in fisierul file.m.

I file.m

x = 0.2;

z=x

6

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Introducere

Ce este MATLAB

In timpul de fata MA TLAB este unul din cele mai putemice din toate pachetele universale de calcul. Inginerii si savantii aplica MA TLAB pentru rezolvarea problemelor din diferite domenii de aplicare: achizitionarea, analizarea si vizualizarea datelor; prelucrarea semnalelor si a imaginilor; cercetarea si calcularea diferitor procese tehnice; modelarea, simularea si optimizarea sistemelor tehnice; dezvoltarea aplicatiilor, incluzand interfetele grafice etc.

MAT LAB este un sistem interactiv cu un limbaj de performanta inalta foarte efectiv pentru calcule tehnice a carui element informational de bazii este matricea. Denumirea de MAT LAB provine de la Matrix Laboratory.

MA TLAB s-a dezvoltat pe parcursul anilor cu adaugarile a mai multor utilizatori. La universitati pachetul MA TLAB se foloseste ca un instrument standard de initiere si cursuri avansate in matematica, In industrie MA TLAB este instrumentul cu 0 capacitate inalta pentru cercetare, dezvoltare si analiza.

Rapid ControlF'roooMllnjJ ~ and ~I~ SW/MIW

verifitiJDi[j~,Wlid:~ttioil ~tJd T05ting

/r---------,---I ------..~

SIMULINK~

R rt.!lnti.!lll Mool!litJg andl Alla'ly,.i~

Fig. 1.1. Componenta sistemului MA TLAB

7

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Sistemul MAT LAB consta din 5 parti principale:

Mediul de dezvoltare - este un set de utilitati cu facilitati care

, ,

ajuta sa folosim functiile si fisierele din MATLAB. Multe din aceste utilitati au interfata grafica, Ele includ fereastra de lucru (MA TLAB desktop), fereastra liniei de comanda (Command window), fereastra istoriei comenzilor (Command history), editorul intern, software pentru corectia programelor (debugger), Ajutorul si navigatorul lui (help), Spatiul de lucru a sesiunii (Workspace), fisierele si drumul de cautare (Curent directory).

Biblioteca cu functiile matematice contine 0 vasta eclectic de algoritmi de calcul de la functiile elementare - suma, sinus, cosinus, etc, pana la functiile sofisticate - matrice inverse, functiile Bessel, transformarea rapida Furier etc.

Limbajul MATLAB este limbaj de performanta inalta cu functii, structuri, date de intrare si iesire, programarea orientata pe obiecte APOO. El permite atat crearea rapida a programelor mici, cat si crearea programelor si aplicatiilor mari si complexe.

Grafica. MAT LAB are facilitati extensive pentru vizualizarea vectorilor si matricelor ca grafice. Grafica include functii pentru vizualizarea datelor in forma bidimensionala si tridimensionala, prelucrarea imaginilor, animatie, grafica pentru prezentatii, Totodata ea include functii care permit setarea completa a graficelor, pre cum ~i crearea interfetelor grafice in aplicatiile MA TLAB.

Interfata Externii (External Interfaces - API). Aceasta este 0 biblioteca care va permite a scrie programe in limbajele C si Fortran care interactioneaza cu MATLAB. Ea include facilitati pentru apelare la functiile si procedurile din MA TLAB (dynamic linking), apelarea la MA TLAB ca la nucleul de calcul, pentru citirea si scrierea fisierelor MAT etc.

8

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Versiunile existente

In momentul de fata sunt mai multe versiuni a pachetului MAT LAB :

1) MAT LAB 6.1 (Release 12) _ lansat la 7 Martie 2005,

instalarea ocupa ~ 260 Mb

2) MAT LAB 6.5.1 (Release 13) SP3

3) MAT LAB 7.0.0 (Release 14)

4) MAT LAB 7.0.1 (Release 14) SPI

5) MATLAB 7.0.4.365 (Release 14) SP2 _ lansat la 1 Septembrie 2005 instalarea ocupa 3 CD

6) MA TLAB 7.1 (Release 14) SP3

7) MA TLAB 7.2 (Release 2006a) _ lansat la 1 Martie 2006 ( http://www.mathworks.com/products/new _products/release2 006a.html)

8) MA TLAB 7.3 (Release 2006b) _ lansat la 1 Septembrie 2006 ( http://www.mathworks.com/products/new _products/latest Je atures.html?s_cid=MLD0906rowPl&s_vl=MLD0906)

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

Indrumarul de fata e scris pe baza versiunilor R12 si RI4SP2.

Daca sunt diferente esentiale intre programe in indrumar ele sunt aratate.

Pornirea sistemului MATLAB §i lucrul in regim de dialog

Pachetul MAT LAB se lanseaza din meniul principal, apasand pe iconita ~ MAT LAB (de obicei Start -> Programs -> Programming). Sistemul este gata de a face calcule in regimul de comandii. Fereastra de baza initiala deschisa complet este indicata pe Fig. 1.2.

9

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Eile !;;dit De!l_uQ Q_esktop '/iindow !::!elp

D ~ I :t, ~ 8 '" '" I !)Ii 1;1 I t I Current Director'L: I C>Program Files'MATLAB704\work iJ .J I!J

Shortcuts !!l How to Add !!l \'lJhat's New

Current Directory - ..• file.\MATlAB704\work ~ X
I!J Et ~JE;lI~·
All Files L I File Type I Size
.1 1 ~
Current Director' 1 Workspace 1
Command History ~ X
...... ;:-- 13 .09.06 9: 02 --% Command Window ill X

To get started, select MATLAB Help or Demos from the Help menu.

»

» I

Fig.I.2. Fereastra principala initiala a sistemului MAT LAB

In partea dreapta avem fereastra "Command Window", in stanga sus avem fereastra "Launch Pad" cu "Workspace" si stanga j os avem fereastra "Command History".

Uneori MAT LAB se lanseaza numai cu 0 fereastra activa, de exemplu "Command History".

,,):MATlAB

Eile !;;dit De!l_uQ Q_esktop '/iindow !::!elp

D ~ I :t ~ ~ on '" I !!!IIi t1 I 1> I Current Directory; I C:>Program Files'MATLAB704\work iJ J I!J

Shortcuts [!] How to Add [!] \f'..itJat's New

To get started, select MATLAB Help or Demos from the Help menu.

»

» I

41 iitort I

Fig.I.3. Sistemului MA TLAB numai cu fereastra "Command History" activa

Pentru a face vizibile si restul ferestrelor este nevoie de a seta vizibilitatea "default"

. -%-- 13.09.06 9:02 --% I

~M~~6 ~M~~7

Fig.I.4. Setarea vizibilitatii tuturor ferestrelor:

~) MAllAB

File Edit I View Web Window Help

D ~I

Desktop Layout ~

DeFault

Command Window Only Simple

Short History Tall History Five Panel

.., Current Directory ., Workspace

., Launch Pad

Help

CUrrent Directory Filter

Workspace View Options ~

+ ~ Financial Dedvatives Toolbox

E_ile !;dit Debug I Qesktop "tLindow t!elp

[j ~ I J(, IQ ~ U.ndock Command Window b'lprogr~m FileslMATLAB704\work

Shortcuts ~ How··a,dM ].,"

2ave Layout... ~ommand Window Only

Current Director) Qrgani2e Layouts... t::!istory and Command Window

L!J tf fi'I Ji;l 1/ Command Window Alllabbed

Trmrt:l'!"1!";""""~R"!:-",.mB H,

--------p



All Files L ., Command History

11-""':'::::'''::''''- ., Current Directory 1/ Workspace

Help

.1 1 __ P_"F_ile_' 1

......:..1-J ., Toolbar

Current Directory [ ., ~hort!;.uts T oolbar

Command Histor) 1/ T[tles

10

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Programele pot fi redactate intr-un editor de texte si pe urma copiat In randul de comanda folosind Clipboard-ul. Exemplele din prezenta lucrare servesc pentru antrenare In aplicarile MATLAB. In versiunea 6.1 era posibil copierea chiar si cu simbolurile randului de introducere "»" - sistemul automat le v-a omite, iar In versiunile mai mari sistemul nu le omite si da eroare.

Care editor de folosit? Editorul intern a MAT LAB , Notepad, MS Word, redactorul intern al NORTON Comander sau FAR Manager. Insa exista difcrentc intre ele. MS Word este un redactor mai sofisticat si ceea ce vedem noi pe ecran nu tot timpul v-a intelege MA TLAB, pe cand celelalte editoare enumerate mai sus sunt editoare simple. Exemplul de mai jos pare simplu, Insa la inserare din MS Word In MATLAB v-a da trei greseli (acest exemplu v-a fi analizat In capitolul 1.10).

» x=10 - 2 A 3

Totusi eel mai comod editor pentru MAT LAB este redactorul intern (incorporat) allui, deoarece el are aceleasi facilitati ca si linia de comanda, plus avantajele unui translator - executarea pas cu pas, setarea punctelor de stop are a programului etc.

I script

I Ln 2 Col 3 I OVR A

D. Editor - D:\ Temp \matlab2.m

..:.J.gJ2il

Eile !;_dit Iext ~ell TQoIs DeQ_ug Q.esktop ~indow t:!elp '31 I ~ X

D ~ I ~ ~ it ~ "" I ~ I ~ f. I ~ ~ I ~ iGJ W @ ~ II Base iJ rEi33

11 - a=l

~ 0 b=a+1

Fig.I.5. Fereastra editorului intern a MAT LAB

Unicul neajuns este ca erorile apar numai In fereastra liniei de comanda,

Pentru lansarea Editorului intern din MA TLAB este nevoie de a face clic pe butonul "N ew M - file" pe panelul de instrumente a mediului de lucru sau de selectat meniul "File->New-> M-jile". Pe ecran va aparea fereastra redactorului.

11

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

.. ) MATlAB

Eile !;dit ~iew We!;.. ~indow tielp

+D ~ I J{. ~ ft Ie"") ("'::oj I Sii I ? I Current Directory: I C:\f'ROGRA~1 \MATLAB6p1 \work :::.:J..J

Ready

Fig.I.6. Butonul de lansare a editorului intern a MA TLAB

Sfaturi practice.

Exemplele din lucrarea de laborator nr.l e preferabil sa le incercati din linia de comanda pentru a vedea si a inlatura erorile, iar in restul lucrarilor - sa folositi redactorul intern.

,

Lucrarea nr. 1. Elemente ale sistemului MATLAB

1.1. Comenzile de redactare a randului

Cand se lucreaza cu MA TLAB in regim de comanda, se aplica comenzile de redactare a randului, indicate in tabelul 1.1.

Tabelul1.1 Comenzile de redactare a randului in MAT LAB

Tasta Combinatia Destinare
,
de taste
Rasfoirea comenzilor precedente (in
i Ctrl+P sus) pentru includerea in randul de
introducere
Rasfoirea comenzilor urmatoare (in
~ Ctrl+N jos) pentru includerea in randul de
introducere
Ctrl+Home Deplasarea cursorului la inceputul
ferestrei Command Window
Ctrl+End Deplasarea cursorului la sfarsitul
ferestrei Command Window
~ Ctrl+B Deplasarea cursorului in stanga la un
simbol
~ Ctrl+F Deplasarea cursorului in dreapta la
un simbol 12

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Ctrl++--- Deplasarea cursorului in stanga la un
cuvant
Ctrl t+» Deplasarea cursorului in dreapta la
un cuvant
Home Ctrl+A Deplasarea cursorului la inceputul
randului de comanda
End Ctrl+E Deplasarea cursorului la sfarsitul
randului de comanda
Esc Ctrl+U Curatirea randului de introducere
,
Delete Ctrl+D Stergerea simbolului la dreapta de
cursor
Backspace Ctrl+H Stergerea simbolului la stanga de
cursor
Ctrl+K Stergerea pana la sfarsitul randului
Ins Activarealdezactivarea regimului de
includere
Shift+Home Selectarea pana la inceputul randului
Shift+End Selectarea pana la sfarsitul randului
PgUp Rasfoirea foilor sesiunii in sus
PgDn Rasfoirea foilor sesiunii in jos
Executarea .. Daca exista
comenzn.
ceva selectat in fereastra command
Enter windows textul selectat este adaugat
la randul de comanda inainte de
executare Repetarea executarii randului in linia de comanda e posibila prin doua metode:

1) rasfoirea comenzilor in linia de comanda si apasand <ENTER>;

13

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2) gasirea eomenzii in fereastra "Command History" si facand dublu clie eu mausul pe ea.

Tineti minte:

, ,

Fereastra "Command Window" ofera posibilitatea de redaetare numai a ultimului rand de comanda. Sa nu va mire faptul, ea eursorul i-l puteti muta in randurilc preeedente si nu le puteti redaeta.

1.2. Comenzile de dirijare a ferestrei in regimul de cornanda

clc - eurata eeranul si pune cursorul in coltul de sus din stanga a eeranului gal.

home - intoarce cursorul in coltul de sus din stanga a ferestrei. echo on - desehide regimul de seoatere pe eeran a eodului sursa,

echo on - inchide regimul de seoatere pe eeran a eodului sursa, echo <file_name> on - desehide regimul de seoatere la eeran a

eodului sursa a fisierului

<file name>.

echo <file_name> off - inchide regimul de seoatere la eeran a

eodului sursa a fisierului

<file name>.

echo <file _name> - schimba regimul de seoatere la eeran la opus.

echo on all - desehide regimul de seoatere la eeran a eodului sursa a tuturor m- fisierelor,

echo off all - inchide regimul de seoatere la eeran a eodului sursa a tuturor m- fisierelor,

more on - desehide regimul de seoatere la eeran a rezultatelor pe pagini. Se foloseste la vizionarea rezultatelor voluminoase.

more off - inchide regimul de seoatere la eeran pe pagini.

14

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

1.3. Regimul de comanda

Seansul de lucru cu MAT LAB se numeste sesiune (session).

Sesiunea, in realitate, este un document curent, care reflecta lucrul utilizatorului cu sistemul MATLAB. In ea sunt randuri de introducere (cu simbolul »), de extragere (cu simbolul ans=) si de informatii despre erori (??? Error).

MAT LAB permite de a efectua calcule foarte complicate in regimul de calcule directe, adica lara a pregati 0 programa. Utilizatorul culege cu tastatura expresia respectiva, 0 redacteaza (daca este necesar) in randul de comanda si apasa <ENTER>. Pe ecran apare rezultatul in randul ans= sau X=.

In cazul cand expresia matematica care trebuie sa fie introdusa este foarte lung a, 0 parte din ea poate fi trecuta intr-un rand nou cu ajutorul semnului ... (3 sau mai multe puncte), de exemplu

I » X = 3 + 2 - 4 + 5 + ... 7+1+2-3

Semnul operatici se indica inaintea celor 3 puncte, si se tasteaza <ENTER>. Aceasta metoda e comoda pentru a pastra intregul document in limitele ferestrei deschise. In general, intr-un rand pot fi 4096 de simboluri.

In cazul cand avem nevoie intr-un rand sa scriem doua expresii le scriem prin virgula, de exemplu

3

» a=3,25*(0.7-3.5/5.1)+2.3/\3

a=

ans = 12.5101

In cazul dat s-au calculat doua expresii a=3 ~1 25*(0.7-

3.5/5.1 )+2.3/\3.

15

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pentru a opri aparitia rezultatului expresiile trebuie sa se termine eu punet si virgula :

2.0451

»x = 0.2; »y = -3.9;

»a = sin(4/3*pi*x)+exp(0.1 *y); »b = eos(4/3*pi*x)+exp(0.1 *y); » e = sqrt(a/b)+(a/b) /\ (1/3)

e=

1.4. Expresiile aritmetice

Ca si alte limbaje de programare MAT LAB permite ealcularea expresiilor matematiee, dar in comparatie eu majoritatea limbajelor, aeeste expresii implica la ealculare matrieea intreaga.

Expresiile matematiee in MA TLAB sunt formate din numere, semnele operatiilor aritmetiee, variabile si functii introduse.

1.4.1. Numerele

Pentru numere MA TLAB foloseste notatia conventionala decimala, in fata eu semnul plus sau minus iar partea zecimala a numarului se desparte prin punet. Unele exemple a numerelor:

3 -99 0.0001 -9.6397238

Simbolul e serveste pentru a serie numerele in forma exponentiala, adica indica puterea numarului zeee. De exemplu, numerele 0.00215 si 2.15e-3 sunt eehivalente. Numerele eomplexe se seriu eu ajutorulliterei i sauj.

»2.15e-3

ans = 0.00215

» 5*(2.2+3.9i)+0.8

ans = 11.8000+ 19.5000i

16

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Toate numerele sunt stocate in seansul de lucru folosind formatul lung specificat de IEEE - standardul virgulei mobile. Numerele cu virgula mobila au 0 precizie finita cu 16 numere dupa virgula, iar valoarea in intervalul de la 10-308 pana la 10+308.

1.4.2. Operatllle aritmetice

Expresiile matematice folosesc urmatoarele operatii aritmetice ~i regulile lor:

+ Adunarea;

Scaderea; Inmultirea; Impartirea;

Impartirea la stanga (descrisa in "Matrices and Linear Algebra" in documentatia MATLAB);

ridicarea la putere;

Transpunerea matricei (Complex conjugate

transpose );

Specificarea prioritatii de evaluare.

/ \

/\

*

( )

Tineti minte:

, ,

Expresiile matematice se calcula conform regulilor de prioritate a operatiilor si de la stanga la dreapta:

a*b

a*b/c este echivalent cu --

c

insa

alb *c este echivalent cu !!:._ * c . b

Exemplu de impartire la stanga:

» 1\2/5 ans = OAOOO » 112\5

ans = 10

17

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

In primul exemplu "1\2/5" se executa in felul urmator - 211 si rezultatul se imparte la 5, iar in exemplul doi "1/2\5" - 1 se imparte la 2, iar 5 se imparte la rezultat obtinut,

1.5. Variabilele

MAT LAB nu necesita declararea tipului sau dimensiunilor variabilelor. Cand MA TLAB are nevoie de 0 variabila noua, programul automat creeaza variabila si aloca memorie. Daca variabila deja exista, MAT LAB schimba continutul ei si, daca e necesar, aloca spatiu nou. Ca semn de atribuire a valorii sau a expresiei se foloseste "=" si rezultatul apare direct in fereastra de cornanda, de exemplu:

I» num_students ~ 25 num students = 25

creeaza 0 matrice lxl cu numele num students ~1-1 atribuie valoarea 25 in singurul ei element.

Tineti minte:

, ,

Numele variabilei se incepe cu 0 litera, urmat de un numar arbitrar de litere, cifre sau semnul de subliniere "_". In numele variabilei spatiul (locul gol) nu se admite. MAT LAB foloseste doar primele 31 de caractere din numele variabilei.

Trebuie de tinut cont ca MAT LAB este "case sensitive" -

,

literele majuscule si minuscule se deosebesc. Variabilele "A" ~i "a" nu sunt aceleasi,

La calcularea unei expresii din randul de comanda raspunsul se inscrie in variabila rcdefinita speciala ans (din engleza "answer" - raspuns):

I» 2.15+1.07 ans =3.2200

18

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

I > > ans-O .22 ans =3.0000

Valoarea ans se va schimba dupa calculul expresiei urmatoare,

1.5.1. Vizualizarea variabilelor

In orisice moment poate fi extras a valoarea variabilei In fereastra de comanda, Pentru aceasta trebuie de cules numele variabilei In randul de comanda si de apasat <ENTER>, ori de utilizat functia disp (din engleza "display" - a vizualiza):

»a a=

-1.34 » disp(a) -1.34

Pentru a opn irnpnmarea la ecran a valorii expresiei sau variabilei la sfarsitul ei se pune ";"

Vizionarea listei variabilelor In mediul de lucru se efectueaza cu ajutorul comenzii whos (din engleza "whos" - a cui). Presupunem, ca variabilelor a si b le-au fost atribuite valori. Chemati comanda whos indicand In calitate de parametru a comenzii numele variabilelor. In fereastra de comanda apare tabelul prezentat mai jos.

» b=2.98+3.86i;
»whos a b
Name Size Bytes Class
a lxl 8 double array
b lxl 16 array (complex)

Crand total is 2 elements using 24 bytes

19

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

"

In coloana Class este indicat tipul variabilei, in Bytes -

numarul de biti, pentru a pastra valoarea, iar Size contine informatia despre dimensiune. Dupa tabel e plasat un rand cu numarul total al volumului de memorie in octeti pe care le ocupa toate variabilele.

1.5.2. §tergerea daterrnlnarll variabilelor

In memoria calculatorului variabilele ocupa un anumit loc, numit spatiu de lucru (workspace). Pentru a curati spatiul de lucru se utilizeaza functia clear in diferite forme, de exemplu:

o clear - stergerea determinarii tuturor variabilelor

o clear x - stergerea determinarii unei variabile (in cazul dat x)

o clear abc - stergerea determinarii catorva variabile

(in cazul dat a, b c).

Variabila stearsa devine nedeterminata, Folosirea variabilelor nedeterminate nu se permite si asa incercari vor da anunturi de eroare. Incercati sa expcrimcntati cu aceasta functie impreuna cu comanda whos :

» whos »clear a b » whos

» clear

» whos

1.5.2. Fereastra Workspace

In fereastra Workspace (v. fig. 1.7) se afla lista tuturor variabilelor in forma de tabel ca si la comanda whos cu 0 singura diferenta - in ea este si un camp cu valoarea variabilei.

20

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

1 e-1 00

<3x4 double>

1 x1 1 x1 3x4

8 double 8 double 96 double

<;>.): 'y/ orkspace I!lIiIII3

EJle ~dit ~iew Q_raphics DeQug Q_esktop VVindow t:!elp

Value

Fig. 1.7. Fereastra Workspace

Din fereastra Workspace e posibil:

1) de redactat valoarea variabilei: daca variabila e un simplu numar se face un clic pe valoarea ei, iar daca e matrice facand dublu clic pe variabila se deschide un tabel cu valorile elementelor care pot fi redactate;

2) de schimbat numele variabilei (de exemplu - ca sa nu pomim programul de la inceput, daca am gresit numele variabilei in majuscule-minuscule );

3) de duplicat variabila cu valoarea ei;

4) de sters 0 singura variabila sau pe toate odata (analogic clear);

5) de creat grafice de la valorile variabilelor.

1.6. Formatul numerelor

MAT LAB automat trece in domeniul numerelor complexe continuand calculele. Comanda format serveste pentru stabilirea formatului din randul de comanda, Poate fi stabilit unul din urmatoare formate:

short format scurt cu punct plutitor cu 4 cifre dupa punctul zecimal (se foloseste initial - default)

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

21

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

short e format exponential eu 4 eifre dupa punetul
zeeimal
longe format exponential eu 15 eifre dupa punetul
zeeimal
short g eea mai buna prezentare a date lor sau in formatul
short sau in short e hex prezentarea numarului prin 16 eifre

+ datele pozitive si negative se arata prin semnele ,,+" si "-,, dar eele nule- prin goluri.

bank format pentru seoaterea sumelor banesti eu doua semne dupa punetul zeeimal

rat numerele reale se prezinta aproximativ ea raportul a doua numere miei intregi

Independent de formatul stabilit toate ealeulele se fae eu preeizie dubla, prin urmare dupa sehimbul formatului de la short la long nu se cere de gasit din nou valoarea variabilelor. Este sufieient de a seoate din nou valorile lor in fereastra de comanda,

»a=1/3333; b=1/4; e=0.123456789; » format short; a, b, e

a = 3.0003e-004

b = 0.2500

e = 0.1235

» format long; a, b, e

a = 3.000300030003001 e-004 b = 0.25000000000000

e = 0.12345678900000

» format hex; a, b, e

a = 3f33a9abOefbOlee

b = 3 fdOOOOOOOOOOOOO

e = 3fbf9add3739635f

» format +; a

a=+

» format bank; a, b, e a = 0.00

b = 0.25

22

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

c = 0.12

> > format rat; a, b, c a = 1/3333

b = 1/4

c = 10/81

MAT LAB admite doua metode de vizualizare a rezultatelor In

fereastra de comanda:

compact randurilc cu rezultatele se scot la rand.

loose randurile cu rezultate se despart prin rand gal.

Experirncntati cu aceste moduri de sinestatator, vizualizand

variabilele a, b si c.

1.7. Functiile matematice

,

MAT LAB are un numar mare de functii matematice introduse.

,

Unele din ele sunt prezentate In tabelul 1.7. Lista completa a tuturor functiilor matematice elementare poate fi obtinuta, culegand In randul de comanda help elfun (din engleza "elfun" - "elementary functions" - functii elementare). Pentru a obtinc informatia amanuntita despre sintaxa unei functii culegeti si executati In linia de comanda help <numele functiei> .

Tabelul1.2

F

t

t

I

unc 11 e rna ema Ice pnnctpa e
Functiile trigonometrice (argumentul se da in radiani)
sin, cos, tan, cot Sinus, cosinus, tangenta, si cotangenta
sec, esc Secanta, cosecanta
Functiile trigonometrice inverse (rezultatul se calculeaza in
radiani)
asm, acos, Arcsinus, arccosinus, arctangenta si
atan, acot arccotangenta
asec, acsc Arcsecanta, arccosecanta
Functiile hiperbolice
sinh, cosh, Sinus, cosinus, tangenta si cotangenta
tanh, coth hiperbolice 23

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

(Continuare) Tabelul 1.7

sech, csch Secanta ~i cosecanta hiperbolice
asinh, acosh, Arcsinus, arccosinus, arctangenta si
atanh, acoth arccotangenta;
Functie exponentiala, logaritmii, functiile de putere
exp Functia exponentiala
log, log2, log 10 Logaritm natural, logaritmii In baza 2 ~i 10
pow2 Ridicarea la patrat
sqrt, nthroot Radacina patrata, radacina de ordinul N
Modul, semnul ~i funetiile pentru luerul eu numere eomplexe
abs, sign Modulul si semnul numarului
conj, imag, real Complex-conjugata, partea imaginara si reala
Functii speciale a eonstantelor eel mai des folosite
pi 3.14159265 ...
i.] unitatea imaginara,.Ji
eps eroarea relativa, e = 2-52
realmin eel mai mic numar real, 2-1022
realmax eel mai mare numar real, (2 - &).21023
Inf Infinit
NaN Nu este numar (Not-a-number) I Tineti minte:

La ~xecutarea functiei matematice argumentul se paranteze rotunde imediat dupa numele functiei,

sene In

Fie, de exemplu, ca trebuie de gasit valoarea expresiei de mai jos cand x = 0.2 si y = -3.9:

SinG JlX ) + e01y Sin(; JlX ) + e01y

c= +3--~--~----

cos(; JlX ) + eO.1y cos(; JlX ) + e01y

In pachetul MAT LAB vom avea:

I» x=O.2;

. »y= -3.9;

24

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

»c=sqrt((sin(4/3*pi*x)+exp(0.1 *y))/(cos(4/3*pi*x)+ ... exp(O.l *y)))+((sin( 4/3*pi*x)+exp(0.1 *y))/( cos( 4/3 *pi *x)+ ... exp(O.l *y)))/\(1/3)

c=

2.0451

Este mai simplu de a rezolva aceasta problema, aplicand 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( alb )+( alb) /\ (1/3)

c=

2.0451

1.8. Vectorii ii matricele

In MA TLAB matricea este un masiv rectangular de numere.

Masivele sunt unul din cele mai raspandite procedee de pastrare a datelor si se folosesc In toate limbajele de programare. Sistemul MAT LAB opereaza cu matrice mxn, Scalarul este 0 matrice 1 x 1. In MATLAB masivul unidimensional poate fi vector-rand sau vectorcoloana, Vectorul este 0 matrice de tipul 1 xn, MA TLAB are si alte forme de stocare a datelor, atat numerice cat si non-numerice, dar ele sunt cazuri particulare a matricelor.

Tineti minte:

, ,

Avantajele MATLAB-ului:

- In timp, ce unele limbaje de programare lucreaza doar cu cate un element din matrice, MAT LAB permite sa lucram cu intreaga matrice repede si usor,

- nu este necesar sa declaram dimensiunile matricelor - ele pot fi redimensionate pe parcursullucrului.

25

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

1.8.1. Matricele

Pentru a introduce orice matrice trebuie de tinut cont de regulile urmatoare:

• de separat elementele unui rand prin virgula sau spatiu (lacune)

• de folosit ";" pentru a indica sfarsitul fiecarui rand

• de luat toata lista de elemente In paranteze patrate

» a=[1 2 3 4 5 6 7 8 9];

a=

123456789 »b=[12 3; 4 5 6; 7 8 9; 10 1112]; b=

123

456

789

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 0 singura linie sau cu 0 singura coloana:

» vI = [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 In cateva metode: introducerea explicita a elementelor

citirea matricei dintr-un fisier cu date

26

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

generarea matricei folosind operatorul colon

generarea matricei folosind 0 functie interna din MA TLAB crearea matricei cu functia personala din M - fisier

Introducerea explicita a elementelor matricelor de dimensiuni mici este comoda din randul de comanda, Exista mai multe procedee de a introduce 0 matrice. De exemplu, matricea

1 4 7 10

c= 2 5 8 11

3 6 9 12

> > 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 introdusa din randul de comanda culegand expresia c=[1 D4D7D 10 si apasam <ENTER>. Cursorul se deplaseaza in randul urmator (simbolul » nu apare). Elementele fiecarui urmator rand al matricei se culeg si sfarsitul fiecarui rand se termina cu apasarea tastei <ENTER>. Dupa introducerea ultimului rand la urma se pune paranteza patrata de inchidere:

»c=[1 4 7 10 2 5 8 11

3 6 9 12]

Alt procedeu consta in aceea, ca matricea poate fi introdusa si prin combinarea a mai multor matrice.

Matricea poate fi privita ca un vector-coloana, fiecare element al caruia este un rand al matricei:

[1 4 7 10]

c = [2 5 8 11]

[3 6 9 12]

27

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

I »c=[[1 4 7 10]; [258 11]; [3 6 9 12]]

Matricea poate fi considerata si ca un vector-rand fiecare element al caruia este coloana matricei:

1 4 7 10

c= 2 5 8 11

3 6 9 12

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

Matricea poate fi introdusa ~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 sa fie introduse. Exemplu:

[1 4] 7 10

c= [~] [~ !] G~]

I »c=[ [1 4] 7 10; [2;3] [5 8; 69] [11;12]]

Exemple. Fie, ca avem de introdus vectori-coloana si vectori-

rand

0.2 cl = -3.9 4.6

rl = [0.1 0.5 r2 = [5.2 9.7

7.6 c2 = 0.1 2.5 -3.7 8.1]

3.4 -5.7]

In MA TLAB in linia de comanda va fi nevoie de scns urmatoarele randuri

I »c 1 =[0.2; -3.9; 4.6]; . »c2=[7.6; 0.1; 2.5];

28

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

I »r1 ~[O.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 In MATLAB.

El poate fi In cateva forme diferite.

F ormatul de baza este <valoarea initialii>: < valoarea finalii > rezultatul caruia este un vector elementele caruia sunt de la valoarea initialii pana la valoarea finalii.

Urmatoarea expresia este un vector rand care contine numerele intregi de la 1 la 10:

I »a~ 1:9

. a= 1 2 3 4 5 6 7 8 9

Deoarece rezultatul operatorului colon este un vector urmatoarea expresie este echivalenta cu cea precedenta:

I »a~[1:9]

. a= 1 2 3 4 5 6 7 8 9

Aceleasi matrice, aratate anterior, pot fi introduse In felul urmator

» a=[l :9]; b=[l :3;4:6;7:9; 1 0: 12]; »c=[[1:3]' [4:6]' [7:9]' [10:12],];

Pentru a obtine 0 incrementare neunitara, trebuie de specificat pasul. Formatul este:

<valoarea in itialii > : <valoarea pasului>: < valoarea finalii >

De exemplu:

» 100:-7:50

100 93 86 79 72 65 58 51 » 0:pi/4:pi

o 0.7854 1.5708 2.3562 3.1416

29

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

1.8.4. Generarea matricelor

ZEROS - generarea unei matrice elementele careia este O.

Sintaxa este zeros(m,n) unde m si n sunt dimensiunile matricei rezultante, iar daca m=n atunci zeros(n) unde n este dimensiunea matricei patrate rezultante. Apelarea la functia zeros lara argument este un scalar cu valoare O.

ONES - generarea unei matrice elementele careia este 1.

Sintaxa este ones(m,n) unde m si n sunt dimensiunile matricei rezultante, iar daca m =n atunci ones(n) unde n este dimensiunea matricei patrate rezultante. Apelarea la functia ones lara argument este un scalar cu valoare 1. Generarea unei matrice elementele careia vor fi egale cu un numar k se executa in felul urmator k*ones(m,n)

RAND - crearea unei matrice cu elemente aleatorii. Sintaxa este rand(m,n) unde m si n sunt dimensiunile matricei rezultante, iar daca m =n atunci rand(n) unde n este dimensiunea matricei patrate rezultante. Apelarea la functia rand lara argument este un scalar cu valoare aleatorie.

EYE - crearea unei matrice diagonala careia este egala cu 1 iar restul sunt O. Sintaxa este eye(m,n) unde m si n sunt dimensiunile matricei rezultante, iar daca m =n atunci eye(n) unde n este dimensiunea matricei patrate rezultante. Apelarea la functia eye lara argument este un scalar cu valoarea 1.

MAGIC - crearea unei matrice patrate magice - sumele elementelor fiecarui rand si ficcarei coloane sunt egale. Sintaxa este magic(n) unde n este dimensiunea matricei patrate,

Exista si alte functii, asa 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. Apelari la matrice

Pentru accesarea unui element al matricei este nevoie de scris variabila matricei si in paranteze rotunde de indicat numarul de ordine al elementului necesar, in caz general este M(y,x): unde M este

30

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

numele matricei, x,y este numarul liniei si numarul 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 numarul de ordine al elementului necesar, indiferent daca vectorul este vectorrand sau vector-coloana,

» vl(2) ans =3 » vc(2) ans =5

"-

In matricea M (m, n) elementul din randul i si coloana j se

noteaza 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 obisnuita de apelare la elementele unui vector rand sau vector coloana, dar, toto data, poate fi aplicata si la matrice bidimensionale. In asa caz masivul reiese ca un vector mare format din elementele matricei originale:

(1,1) (1,2) (1,3) (1 ,n-1) (1,n)
(1 ) (2) (3) ... (n-1 ) (n)
(2,1) (2,2) (2,3) (2,n-1) (2,n)
(1*n+1) (1*n+2) (1*n+3) ... (1*n+n-1) (2*n)
M(i,j)
... ... ... M(k) ... ...
(m,1) (m,1) (m,1) (m,n-1) (m,n)
((m-1)*n+1) ((m-1 )*n+2) ((m-1)*n+3) ... ((m-1 )*n+n-1) (m*n) Fig. 1.8. Apelarea la matrice folosind un singur index

unde M(k)=M«i-l)*n+j), 1 <i<m, 1 <j<n, 1 <k<m*n

Adresarea la matrice, folosind operatorul colon, se va referi la 0 portiune din matrice. Rezultatul unei astfel de apelari va fi 0 alta matrice continutul careia vor fi elementele apelate. Asa dar,

31

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

adresarea A(il:i2 ,jl.j2) se va referi la elementele din coloanele de lajl pana laj2 din randurile de la il pana la i2 inclusiv (fig. 1.9).

(1,1) (1,2) ... (1,j1-1) (1 ,j1) (1,j1+1) ... (1,j2-1) (1,j2) (1 ,j2+1) ... (1,n-1) (1,n)
(2,1) (2,2) ... (2,j1-1 ) (2,j1 ) (2,j1+1 ) ... (2,j2-1 ) (2,j2) (2,j2+1) ... (2,n-1) (2,n)
... ... ... ... ... ... ... ... ... ... ... ... . ..
(i1-1,1) (i1-1,2) ... (i1-1,j1-1) (i1-1,j1) (i1-1,j1+1) ... (i1-1,j2-1) (i1-1,j2) (i1-1,j2+1) ... (i1-1,n-1) (i1-1,n)
(i1,1 ) (i1,2) ... (i1,j1-1) (i1 ,j1) (i1 ,j1 +1) ... (i1,j2-1) (i1,j2) (i1 ,j2+1) ... (i1,n-1) (i1,n)
(i1 +1,1) (i1+1,2) ... (i1+1,j1-1) (i1+1,j1) (i1 +1 ,j1 +1) ... (i1+1,j2-1) (i1+1,j2) (i1 +1 ,j2+1) ... (i1+1,n-1) (i1+1,n)
00. 00. 00. 00. 00. 00. 00. 00. 00. 00. 00. 00. 00.
(i2-1,1) (i2-1,2) 00. (i2-1,j1-1) (i2-1 ,j1) (i2-1 ,j1 +1) 00. (i2-1 ,j2-1) (i2-1,j2) (i2-1 ,j2+1) 00. (i2-1,n-1) (i2-1,n)
(i2,1) (i2,2) 00. (i2,j1-1) (i2,j1 ) (i2,j1 +1) 00. (i2,j2-1) (i2,j2) (i2,j2+1) 00. (i2,n-1 ) (i2,n)
(i2+1,1 ) (i2+1,2) 00. (i2+1 ,j1-1) (i2+1 ,j1) (i2+1 ,j1 +1) 00. (i2+1 ,j2-1) (i2+1,j2) (i2+1 ,j2+1) 00. (i2+1,n-1) (i2+1,n)
00' 00. 00. 00. 00. 00. 00. 00' 00. 00. 00. 00. 00.
(m,1) (m,1) 00. (m,j1-1) (m,j1) (m,j1+1) 00. (m,j2-1) (m,j2) (m,j2+1) 00. (m,n-1) (m,n) Fig. 1.9. Rezultatul adresarii la matrice A(i1 :i2 , j 1 :j2)

In asa mod se poate de setat automat 0 portiune a matricei cu 0 valoare anumita:

» d=c; d(l :2,2:3)=0 d=

1 0 0 10 2 0 0 11 3 6 9 12

Operatorul colon indicat lara valori refera la toate elementele din rand sau coloana a matricei iar cuvantul cheie "end" refcra la ultimul rand sau ultima coloana, Exemplu de mai jos va indica elementele din toate randurile din ultima coloana:

» c(:,end) ans =

10

11

12

Daca Yeti incerca sa apelati la un element in afara limitelor matricei Yeti primi 0 eroare:

» a(O),a(1 0),vl(0),vl(5),vc(0),vc(5),b(0, 1 ),c( 4,5) Index exceeds matrix dimensions.

32

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pe de alta parte, daca Yeti memoriza un element in afara matricei, dimensiunile ei vor creste pana nu va indestula 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 in 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 Daca rearanjam si coloanele si liniile concomitent MAT LAB mai intai rearanjeaza coloanele iar pe urma liniile:

» c([3 1 2], [2 1 3 4]); c(:, [2 1 3 4]); ans([3 1 2], :)

ans =

6 3 4 1 5 2

9 12 7 10 8 11

1.8.6. Dimensiunile matricei

Pentru a calcula lungimea vectorului se foloseste functia length, iar vectorul se indica ca argument

» length(a) ans=9

33

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Daca argumentul este 0 matrice, atunci functia length va indica dimensiunea maxima dintre numarul de randuri sau coloane

I »length(b) . ans=4

Functia size determina dimensiunile masivului. Ea prezinta rezultatul in forma de vector format din doua elemente: primul element este egal cu numarul de randuri, iar al doilea - cu numarul de coloane

I > > sc=size( c )

sc =

3 4

Din paragraful precedent stim, ca daca memorizam un element in afara matricei, dimensiunile ei vor creste pana nu va indestula rezultatul:

»d=c· d(3 5) = 15·

" ,

» size(d)

ans =

3 5

Daca avem nevoie de sters 0 linie sau coloana este nevoie de egalat aceasta coloana cu un vector nul:

ans =

3 4

»d(:,5)=[], size(d) d=

1 4 7 10

2 5 8 11

3 6 9 12

1.8.7. Operatl i Ie cu matrice

Matricele de aceleasi dimensiuni se aduna si se scad una din alta cu ajutorul semnelor ,,+" si ,,-". Aceasta este valabil si pentru vectori:

» c3=cl +c2· c4=cl-c2·

, ,

> > 13 = 11 +12· 14=11-12·

, ,

34

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Semnul ,,*" serveste pentru intnultirea matricelor conform regulilor matematice, adica 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 ' serveste pentru a determina matricea transpusa (echivalent cu functia transp). Pentru a ridica 0 matrice patrata la putere se aplica ":

1.8.8. Operatllle cu masivele (tabelele)

Daca ne vom indeparta de algebra liniara, matricele pot fi privite ca masive numerice bidimensionale. Operatiile aritmetice se infaptuiesc cufiecare element pe rand. Cum aceasta lucreaza? Foarte simplu. Daca avem 0 expresie aritmetica cu cateva variabile:

in primul rand masivele trebuie sa fie de aceleasi dimensiuni

pentru fiecare pereche de elemente respective din variabilele date se calculeaza valoarea expresiei iar rezultatul se inscrie in elementul respectiv al variabilei rezultante - daca avem X(m,n) si Y(m,n) si functia F(X,Y) atunci rezultatul va fi Z(m,n) unde Z(i,j)=F(X(i,j),Y(i,j))

De aici rezulta, ca adunarea si scaderea pentru masive si matrice sunt identice - X+Y este echivalent cu X.+Y, insa operatiile multiplicative sunt diferite - X*Y nu este echivalent cu X. *Y.

MA TLAB foloseste punctul "." ca parte a notatiei pentru operatiile multiplicative a masivelor.

Lista operatiilor include:

+ Adunarea

Scaderea

* Inmultirea masivelor (element cu element)

.I Impartirea masivelor (element cu element)

35

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

.\

Impaqirea la stanga a masivelor (element cu element) Ridicarea la putere a masivelor (element cu element) Transpunerea masivelor

/\

De exemplu, pentru vectorii precedenti :

» c2=[20:23; 30:33; 40:43] »c3=c .* c2

c3 =

20 60 120

84 154 230 155 256 363 246 378 516

Un exemplu de calcul a functiilor mai complicate de la valorile vectorilor.

Des se cere de a calcula 0 functie de la valorile argumentului unui vector, care se deosebesc cu un pas constant:

x sinx + x2

f(x) = pentru x=[ -1.2 1.8] cu pasul 0.5.

.r +I

Consecutivitatea de comenzi este:

» x=-1.2:0.5: 1.8;

»f (x. *sin(x)+x./\2).I(x+ 1);

si 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 functii, ca sin, cos etc. In rezultat se obtine un vector cu elementele egale cu valorile functiei res ective de la elementele vectorului initial, de ex em lu:

» sin(a)

36

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

ans =

0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 0.4121

» sin([O pi/2 pi])

ans =

o 1. 0000 0.0000

Operatia de transpunere se inseamna cu un apostrof «!», Operatia inverseaza matricea fata de diagonala principals si preface un vector rand in vector coloana si viceversa.

»b' ans =

1 4 7 10

2 5 8 11

3 6 9 12

» c' ans =

123 456 789

10 11 12

FLIPLR inverseaza matricea in directia din stanga in dreapta. FLIPUD inverscaza matricea de sus in 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
37 Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

SUM - suma elementelor.

S = SUM(X) este suma elementelor a vectorului X. Daca X este matrice, S este un vector cu sumele ficcarei coloane.

ans =

22 26 30

» sum(a),sum(b) ans =

45

Suma tuturor elementelor tabelei se poate de obtinut prin SUM(SUM(X)). Cum de calculat suma randurilor? MATLAB prefera sa lucreze cu coloanele matricelor, deci, eel mai usor mod de a calcula suma randurilor este:

1) transpunerea matricei;

2) calcularea sumei coloanelor a matricei transpuse;

3) transpunerea rezultatului primit.

ans =

6 15 24 33

» sum(a')',sum(b')' ans =

45

DIAG este: l-matrice diagonala din vector si 2-vector format din diagonala matricei.

DIAG(V,K) cand V este un vector cu N elemente este 0 matrice patrata cu rangul N+ABS(K) cu elementele vectorului V in diagonala K. Daca K > Oeste diagonala mai sus de diagonala principala iar cand K < ° - mai jos de diagonala principala, Daca K = 0, atunci DIAG(V) este echivalent cu DIAG(V,O) si seteaza elementele vectorului V in diagonala principala,

Cand X este 0 matrice, rezultatul DIAG(X,K), este un vector coloana format din elementele diagonalei K din X. Rezultatul

38

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

DIAG(X) este un vector coloana format din elementele diagonalei principale din X.

ans =

o 1 0 0 002 0

o 0 0 3

o 0 0 0

! »diag(a,l) I ans =

! 0 1 0 0 , 0 0 2 0

o 0 0 3

o 0 0 0

! » diag(a,-I) I ans =

o 0 0 0 ! 1 0 0 0 o 2 0 0 003 0

» diag([1 2 3])

DIAG(DIAG(X)) este 0 matrice diagonala,

Diagonala secundara matematic nu este importanta, de aceea MA TLAB nu are functie pentru ea, dar e posibil de calculat - diag(fliplr(b )).

1.9. Anuntul despre erori §i indreptarea erorilor

MAT LAB controleaza comenzile introduse si expresiile si anunta despre erori sau preintampinari. Sa consideram un exemplu. Sa introducem gresit expresia si sa apasam tasta <ENTER>. Sistemul va anunta despre eroare:

» sqr(2)

??? Undefined function or variable 'sqr'.

Acest anunt inseamna ca nu este determinata variabila sau

,

functia si indica care anume - 'sqr'. In acest caz se poate de cules din

nou expresia corecta. Insa in cazul expresiilor complicate e mai bine de folosit redactarea. Cu ajutorul tastei <j> trecem in randul precedent redactat (vezi punctul 1.2), adica "»sqr(2)" cu cursorulla capat.

Daca utilizatorul a uitat numele oarccarei functii se poate de apasat tasta <TAB>, dupa care sistema va analiza simbolurile introduse si ne va da 0 varianta (variantele) de raspuns. Fiti atenti - MA TLAB analizeaza simbolurile introduse pana la cursor.

39

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

in versiunea MATLAB 7:

EJle ~drt Detl.ug Qeslctop 'iY!ndow tielp

['] ~ I db ~ eon", Il14Ii Et I l' I Current Directorl:: I (\Program FilesIMATLABIMATLAB704\work iJ j [!J

Shortcuts 0 How to Add 0 \f\J11at's New

Current Directory - ... ork ~ X
[!J ct· ~r£ll~~
Suhfnlders ~
No subfolders
~<IIIP:> ~ ~i"
Current Directorv ~ Workspace I
Command History ~ X
f·1! 1. 0116667 ~
'·····120. 93 ~5~12
%-- 25.06.06 2:57 --%
%-- 13 .09.06 23:15 ~
L~.LJ Command Window ~ X

To get started, select MATLAB Help or Demos from the Help menu.

» cl =======----<1 ... 1

J

CloslngMPCGUI

cl2tf

cIa

clabel c l abe Im

class

classdemo classfin

Fig.1.10. Meniul de eompletare a eomenzii in MAT LAB 7

1. daca exista 0 singura varianta, atunei dupa apasarea tastei <TAB> sistemul ar fi terminat numele funetiei neeunoseute

,

rara transferul randului.

2. daca variante sunt cateva si este apasata tasta <TAB> atunei apare un meniu eu toate variantele posibile sortate in ordine alfabetica de unde e posibil de seleetat doar 0 singura varianta do rita (fig. 1.10).

in versiunea MATLAB 6 :

1. daca exista 0 singura varianta, atunei dupa apasarea tastei <TAB> sistemul ar fi terminat numele funetiei

,

neeunoseute rara transferul randului.

2. daca variante sunt cateva si tasta <TAB> se apasa doar 0 singura data atunei MA TLAB da un sunet de avertizare

3. daca variante sunt cateva si tasta <TAB> va fi apasata dublu - atunei MA TLAB va afisa variantele posibile in fereastra "Command Window" si va repeta linia de comanda introdusa,

Sa consideram un exemplu:

40

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

» cl<TAB>
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<TAB> cleanaxe cleanp clear

cleanerrormsg cleanup comment

» cleanupc<TAB>

> > cleanupcomment

clegendm clearcase

La introducerea unei expresii matematice gresite sau a unui simbol necunoscut MAT LAB anunta despre eroare si indica locul erorii cu un indicator de tip "I".

Exemplu. Memorizati din Word in clipboard si inserati in MA TLAB urrnatoarea expresie : » x= 10 - 2 /\ 3

»»x=lO D 2 D 3 ??? » x= 1 0 D 2 ? 3

I

Error: Missing variable or function.

»x=lO D 2 D 3

??? x= 1 0 D 2 ? 3

I

Error: Missing operator, comma, or semicolon.

Command windows din MAT LAB 7 in comparatie cu MA TLAB 6 este mai sofisticat si arata simbolurile din W ord asa cum sunt in Word, insa tot le evidentiaza ca greseli (de ex., fig. 1. 11 , a) ~i b)).

41

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

??? » x=lO 0 2 ? 3

EEEoE: Missing vaEiable OE function.

»1

a) Matlab 6

~_J htA HAB I!!IiIill EI

EJle !;_dit DeQug Q_esktop ~ndow t:!elp

Shortcuts ~ How to Add ~ \f\.ihat's New

» » x=10 - 2 A 3 ??? » x=10 - 2 D 3

Error: The input character

»1

b) Matlab 7

Fig.I.II. Simbolurile necunoscute in MA TLAB

MAT LAB are un ajutor foarte bogat. Comanda help prezinta in fereastra de comanda lista diviziunilor sistemului de informatii.

,

Pentru a obtinc continutul diviziunii trebuie de indicat help si printrun spatiu (loc gol) numele ei, iar pentru a extrage informatia detailata despre 0 functie oarecare, trebuie de introdus in randul cu help numele functiei:

,

»help sqrt

SQRT Square root.

SQR T(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 intampla scaparea unor paranteze deschise sau inchise de prisos, care la executare v-a da eroare:

42

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

.. .): Command Window I!IiIilI3

File Edit Debug Desktop VVindow Help

» a=((1+2) ???a=((1+2)

I

Error: Expression or statement is incorrect--possiblV unbalanced (, {, or [.

Fig.l.12. Exemplu de eroare cu paranteze de prisos

In cazul acesta MAT LAB ofera posibilitatea de a gasi perechile de paranteze (indiferent de care - ")", "]", "}") si ajuta la corectarea expresiilor (fig. 1.12). Acest ajutor sistemul MAT LAB 11 arata doar cateva secunde.

in versiunea MATLAB 7:

Acest ajutor in aceasta versiune este mai avansat.

File Edit Debug Desktop VVindow Help ~ » a=+I( 1+2)

<i'): Command Window I!lIiIII3

<i'): Command Window IlIiIII3

File Edit Debug Desktop VVindow Help ~

» a=(11+211

IOYR M fOVR M

~========================~

a) perechea gasita b) tara pereche

Fig.l.13. Exemplu cu perechile de paranteze.

Plasand cursorul dupa 0 paranteza, MA TLAB ii cauta perechea ~i daca 0 gaseste le subliniaza pe ambele, iar daca perechea nu a fost gasita paranteza la care a fost plasat cursorul este intretaiata, dand de stire ca trebuie eliminata (fig. 1.13).

in versiunea MATLAB 6:

"""_--,

In aceasta versiune MA TLAB cauta perechile doar la

editarea randului - daca gaseste perechea la paranteza introdusa atunci automat le evidentiaza pe ambele.

43

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Sfaturi practice.

Inceputul fiecarui program incepeti cu stergerea tuturor variabilelor din sesiune. Aceasta va da posibilitatea sa evitati eroarea folosirii variabilelor determinate din programul precedent.

Preferabil ca orice program sa se inceapa cu comenzile

clear;

format compact;

Sarcina Lucrarii nr. 1.

I. Descricti comenzile de baza in regimul de comanda a Programului MATLAB.

II. In toate exercitiile se cere de a introduce intr-o variabila oarecare

,

valorile expresiilor cand x = -1.75 * 1 0-3 si y = 3 .l n. De calculat expresiile mai intai intr-un rand, iar pe urma de optimizat (dupa posibilitate) folosind variabilele intermediare. De prezentat rezultatul in diferite formate si de studiat informatia despre variabile cu ajutorul comenzii whoso

Vari Expresiile
anta
F (eX siny+e-x cosy J' J eX +siny I I .
= + + x sIny·
1 x+siny ~ e' siny+e-x cosy ,
1 ~2x - sin Y Ixl ~Ix -In YI
F =arctg + .
2 ~lx-lnYI ~2x-siny' 44

Lucrari de laborator la Mecanica realizate in MATLABo 1. Balmus, A. Casian, Vo Mihailov

2

3

4

5

6

A =(x+lnlcosYIJ20S + (x+lctgylt.

1 X + Ictgyl ~ x + In Icos yl '

(X2 + cos" y)3 (x - cos Y)

~ =sh +ln 2 2 +Isinylx;

~lx-cosYI x +cos y

( X3 + tgy J301 (sin y _lnlxl)20S I I . 2

B, = + + x SIn x;

sin y -lnlxl Jlx3 + tgyl

_[ x(l +x2)(1 + 2X)2]" Inlctgyl-x.

HI - I I + ( ) 2 '

In ctgy x 1 + x2 (1 + 2x)

H2 = arcsin[~ +cos2 YJ+~lx-lnYI;

Ix-Inyl

_ (ex cos y + 3 sin y r 100 Ixl + tgy + cos Y .

ZI - I I + 2 '

100 x + tgy ( eX cos y + 3 sin y )

( 2 2)3 (I I . J203

X +cos y x +slny

Z2 = cth + ,

Ixl+siny x2 +cos ' y

45

Lucrari de laborator la Mecanica realizate in MATLABo 1. Balmus, A. Casian, Vo Mihailov

7

_ Ixl(x+tgy) (5x2 +lsinylr02 .

Rl - 1/3 + 4 '

(5ox2+lsinYI) X2(X+tgy)

_ ~2x + sin ' y x + Inltgyl + COS Y .

R2 - sh 1 3 - 1/3 '

(x+lnltgyl) 0 +Ixl (2x+sin2 y)

8

(x+2x2)(1+3x3r (siny+lnlxIY/3 +cosy

T. = + .

1 sin y + In Ixl x2 ( 1 + 3x3 ) ,

( 4)114

_ arcsin(cos2y)+lxl 1+2x +cosy .

T;_ - 1/4 + ( ) I I '

(1 + 2X4) arcsin cos 2y + x + sin y

9

( )205

F eX siny+e-x cosy x+siny I I .

1= . +{) X . -x +xsIny;

x + SIn y V e SIn y + e COS y

[ J1.3

H, = arcsin ~ +cos' y +~lx-lnYI;

Ix-Inyl

10

A =(x+lnlcosYIJ205 + 5 (x+lctgylt .

1 x + Ictgyl ~ x + In Icos YI '

( 2 2)2 (I I . J203

X + COS Y X + SIn y

Z2 = cth + ,

Ixl + siny x2 + cos" Y

11

( X3 +tgy J203 (siny-Inlxl)2.5 I I . 2

B, = + + x SIn y;

sin y -In Ixl ~IX3 + tgyl

(X3 _ cos y)1.3 x2 (Ixl + Isin yl)1.3

Q = + .

2 Ixl + Isin YI ~( x3 - COS y) ,

46

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

_[ x(l +x2)(1 +2X)2]" Inlctgyl-X.
H1- I I + ( ) 2'
12 In ctgy x 1 + x2 ( 1 + 2x)
_ h ~ 2x + sin 2 y x + Inltgyl + cos y .
R2 -s 13 -
1/3 '
(x+Inltgyl)· +Ixl (2x + sin ' y)
_ (ex cos y + 3 sin y r 100 Ixl + tgy + cos Y .
z, - I I + 2 '
13 100 x + tgy ( eX cos y + 3 sin y )
( 4)114
_ arcsin(cos2y)+lxl 1+2x +cosy .
1; - 1/4 + ( ) I I '
(1+2x4) arcsin cos2y + x +siny
(IXI(l +2X2) r lOOx+ctgy+siny
Q = + .
14 1 100x+ctgy x2(1+2x2)'
~2x - sin y Ixl ~Ix -In yl
F =arctg + .
2 ~lx-inYI ~2x-siny'
_ Ixl(x+tgy) (5x2 +lsinylr·2 .
Rl - 1/3 + 4 '
15 (50x2+lsinYI) x2(x+tgy)
( 2 2 t
x + cos y x-cosy
~ =sh +ln (2 2 ) +Isinylx;
~lx-cosYI x +cos y
(x+2x2)(1+3x3r (siny+Inlxl)1/3 +cosy
T. = + .
1 sin y + In Ixl x2 ( 1 + 3x3 ) ,
16 ( x1.3 + sin 3 y r (lx+cos2 y) .
B2 = ch +ln 1.5 '
~lx+cos2 yl ( x1.3 + sin 3 y) 47

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

A = [x+ lnlcosY1J' + (x+lctgyI)3.
17 1 x + Ictgyl ~ x + In Icos yl '
[ r
2 + COs2
H2 = arcsin ~ Y +~lx-lnYI;

Ix-Inyl
[ x3 +tgy r (siny -lnlxl)2.5 I I . 2
B, = + + x SIn y;
18 sin y -In Ixl ~IX3 + tgyl
( 2 2)3 (I I . r
_ x + COS Y X + SIn y .
Z2 - cth I I' + 2 2 '
X +SIny x +COS y
_[ x(l +x2)(1 + 2X)2]"' Inlctgyl-x.
H1- I I + ( ) 2'
In ctgy x 1 + x2 (1 + 2x)
19 (X3 - cos y r·2 x2 (Ixl + Isin ylt3
Q = + .
2 Ixl + Isin yl ~( x3 - COS y) ,
_ (ex COS y + 3 sin y r 100 Ixl + tgy + cos Y .
ZI - I I + 2 '
20 100 x + tgy ( eX cos y + 3 sin y )
_ h ~ 2x + sin 2 y x + Inltgyl + COS Y .
R2 -s 13 -
( r/3 ,
(x+lnltgyl)· +Ixl Zz +sin ' y
_ Ixl(x+tgy) (Sx2 +lsinylr·2
RI - 1/3 + 4 ,
21 (SOx2+lsinYI) x2(x+tgy)
~2x - sin y Ixl ~Ix -In yl
F =arctg + .
2 ~lx-inYI ~2x-siny' 48

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

(IXI(l + 2X2) r lOOx+ctgy+siny
Q = + .
22 1 1 OOx + ctgy x2 ( 1 + 2X2 ) ,
( 2 2 r
X + COS Y x-cosy
Az =sh +ln (2 2 ) +Isinylx;
~lx-cosYI x +COS y
(x+2x2)(1+3x3r (siny+lnlxIY/3 +cosy
T. = + .
1 sin y + In Ixl x2 ( 1 + 3x3 ) ,
23 [ r
2 + cos"
H2 = arcsin ~ y +~lx-1nYI;

Ix-Inyl
F- (eX siny + 2X cos y)" 1 I· I leX siny+ 2x cosy
- + n slny - ;
200x+ y ~ 200x+ y
24 ( )2 ( )3
2 3 X 1 +x 1+ 2x
A = 5 X ( 1 + x) (1 + 2x) + 3
, ~ Inlctgyl ,
~ x - sin(y) Ixl "'1- x2

Z = arctg - .
25 '" x - x2 ~ X - sin(y) ,
. eX siny+e-x cosy
Q = e' sin y-i e " cosy+ 1+ ;
, ~ tgy
(sin y + sin 2 y + sin 3 y ) 4 'I sin y + sin 2 y + sin 3 y
T= + + .
1 + sin y + sin 2 y + sin 3 y ~ eX'
26 eX
)cos 2y + sin 4y + "'ex + e-x
H= .
(e-x + e" )3( sin4y + cos 2y - 2)2 ' 49

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

27

(In y J1+ x:t~

W= 1+ .

,

x+tgy

R = sh ~+ Iny)3 ch[(X+ 1ny)~lx-1nyIJ; Ix-Inyl

28

( J2.3

F eX siny+2x cosy I I· I eX siny+2x cosy

= + n siny -

200x+ y , 200x+ y

R = sh (r Iny)3 ch[(x+ In Y)~lx-InYIJ;

"Ix-inyl

29

2 3 X(1+X)2 (1+2x)3

A = {, x(1 + x) (1 + 2x) + {I I I

~ V In ctgy

~cos2y+sin4y+.Jex +e-x

H = ______;----------

(e ' + e-x)3 (sin 4y + cos 2y - 2)2 '

30

50

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

III. De calculat valorile functiei pe segmentul dat in N puncte la intervale egale unul de altul. Optimizati programul folosind variabilele intermediare.

Varianta Functia Intervalul N
1 Y ( x) = In ( x2 + 1 ) + x cos 2 X [-Jr,Jr] N=8
x
2 Y (x) = x2 e + In Ixl [-1,3] N=6
eX +1
3 Y ( x ) = eX sin x ( x3 + 2 ) [ -Jr, 2Jr ] N=9
4 Y ( x ) = x2 cos X (In x + 3 ) [0.5,2] N=8
5 Y( x) = e' (xsinx + lnlxl) [0.2,3] N=7
6 Y ( x ) = x2 In ( x2 + 1 ) + x sin x [-Jr,Jr] N=8
7 Y (x) = e" sin x + e-x cos x [-Jr,Jr] N=7
8 Y( x) = (x + lnlxl)ch( x+ lnlxl) [1,3] N=5
9 Y ( x) = eX ( x2 + 1 ) + In ( x2 + 1 ) [0,3] N=7
10 Y ( x) = 2 sin x2 cos ( x2 + 1 ) [0,2] N=8
11 Y (x) = sin x In (lxl3 + 2) + x2 cos X [_ K 3K] N=6
2' 2
12 Y ( x ) = ex2 ( x2 sin x + ctgx' ) [ -Jr, 2Jr ] N=7
13 Y( x) = lnlxl( xcosx+ lnlxl) [-0.3,3] N=6
14 Y ( x ) = e -x cos x2 ( x2 + 1 ) [ -1,3] N=8
15 Y (x) = x2ln (Ixl + 1) + x cos x [_ K 3K] N=7
2' 2
16 Y ( x ) = ~ eX + e -x ( x2 + In Ixl) [ -0.2,4] N=6
17 Y ( x) = x2 sin x (In Ixl + 4 ) [1,3] N=7 51

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

18 y ( X ) = eX cos x ( x3 + 3 ) [ -Jr, 3Jr ] N=8
19 y ( x ) = x ( cos x2 + thx' ) [ -Jr, 2Jr ] N=7
20 y (x) = x2In (Ixl + 1) + ctg (Ixl + 1) [ -0.3,4] N=6
21 y ( x ) = x3 ( xtgx + sin x2 ) [ -Jr, 3Jr ] N=8
22 y (x) = In (Ixl + 1) ( x2 sin x + arcsin x) [-1,3] N=7
23 y ( x ) = cos x In (lxl3 + 2 ) + x2 sin x [ -Jr, 3Jr ] N=8
y(x) = sm xcos r [0,2Jr ]
24 x2 +1 N=10

25 y(x) = In(x + 1).J e" + e-x [-0.2, Jr] N=8
[0, ~ 1
26 y(x) = x2tg.Jarcsinx N=9
X
27 ( ) . 3 e [0,1 ] N=7
y x =xslnx+x -
z +I
y(x) = 1
28 [0,3] N=9
1+ x
.Jl+x
29 y(x) = esinx + eCosx [Jr ,3Jr ] N=11
2
x
30 y(x) = ctgix" +1)·(sin2x+cos2x) [-1,1 ] N=7 52

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Lucrarea nr. 2. Grafica in sistemul MATLAB

2.1. Crearea graficelor

Tipul graficului selectat depinde de natura datelor si ce dorim sa aratam, MA TLAB are multe tipuri de grafice redefinite, asa ca linii, bare, histograme, etc. De asemenea sunt grafice tridimensionale, asa ca carcase, suprafete, plane, linii de contur etc.

Sunt doua metode de creare a graficelor in MA TLAB: l) crearea interactiva ~i 2) crearea graficelor cu programele introduse in linia de comanda, V -om studia mai detailat metoda a doua.

2.1.1. Fereastra cu grafic

Toate graficele se scot in ferestre ale graficelor cu meniurile si panelele de instrumente ale sale. Forma graficelor poate fi schimbata interactiv cu ajutorul instrumentelor ferestrei graficului.

Desenand un grafic, MA TLAB automat deschide 0 fereastriifigurii (fereastra cu figura, mai departe 0 v-om numi si prescurtat - figura) daca asa fereastra inca nu exista, Daca figura exista, MA TLAB desina in ea. Daca sunt mai multe figuri, MA TLAB desina in figura marcata "figura activa", Figura activa este ultima figura folosita sau activata de utilizator.

Daca se cere de a obtine cateva grafice in diferite ferestre, atunci inainte de a chema functia grafica trebuie de apelat comanda

figure tara parametri, care deschide 0 figura noua si 0 face activa, Ferestrele graficelor vor fi numerotate Figure Nol, Figure No 2, etc. Pentru a seta 0 figura activa e necesar de a clica cu mausul pe fereastra data sau in linia de comanda de scris

I » figure(n);

unde n este numarul figuri date (se indica in bara de titlu a ferestrei). Rezultatul a comenzilor grafice vor fi aratate in aceasta figura,

53

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

.) Figure 1 :

.:.I.QI~

Eile ~dit ~Jew Insert 10015 Q.esktop Window tielp ~

Fig. 2.1. Exemplu de fereastra- figura

Fiecare fereastra are axele de coordonate ale sale. Daca chiar in fereastra sunt mai multe axe, graficul va aparea in axele curente, care sunt ultimele din cele create. Pentru a alege axele curente din cateva este suficient de a clica pe ele cu butonul din stanga a mousul inainte de a chema functia grafica,

2.1.2. ~tergerea figurii

Daca 0 figura deja exista, majoritatea comenzilor de desenare sterg axele si folosesc aceasta figura pentru crearea unui grafic nou. Pe de alta parte, aceste comenzi nu v-or reseta proprietatile figurii asa ca culoarea fonului sau paleta de culori. Daca ati setat careva proprietate a figurii precedente si inainte de crearea unui grafic nou doriti sa le resetati trebuie de apelat la comanda elf (din engleza clear

figure) cu optiunea reset:

I »elf

» clfreset

Comanda elf sterge figura lara resetarea proprietatilor ei. Tot acelasi rezultat v-om obtine daca din meniul figurii v-om selecta "Edit -> Clear Figure".

2.2. Construirea graficelor functiilor de 0 singura varlablla

Sa construim graficul functiei de 0 variabila

f(x)=exsinnx+x2 pe segmentul [-2,2]. Primul pas consta in determinarea coordonatelor punctelor pe axa absciselor. Construirea vectorului xl cu elemente de pas constant se efectueaza cu ajutorul

54

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

operatorului colon. Mai departe trebuie de calculat valorile f(x1) pentru fiecare element al vectorului xl si de scris rezultatul in vectorul y 1. Pentru construirea graficului functiei trebuie de folosit functia plot. Se indica argumentele xl ~i y 1 in paranteze rotunde. Ordinea comenzilor sunt indicate mai jos

» xl =[ -2:0.05:2];

» yl =exp(xl). *sin(pi*xl )+xl."2; » plot(xl,yl)

In urma exccutarii functiei plot apare graficul functiei (fig. 2.2):

-1.5 -1

-0.5

o

0.5

1

1.5

2

Fig. 2.2. Graficul functiei

2.2.1. Functia comet

,

Functia comet permite de a urmari miscarea punctului pe traiectorie. La apelarea comet(x,y) apare fereastra graficului pe axele carora se deseneaza miscarea punctului in forma unei comete cu coada, Viteza miscarii poate fi controlata prin schimbarea pasului la determinarea vectorului valorilor parametrului.

55

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2.3. Construirea graficelor functiilor de doua variabile

Exista 0 serie de functii grafice pentru a vizualiza functiile de

doua variabile:

• plot3 - analogul 3-dimensional a functiei plot;

• mesh - carcasa suprafetei;

• surf - suprafata plina de culoare;

• contour - grafic plan cu liniile de nivel;

• meshc, surfc - suprafata cu liniile de nivel in planul x,y;

• contourf - grafic plan cu liniile de nivel colorat;

• contour3 - suprafata compusa din linii de nivel;

• surfl- suprafata luminata.

Fie ca trebuie de obtinut carcasa suprafetei functiei z(x,y) = e-x sin(ny) in dreptunghiul x E [-1,1], y E [0,2] . Primul pas consta in indicarea scarii pe dreptunghi, adica punctele, care vor fi folosite pentru a calcula valorile functiei. Pentru a genera scara se foloseste functia meshgrid, care depinde de doua argumente vectorii care determin scarile pe axele x si y.

Functia meshgrid, creeaza doua variabile care sunt matrice

I» [x3,y3]=meshgrid(-1:0.1:1,0:0.1:2);

Matricea x3 consta din aceleasi randuri egale cu primul argument - vector in functia meshgrid, iar matricea y3 din coloane egale care coincid cu al doilea argument in meshgrid. Aceste matrice sunt necesare pentru a face al doilea pas la completarea matricei z3, fiecare element al careia este 0 valoare a functiei z(x,y) in unctele scarii, Obtinem matricea necesara z3:

Pentru a construi graficul z(x,y) grafica potrivita, de exemplu:

a ramas de chemat functia

,

I »mesh(x3,y3,z3)

56

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Fig. 2.3. Careasa (mesh) si suprafata (surf) functiei z(x, y).

Pe eeran apare fereastra grafica eu suprafata functiei eereetate, euloarea caruia eorespunde valorii implieite colorcube (eulorile grafieelor 3-dimensionale vor fi analizate mai departe).

Pentru obtinerea suprafetei functiei se foloseste functia surf, care se aseamana eu mesh doar prin aeeea, ea mesh desina eareasa iar surf - suprafata (se apeleaza ea si functia mesh) (Fig.2.3).

I » surf(x3,y3,z3)

2.3.1. Construirea graficelor plane cu liniile de nivel

Grafie plan eu liniile de nivel si grafie plan eu liniile de nivel eolorat a functiei (fig. 2.4):

» eontour(x3,y3,z3) » eontourf(x3,y3,z3)

Fig. 2.4. Liniile de nivel (contour) ~i liniile de nivel eolorat (contourf) a functiei.

57

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Numarul liniilor de nivel se indica in al patrulea argument, adau ator, de exem lu:

In locul numarului liniilor se poate de indicat in forma 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 setam pasul nostru

Fig. 2.5. Setarea numarului liniilor de nivel si valorile lor.

3,z3,[ -3 :0.1 :3] ;

Su rafata fermata din liniile de nivel se

4

2

o

-2

-4 2

1

o -1

Fig. 2.6. Suprafata formata din liniile de nivel.

58

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pentru a introduce pe fiecare linie inscrieri cu valorile respective ale lui z(x,y) trebuie de chemat clabel cu doua argumente, unul fiind matricea cu informatia despre pozitia liniei de nivel, iar al doilea - vectorul cu indicii pe linii. Variabilele obtinute trebuie folosite ca argumente ale functiei clabel:

» [CMatr, h] = contour(x3, y3, z3, [-3:0.3:3]); » clabel(CMatr, h)

2.4. Construirea graficelor functiilor determinate in mod parametric

Fie ca trebuie de construit graficul unei functii determinate in mod parametric, de exemplu graficul isteroidei x(t) = cos ' t ,

x(t) = sin 3 t, t E [0,2Jr]. Mai inta.i trebuie de determinat vectorul t, apoi de introdus valorile x(t), yet) in vectorii x, y si de aplicat plot, pentru a descrie dependenta luiy de x (fig. 2.7):

» t=[0:pi/20:2*pi]; » x2=cos(t)/'3;

» y2=sin(t)./\3;

» plot(x2,y2)

30

10

20

o 10

Fig. 2.7. Graficele functiilor determinate in mod parametric

Pentru functiile de doua variabile

I » cercuri=4; ra~a=10;

59

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

» unghiul=[0:pi/20:cercuri*2*pi]; » x2=raza*cos(unghiul);

> > y2=raza *sin( unghiul);

» plot3(x2,y2,unghiul)

2.5. Construirea intr-o fereastra a graficelor catorva functii

,

2.5.1. Grafice cu axele comune

La aplicarea functiei plot MA TLAB implicit sterge fereastra grafica, Pentru a suprapune 0 imagine pe alta se aplica comanda hold on, iar pentru anularea suprapunerii imaginilor se aplica hold ofJ(fig. 2.8). La suprapunerea graficelor MATLAB la nevoie recalculeaza axele entru ca sa inca a raficele. Exem lu:

»hold on %hold off

» x=[ -2:0.05:2]; f exp(x). *sin(pi*x)+x./\2; »xl=[-2:0.5:2]; g=exp(-xl./\2).*sin(5*pi*xl);

»fi ure I; lot x, ; lot xl,

4

0.8

~~~--~~~~--~~

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

I,

, ,

, , , , , , , , , ,

"...... , ,

o ... , ' ......"

" ... ,

, '

,

" '

, '

, '

"

0.6

0.4

0.2

-0.2

-0.4

-0.6

-O.8~~--~~~~--~~

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

a) b)

Fig. 2.8. Graficul cu si rara suprapunere (hold on si hold ofJ)

60

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Adica, mai intai trebuie de ealculat valorile lui f(x), g(x) si la sfarsit de ehemat plot, separand prin virgula pereehile x.f si x, g (vezi figura 2.8, a)).

Analo ie si eu rafieele 3-dimensionale fi .2.9 .

» raza=2; unghiul=[ -2*pi:pi/20:2*pi]; %ealcule preliminare

» x2=raza*eos(unghiul);

> > y2=raza *sin( unghiul);

» [x3,y3 ]=meshgrid( -raza:O.1 :raza,-raza:O.1 :raza); » z3=exp(-x3).*sin(pi*y3);

» figure(3); plot3(x2,y2,unghiul) %metoda 1

»hold on

» eontour3(x3,y3,z3,[ -raza:O.1 :raza J);

»fi ure 4; 10t3 x2, 2,un hiul,x3, 3,z3; %metoda 2

10

2

Fig. 2.9. Doua grafiee 3-dimensionale intr-o figura

2.5.2. Grafice cu axele proprii

Comanda subplot permite plasarea intr-o fereastra a grafieului sau imprimarea pe aceiasi hartie a cateva grafiee eu axele proprii. Comanda subplot(m,n,p) imparte figura intr-o matriee m pe n de parti a grafieului initial, iar peste indexul parti seleetate (numerotarea este ea la matriee eu un singur index).

Fie ea trebuie de vizualizat grafiee pe 6 axe de eoordonate intro fereastra: doua pe verticala si trei pe orizontala, Se creeaza fereastra rafica eu a· utorul l re si se a lica eomanda

61

2

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

In unghiul din stanga de sus apar axele. Primele doua argumente din paranteze indica numarul de axe de coordonate pe vertic ala si orizontala, ultimul indica numarul de ordine a axelor. Folositi subplot(2,3,2), ... , subplot(2,3,6) pentru a crea axele urmatoare. Orice grafic poate fi desenat la axele active la momentul desenarii, aplicand, 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 optiuni pentru setarea scarii, orientatiei si formatul de vizualizare a graficelor. De asemenea aceste modificari se pot executa interactiv.

Setarea limitelor axelor. Implicit, MAT LAB gaseste valoarea rnaximala si minimal a a valorilor variabilelor si alege limitele axelor in asa mod, ca sa cuprinda toate valorile. Comanda axis permite setarea limite lor 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 seteaza inapoi alegerea automata a limitelor.

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

face axele egale dupa lungime "-

face distantcle intre gradarile axelor egale. In rezultatul comenzii pe grafic cercul va fi cere

dar nu oval.

axis normal returneaza la modul automat de vizualizare Vizibilitatea axelor. Implicit axele sunt vizibile. Comenzile axis on si axis off schimba starea in vizibil si invizibil si viceversa.

axis square axis equal

62

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2.6. Crearea interactiva a graficelor

Fie di noi avem deja datele calculate a functiilor 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);

Apelam la comanda figure sau din meniul MAT LAB selectam "File-> New-> Figure" si ca rezultat apare fereastra graficului. Din meniul figurii ale gem "Insert-> Axes" si cu mausul desenam axele in partea dreapta a ferestrei. Repetam operatia si desenam inca doua perechi de axe noi in partea stanga una sub alta (fig.2.10, a)). Activam axele din stanga sus si apasam butonul drept al mausului; ale gem "Add data" din meniul aparut, Apare fereastra de creare interactiva a graficului - de adaugare a datelor la axe (fig.2.10, b)).

File Ed~ View ~ Tools Deskt~OP ~"'Cd~'W~H"c-c-P ---=------1

[l~IiI~1 XL,b,' l'ieID~IElIQI

YLabel F--'-----'--'-------___J__------I

1L ~.~:'"

Legend

1,5 Colorbar

Line

Arrow teet Arrow

00 0.2 Double Arrow



TextBox Rectangle

09
0.8
07
DB 1 0.6
05
04
0.3
0.2
01 Ellipse

1.8 1.6

Axes

Light

1.4 1.2

00':-----:00':.-.2 ----:::'-;-0.4 ------='=0.6------="0.8:------:1 0111-0 ------='=0 2~0-----<4 :-'00':.-6 ------='=08-------<11



~) Add Data to Axes 13

Plot

X Data Source: ~ x

Optional



Y Data Source: ~ j

Select a variable, or type an expression

~ Cancel .~

a) b)

Fig. 2.10. Figura cu 3 axe (a) si adaugarea datelor la axe (b).

In boxa "X Data source" selectam valorile abscisei, iar in boxa "Y Data source" selectam valorile ordonatei al graficului (in cazul nostru x si f respectiv). Selectam tipul graficului (plot) si apasam butonul OK. Ca rezultat apare graficul pe axele selectate.

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

63

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov



.) Fiqure 1 !Iii!

E_ile ~dit Y:iew nsert joois pesktop ~ndow t!elp

-1

-3 __ ---'-------e------'------~

2 -2

-1

2

Fig. 2.11. Rezultatul crearii interactive a figurii.

Selectand 0 functie In axa curenta, se poate de facut schimbari ai tipului liniei, grosimii, culorii etc.

2.7. Of or mare a graficelor

In MA TLAB exista comenzi si functii speciale pentru oformarea graficelor.

Tipul liniilor, culoarea si marcherii se determina prin valoarea argumentului al treilea suplimentar al functiei plot. Acest argument se indica intrc apostrofe, de exemplu, comanda plot(x,f, 'ro: ') va construi graficul functiei cu linie rosie si marcheri rotunzi.

-3~--"--~-~~--"""'-~

-2 -1.5 -1 .{).5 0 0.5 1.5 2

Fig. 2.12. Graficele functiilor cu culoarea, tipul de marcher si stilulliniei schimbate

64

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

In argumentul suplimentar pot fi completate trei pozitii care corespund culorii, tipului de marcher si stilului liniei, insemnarile carora sunt prezentate in tabelul 2.1 :

Tabelul2.1 Prescurtari pentru culori, tipul de marcher si stilulliniei

I Culoarea II Tipul marcherului
CXJIGalben IDIPunct
[~]Roz 101Cerculet
01Albalbastru 101Cruciulita
[~]Ro~u [~]Semnul plus
[~]Verde 1c::::JISteluta
01Albastru 101Patrat
[~]Alb [~IRomb
[~]Negru [~ITriunghi cu varful in jos
I Tipulliniei 1r=JITriunghi cu varful in sus
[===]Dreapta 1~ITriunghi cu varful in stanga
DIPunctata 101Triunghi cu varful in dreapta
DILinie-punct [~]Steluta cu 5 colturi
[::=::=::]Linie intrerupta 11~]Steluta cu 6 colturi Comanda colorbar creeaza 0 coloana in fereastra graficului, care arata relatia intre culoare si valoarea functiei z(x,y). Paleta culorii graficului poate fi schimbata cu ajutorul functiei colormap, de exemplu, colormap(gray) reprezinta graficul culorile caruia sunt de nuanta sura.

,

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

• bone - seamani; cu aspectul gray, dar cu un ton usor de culoare albastra;

• colorcube - fiecare culoare se schimba de la inchis pana la deschis;

• cool - nuante de culori alb albastre si purpurii;

65

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

• copper - nuante de culoarea cuprului;

• hot - schimbare lina: ncgru-rosu-oranj-galben-alb;

• hsv - schimbare lina (ca culorile curcubeului);

• jet - schimbare lina: albastru-alb albastru - verde- galben -

rosu;

• spring - nuante de purpuriu si galben;

• summer - nuante de verde si galben;

• winter - nuante de albastru si verde; Valoarea implicita a paletei este jet.

4\

\ 1

\ 1

3 \ 1

, 1

, 1

2' ,~ 1

\ , \

\ ,\ :

, ," 1

, ,\,",., 1

:l \'. .' ''i ., . \ ,

0( .,..p",l.,.I\. ~

o • .. ·'.1 \." .. " , . , .. v ' ..... _ .

• ,1>.11'.'.' .... ,

•• ~-. ,. \. 1 ,

" '/ 'J \'

, ,

, , \ ,

"

> 1

-1

-2

~~----1----0---------2 AxaX

60

50

40

30

20

10

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

Fig. 2.13. Graficul functiei in rezultatul aplicarii comenzilor:

a) colorbar; si 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, desena gradarea pe grafic, iar comanda grid off sterge gradarea (v. fig. 2.14,a)).

Fiecare grafic are un titlu. Titlul se situeaza deasupra axelor in centru. Titlul graficului se plaseaza cu ajutorul functiei title, care are ca argument randul respectiv in format string (se ia in apostrofe):

I »title(,Rezultatele experientei')

Apare figura 2.14, b).

66

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

-3

-2 -1.5 -1 ~.5 0 0.5

1.5 2

Rezultatele experientei

-1

-2

-3~--------'_----~------~--

-2 -1.5 -1 ~.5 0 0.5 1.5 2

a) grid on b) title

Fig. 2.14. Graficul functiei in rezultatul aplicarii functiilor a) grid on; b) title.

Reutilizarea comenzii title arata titlul nou al graficului, care i-l inlocuieste pe eel vechi.

Graficele, de asemenea, au ~i cate 0 descriptie pentru fiecare axa, care se situeaza in dreptul fiecarei axe respective. Comenzile xlabel, ylabel si zlabel servesc pentru a arata descriptia la axele x, y si z, respectiv. Ar umentele lor la fel sunt in format strin :

» xlabelr'Axa XI); labelr'Axa Y'); zlabel('Axa ZI)

Reutilizarea comenzilor xlabel, ylabel si zlabel arata descriptia noua a axelor care 0 inlocuieste pe cea veche.

-3~~~~--~--~~~~--~~

-2 -1.5 -1 ~.5 0 0.5 1.5 2

-3~--------'_----~------~--

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

AxaX

a) b)

Fig. 2.15. Graficul functiei in rezultatul aplicarii functiilor: a) legend; b) xlabel, ylabel.

67

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pentru a descrie cateva grafice se aplica comanda legend.

Inscricrilc legendei, luate In apostrofe se indica In argumentele functiei legend, ordinea carora trebuie sa coincida cu ordinea graficelor. Ultimul argument indica pozitia legendei (implicit 1):

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

o se alege pozitia cea mai buna In limitele graficului,

astfel ca mai putin sa acopere graficele

1 In unghiul din dreapta de sus a graficului 2 In unghiul din stanga de sus a graficului 3 In unghiul din stanga de jos a graficului 4 In unghiul din dreapta de jos a graficului.

I »legendCfunctia l','functia 2')

Pentru a plasa un obiect de tip text pe grafic putem folosi comanda text, formatul careia este text(x,y,z, 'string'), unde x ~i y sunt coordonatele pe axe curente, urmat de textul In format string luat In apostrofe.

I »text(O,5,'Functia curenta.')

Parametrii Horizontal.Alignment si Vertical.Alignment permit de a plasa textul in partea do rita fata de punctul initial z,y,z. Parametrul Horizontal.Alignment poate primi valorile left, right si center, pe cand parametrul Vertical.Alignment poate primi valorile middle, top, cap, baseline si bottom. Valorile implicite ale parametrilor sunt HorizontaiAli nment=le t si VerticaiAli nment=middle

In comenzile title, xlabel, ylabel, zlabel si text pot fi utilizate urmatoarele argumente, care fac graficul mai citet: 'FontSize', 'Color', valorile carora tot se indica ca argumentul urmator, despartite prin virgula, Parametrul color este 0 matrice din 3 elemente cu valoarea de la 0 pana la 1 pentru fiecare culoare rosu - verde - albastru (RGB - Red-Green-Blue).

68

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

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

La scrierea textului MA TLAB of era posibilitatea de includere a simbolurilor matematice, literelor grecesti, precum si formatul textului folosind secventele de caractere TEX.

,

Ele se incep cu simbolul "\". Exemple:

\it inceputul simbolurilor aplecate (italic).

Acoladele "{}" arata inceputul si sfarsitul,

\leq semnul mai mic si egal

\leftarrow sageata in stanga sageata in dreapta constanta pi

litera greceasca omega

Lista tuturor secventelor le puteti vedea in anexa 2.

Pentru a scrie textul in doua randuri se foloseste un tabel celular cu mai multe randuri:

I »title({'primul rand';'al doilea rand'})

Pentru importarea imaginilor in Microsoft Word lara pierdere de calitate trebuie de exportat imagine a in fisier "emf' (Enhanced metafile, format vectorial) din meniul "File-t-Save as" a ferestrei imaginii. Tot acelasi rezultat putem obtine, daca v-om copia in Clipboard imagine a prin meniul "Edit ->Copy figure" iar pe urma in documentul necesar. Folosind comanda print e posibil de memorizat in Clipboard sau in fisier:

print -dbitmap rnernorizeaza ca Windows bitmap (BMP)

print -dmeta memorizeaza Enhanced metafile (EMF).

69

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Sarcina Lucrarll nr. 2

I. Descrieti comenzile de baza pentru construirea graficelor in pachetul MATLAB.

II. De construit graficele functiilor de 0 variabila pe segmentul indicat. De indicat titlurile, de introdus inscrierile la axe, legenda, de folosit diferite culori, stiluri ale liniilor si tipuri de marcheri. Optimizati programul (nu expresia matematica) folosind variabilele intermediare. De a prezenta graficele prin diferite metode:

a) in ferestre diferite;

b) intr-o fereastra pe aceleasi axe;

c) folosind comanda subplot:

c 1) intr-o fereastra pe axe diferite :

Orizontal,

f(x) E°-::.,:~H, I

/- ) _:,L 0 _ 0 __., o~ 0__ j

g\x :1 , ... 0 , .o~o:!

, •. '/ .', .• , ••. , •.•• -:>-.,.', .. ,.""' .... ,

f(x) si g(x)

vertical ambele pe axele din dreapta

c2) intr-o fereastra - fiecare aparte pe axe diferite si ambele pe accleasi axe .

.-----------,

ambele pe axele din dreapta

ambele pe axele de sus

Vari- Functia 1 Functia 2 Segmentul
anta , ,
1 f(x) = sinx g(x) = sin ' x x E [- 2Jr,3Jr]
2 f(x) = sin z ' g(x) = cosx 2 XE[-Jr,Jr]
3 f(x)=x3 +2x2 +1 g(x) = (x-s I)" x E [-1,1]
4 f(x) = Inx2 g(x) = xlnx x E [- 0.2,10]
5 f(x) = 12xl3 g(x) = 12xls x E [- 0.5,0.5]
6 f(x) = x2 g(x) = x3 xE[-I,I]
7 f(x) = arcsin x g(x) = arccosx xE[-I,I] 70

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

8 f(x)=cos2 X, g(x) = In(lxl+l) x E [ -Jr, 4Jr ]
9 f(x) = x2Inx g(x) = xsinx x E [0.2,8]
10 f(x) = x2 sinx g (x) = X (In Ixl + 1) xE[-Jr,6Jr]
11 f ( X ) = sin 3 ( X ) g(x)=cos3x X E [ -Jr, 2Jr ]
12 f ( X ) = x2 cos X g(x) = x3 cosx X E [-Jr,3Jr]
13 f ( x ) = x In ( x2 + 1 ) g ( x ) = x2 + X + 2 x E [-0.2,4]
14 f(x) = xsin r ' g(x) = x2 cosx X E [ -Jr, 4Jr ]
15 f(x) = 2ex sinx g ( x ) = x2 cos 3 X X E [-1,3]
f(x) = 5e-x cosx g(x)= sm x x E [0.1,4]
16
x
17 f ( x ) = x2 sin 2 x g(x) = xcosx X E [-1,3]
18 f ( x ) = eX sin x2 g(x) = x cos" X X E [-1,2]
19 f(x) = xcosx g(x) = x cos" X X E [ - 2Jr , 2Jr ]
20 f(x) = 2 arcsin x g(x) = x2 cosx X E [-1,2]
21 f (x) = 3e-x sin x g(x) = e' cosx x E [0,3]
22 f(x) = x2 sinx g(x) = xcosx XE[-Jr,Jr]
23 f(x) = 3 arccos x g(x) = e-x cosx x E [-1,1]
24 f(x) = xsinx g (x) = x (In Ixl + 1) X E [-1,3]
25 f(x) = xthx g ( x ) = x2 cos X X E [-1,2]
26 f ( x ) = ( x2 + 1) sin x g ( x ) = In ( x2 + 2 ) X E [-1,3]
27 f(x)=e-xsin2 x g(x) = xcosx X E [-Jr,3Jr]
28 f(x) = 3xcosx g ( x ) = x2 cos 2 X XE[-Jr,Jr]
29 f(x) = x2 cosx g ( x ) = x sin 2 x x E [-1,3]
30 f(x) = x2 (Inlxl+2) g ( x ) = eX sin x x E [-1,2] 71

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

III. De construit graficul functiei de doua variabile pe un sector dreptunghiular prin diferite metode - mesh, surf, meshc, surfc, contour, contourf, contour3. Cotele la graficele de contur se aleg de sinestatator, Optimizati programul (nu expresia matematica) folosind variabilele intermediare.

Vari- Functia Segmentul Segmen-
anta , 1 tul2
1 z(x,y) = sin x- e-3y x E [0,2JZ"] y E [0,1]
2 z(x,y) = sin 2 x -In y x E [0,2JZ"] y E [1,10]
3 z(x,y) = sin 2 (x - 2y)· e -IYI XE[O,JZ"] YE[-I,I]
4 z(x,y) = (sin x" + cos y")" x E [-1,1] y E [-1,1]
5 z(x,y) = (1 + xy)(3 -x)( 4 - y) xE[0,3] YE[O,4]
6 z(x,y) = e -Ixl (x5 + y4)sin(xy) xE[-2,2] YE[-3,3]
7 z(x,y) = x2y2 +2xy-3 xE[-2,2] YE[-I,I]
x2 + y2 + 1
8 z(x,y) = e-Ixl cos" (x- y) X E [-1,1] YE[-7r,7r]
9 z(x,y) = x2e-lyl sin (xY) xE[-2,2] y E [-1,1]
10 z(x,y) = 2xcosxlny x E [-JZ",JZ"] y E [1,5]
11 z ( x, y) = e -Ixl ( x2 + y2 ) cos ( xy ) X E [-1,2] YE[-2,3]
12 z ( x, y) = sin 2 ( x - 3 y ) e -Iyl x E [0, JZ" ] Y E [-1,1]
13 z(x,y) = cos(x+2y2)ln(IXYI+l) x E [-1,1] y E [-1,2] 72

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

14 z (x, y) = 2x sin (xY) In (y + 2) X E [-Jr,Jr] Y E [-1,1]
15 z ( x, Y) = sin ( x2 + y2 ) cos ( xy ) X E [-Jr, 2Jr] YE[-Jr,Jr]
16 z ( x, r) = (1 + 2xy) ( sin x + cos r) X E [-1,1] YE[-Jr,2n]
17 z ( xy ) = eX [ cos ( xy ) + xy ] X E [0,1] Y E [-2,2]
18 z ( xy ) = x sin ( x ) In y x E [0, Jr] Y E [1,5]
19 z(x,y) = sin(xy)(x2y2 -3) xE[-2,2] y E [-1,1]
20 z(x,y) = 2x2eY cos(xy) x E [-1,1] Y E [-0.5,1.5]
21 z(x,y) = 2xsin(x+ y)In(IYI+2) x E [-Jr,Jr] Y E [-2,2]
22 z(x,y) = (l+xy)[sin(xy)+x] x E [-1,1] Y E [-n,n]
23 z ( xy ) = sin ( 2x - y2 ) e -ixi x E [-1,2] y E [0,2]
24 z( x,y) = x2 cos( xy )(InIXYI + x) X E [-1,1] Y E [-2,2]
25 z ( xy ) = cos ( x2 + y2 ) sin ( xy ) xE[-1.5,2] Y E [-1,3]
26 z( x,y) = 2xy[ sin( xY) + cos( xy)] X E [-1,1] Y E [-2,2]
27 z (x, y) = (X2 + y) e -Y sin (xY) xE[-n,n] y E [0,1]
28 z( x,y) = cos( x2 + 2y )In(lxYI + 2) X E [-0.5,2] Y E [-1,3]
29 z( x,y) = 2sin( x + 2xy )cos(3xy) x E [ _ n 3n] YE[-n,n]
2' 2
30 z( xY) = 2yu cos( xy )In( xY) x E [1,3] Y E [0.5,2] 73

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Lucrarea nr. 3. Calculul traiectoriei punctului material

3.1. Redactorul incorporat

Redactorul intern (incorporat) din MAT LAB are acelcasi facilitati ca si linia de comanda, plus avantajele unui compilator modem - executarea pas cu pas, setarea punctelor de stopare a programului etc.

Evident, ca a lucra in M - file e mai convenabil, de cat in randul de cornanda, fiindca se poate de pastrat programul, de adaugat operatori, de indeplinit unele comenzi lara a apela la istoria comenzilor, ca in cazul randului de comanda, Unicul neajuns este ca erorile apar numai in fereastra liniei de comanda,

Pentru lansarea Editorului intern din MAT LAB 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 aparea fereastra redactorului.

I Sfat practic.

Inainte de lansarea redactorului intern trebuie de catalogul (directoriul) curent.

schimbat

Schimbarea e posibila in fereastra principala a pachetului MAT LAB (fig. 3.1). Indicarea (setarea) catalogului se poate de efectuat prin doua metode:

1) In MA TLAB catalogul curent se indica din fereastra Current Directory a mediului de lucru. Pentru a alege de pe disc catalogul dorit apasati tasta plasata la dreapta de lista deschisa .

... ): MATLAB :::

Eile !;dit DeQ.ug Q.esktop ~indow t:!elp

r-..~"" db I%ll i1 IC) l>i I ~ ~ I ~ I Current Director1:_: I d:\l:emplmatlab

.~art

Fig. 3.1. Setarea directoriului curent.

74

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2) Daca se stie catalogul de lucru atunci se poate de folosit comande ce emuleaza comande ale sistemului - CD, LS, PWD.

CD <DIR> - schimbarea catalogului curent. Se foloseste In sistemele unix, windows.

Din engleza "Change current working directory" CD - vizualizarea catalogului curent (numai In MATLAB). LS - vizualizarea catalogului curent. Se foloseste In sistemele unix.

Din engleza "List directory".

PWD - vizualizarea catalogului curent. Din engleza "Print current Working Directory".

Cand catalogul curent este identificat, toate M - fisierele care se gasesc In el, apar In fereastra Current Directory (fig. 3.2) si pot fi pomite din randul de comanda, sau din redactorul M-fi~ierelor .

..d.gJ~

... .): Current Directory - d:\temp\matlab :!

Eile !;dit ~iew DeQ.ug Q.esktop ~indow t:!elp

I d:\temp\matlab

All Files L

File Type Size Last Modified Description
M-tile 1 KB 11.09.2006 15: 12:01 J
Editor Autosa ... 1 KB 08.11.2006 10:29:00
M-tile 1 KB 08.11.20069:56:09
PDF File 1197 KB 16.11.2006 14:01 :21
Editor Autosa ... 1 KB 22.11.2006 10:22:57
M-tile 1 KB 22.11.20069:38:06 ~
A ~1.m

, Lucrari laborator M ... ! myfun.asv ~myfun.m

...

Fig. 3.2. Fereastra Curent Directory.

3.1. File-functii §i file-programe

Limb aj ul de programare, indus In MA TLAB este destul de simplu si contine minimum necesar pentru scrierea programelor. Inainte de a programa In MA TLAB trebuie de inteles, ca toate programele pot fi sau file- functii, sau file-programe. File-programa

75

Lucrari de laborator la Mecanica realizate in MATLABo 1. Balmus, A. Casian, Vo Mihailov

este un fisier cu extensia ".m", de exemplu "myprog.m", In format text In care sunt inscrisi operatorii MA TLAB. La apelarea fileprogramei toate comenzile din ea se executa. Sa construim un fileprograma,

Culegeti In redactorul incorporat careva comenzi, de exemplu, pentru a construi un grafic:

Exemplu 3.1. File- functia mysum

x=[-1:0.01:1]; y=exp(x); plot(x,y)

grid on

titlet'Functia exponentiala')

Inaintc de executarea programului fisierul automat se salveaza deoarece oricare M-file inainte de apelare se re-citeste de pe suportul memorizat (HDD,CD,Flash). Ulterior redactorul verifica catalogul curent - daca catalogul curent difera de eel al fisierului, apare urmatoarea fereastra (fig. 3.3):

D. MATLAB Editor :

• 0

Ii\ '-UI

File D: \T ernpunatlabu om is not found in the current directory or on the MA TLAB path 0

To run this file I select one of the following ------, r. Change MA TLAB current directory

r Add directory to the top of the MA TLAB path

r Add directory to the bottom of the MA TLAB path

I ::::::::¢.K::::::: I Cancel I

Fig. 3.3. Fereastra de schimbare a Curent Directory.

In care MA TLAB propune :

1) sa schimbe catalogul curent pe eel, In care se afla programul

76

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

2) catalogul curent sa adauge ca primul In lista de cautare a fisierelor din MA TLAB

3) catalogul curent sa adauge ca ultimul In lista de cautare a fisierelor din MA TLAB

Pentru a executa programul In intregime trebuie de ales In meniul Debug->Run sau de apasat <F5>.

Pentru executarea a unei parti este nevoie de a evidcntia operatorii necesari pentru executare (cu ajutorul mausului apasand tasta din stanga, sau cu ajutorul tastei <Shift> si cu tastele <i>, <I>, <Page-Up>, <Page-Down» si de ales In meniul Text->Evaluate Selection sau de apasat <F9>. Operatorii evidentiati se indeplinesc consecutiv, ca si cum ei ar fi culesi In randul de comanda.

Dupa ce programa din redactorul intern e pastrata In M - file, de exemplu In myprog.m, pentru a 0 porni din randul de comanda este nevoie de cules numele a Mvfisierului (lara extensie) si de apasat Enter, adica de indeplinit ca 0 comanda MAT LAB (se va indeplini doar daca e setat catalogul curent).

File-functiile se deosebesc de file-programe prin aceea ca ele pot avea argumente de intrare si de iesire, dar toate variabilele cuprinse In file- functie, sunt locale si nu se vad In mediu de lucru. Mfisierul, care contine 0 file- functie, trebuie sa se inceapa cu un titlu, dupa care se inscriu operatorii MATLAB. Titlul consta din cuvantul

junction, lista argumentelor de iesire, numele file- functiei si lista argumentelor de intrare:

function argument _ de _ie~ire=Nume Juncfie(arg_ de _intrare)

Vectorul argumentelor de intrare (se separa prin spatiu sau virgule) :

function argument _ de _ie~ire= Nume _ functiei. argument _ de _intrare1 , argument _ de _intrare2, .. .)

Analogic, vectorul argumentelor de iesire (se separa prin spatiu sau virgule):

function [argument _ de _ie~irel argument _ de _ie~ire2 .. .] =Nume _ functieu argument _ de _intrare)

77

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

I

Tineti minte:

, ,

Toate functiile se pastreaza In Msfisiere cu acelasi nume.

IE~~~:~~~.2. File-functia mysum

Intotdeauna pastrati file- functia In M - fisier numele caruia coincide cu numele file- functiei. Va convingeti, ca catalogul cu fisierul dumneavoastra (In cazul dat mysum.m) este curent si chemati functia mysum din randul de comanda:

I» s=mysum(2,3) s=5

Observati, ca operatorul c=a+b; In file-functia mysum are la sfarsit ," pentru a opri aparitia variabilei locale c In fereastra de comanda,

Practic toate functiile pachetului MAT LAB sunt file- functii ~i se pastreaza In M - fisiere cu acelasi nume. Functia sin poate fi chemata prin doua variante: sin(x) si y=sin(x), In primul caz rezultatul se inscrie In ans, In al doilea - in variabila y. Functia noastra mysum se comporta la fcl, Ba mai mult, In calitate de argumente de intrare pot fi masive de dimensiuni egale sau masiv si numar,

A sti sa scrii file- functii si file-programe proprii este necesar cum la programare In MAT LAB , la fel si la rezolvarea diferitor probleme cu mijloacele MAT LAB (In particular, cautarea radacinilor ecuatiilor, integrarea, optimizarea). Sa precautam un exemplu legat

de construirea graficului functiei f(x) = e-X (sinx + O.lsin(lOOnx)) pe segmentul [0,1]. Programati file- functia myfun pentru calculul functiei f (x). Apelati functia myfun In dependenta de valorile vectorului x ca argument si sa obtineti vectorul valorilor respective ale functiei.

,

78

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Exemplu 3.3. Fail-functia myfun

myfun.m

function y=myfun(x);

y=exp( -x). *(sin(x)+O.l *sin(1 OO*pi *x»;

Graficul functiei f(x) poate fi obtinut pnn doua metode.

Prima metoda consta in:

1) a crea vectorul valorilor argumentului, fie cu pasul 0.01

2) crearea vectorului valorilor functiei

3) chemarea functiei plot

I» x=[O:O.Ol:l]; » y=myfun(x); » plot(x,y)

In rezultat obtinem graficul, prezentat in figura 3.4 a, care nu este corect.

0.35 __ --------- __

0.2

0.4

0.6

0.8

-0.10....,_-0 .... 2----'0 ..... 4 --0".6--0.8---'

a) b)

Fig. 3.4. Graficul obtinut cuplot (a) ~ifplot (b)

Intr-adevar la calculul valorilor functiei pe segmentul [0,1] cu pasul 0.01 termenul sin(100JZX) tot timpul era 0 si plot a construit nu

graficul functiei f(x) , dar al altei functii, Alegerea pasului tara a analiza functia duce la pierderea informatiei esentiale despre comportarea functiei. In MA TLAB exista functia fplot - un analog la plot, dar cu alegerea automata a pasului pentru construirea graficului. Primul argument in fplot este numele file- functiei, iar al doilea este

79

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

vectorul, elementele caruia sunt marginile segmentelor: fplot('numele file-functiei', [a bJ). Construiti acum intr-o fereastra noua graficul functiei I(x) cu ajutorulfplot:

I »figure

» fplotCmyfun',[O,l])

S-a primit graficul care reda exact comportarea functiei (fig. 3.4, b)).

Nu este greu de construit graficul unei functii parametrice. Fie

ca trebuie de construit graficul isteroidei x(t) = cos ' t, yet) = sin 3 t , t E [0,2Jr]. Trebuie de determinat vectorul t, apoi valorile lui x(t), yet) de Ie introdus in vectorii x si y si de folosit plot:

» t=[0:pi/20:2*pi]; » x=cos(t):'\3;

» y=sin(t)/\3;

» plot(x,y)

Functia comet ne da posibilitatea de a urmari miscarea punctului pe traiectorie. Viteza miscarii poate fi schimbata, schimband pasullui t.

Analogul 3-D a lui plot este functia plot3. Daca x, y si z sunt trei vectori de aceeasi lungime, plot3(x,y,z) genereaza 0 linie 3-D prin punctele cu coordonatele x, y, si z si apoi produce 0 proiectie 2- D a acestei linii pe ecran. De exemplu, comenzile de mai jos creeaza o elice

» t = 0:pi/50: 10*pi;

» plot3(sin(t),cos(t),t) » axis square; grid on

Analogul 3-D a lui comet este comet3. Ea descrie miscarea punctului ca 0 "cometa" pe traiectoria in spatiu, determinata de punctele [X(i),Y(i),Z(i)]. Aceasta functie are urrnatoarea sintaxa comet3 (X, y, Z)

80

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Sarcina Lucrarll nr. 3

I. De seris file- functia ~i de eonstruit grafieele pe segmentul dat eu ajutorul plot (eu pasul 0.05) ~ijjJlot pentru functia:

Varian- Funetia Segmentul
ta ,
1 j (x) = e3x sin5m- + e3 x cos5m- x E [0,1]
10 x E [O.OS,l]
2 f(x) = 11-10 sin 21m:
3 ! Isin 21nxl x E [0,1]
j(x) = ~ 2 + sin 20nx
f(x) = 1
4 arctg(l/(I.1 + sin 51lX)) -X x E [0,1]
5 f(x) = cos[ 2 1 x 1 x E [0,1]
TI - arctg x
6 j(x) ~ sin (6Jrlx - ~ Ix3) x E [0,1]
j(x) ~ sin 2Jr~Jl- x3 - i
7 x E [0,1]
8 f ( x ) = 3 sin _!_ , xE[0.05,1]
x
9 f(x) = 21sin20Jrxi x E [0,1]
2
10 f(x)= X E [-1,1]
sin ( e2x - e -x) + cos ( e2x _ e -x) 81

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

11 f(x) = 2 sin-l XE[0.05,1]
2x
12 f (X) = 2x sin Gn:x + e2xcos67rx x E [0,1]
13 f(x) = 12 xE[0.05,1]

14 -12sin 21Jrx

14 I Isin 23Jrxi x E [0,1]
f(X)=3
~ 3 + sin 21Jrx
/ 'I
f(x) = sin 2 1 x E [0,1]
15
Jr 2x
--arctgx
'- 11 /
f(x)= 1
16 1 x E [0,1]
arcctg
1.2 + sin Tn:x
17 f ( x) = 2 sin ( 7 7r X - ~ x' J x E [0,1]
18 f (x) = 31sin 30Jrxi + X2 x E [0,1]
f(x) = cos 3 5 x E [0,1]
19
Jr 5
--arctgx
'- 11 /
20 f (x) = 3excos77rx + 3excos77rx x E [0,1]
21 f ( x) = 3 cos ( 7 7r x' - ~ x' J x E [0,1] 82

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

22 f(x) = 5sin(10Jrx2 +2cosJrx) x E [0,1]
23 f (x) = 3 sin (Jrx + 1 OOJrx2) X E [0,1]

24 I Isin 25Jrxl x E [0,1]
f(x) - 5
- ~ 2 + cos 23Jrx
25 f(x) = 13 x E [0,1]
15 -11 sin 50Jrx
26 f (x) = 2exsin77rx + 3excos77rx x E [0,1]
27 f (x) = 51cos 30Jrxi + Xl/3 x E [0,1]
28 f(x) = (sin50Jrxf/3 +X1/2 x E [0,1]
I Isin 30Jrxi x E [0,1]
29 f(x) = 5
~ 2 + sin 25Jrx

30 f ( x ) = sin 4Jr ~IX3 - arctge" I x E [0,1] 83

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

II. De scris file- functia xy(t) si file- functia, la care parametrii de intrare sunt valoarea pasului si numarul figurii. De construit graficul traiectoriei plane a punctului material cu ajutorul lui plot pentru diferite valori ale pasului. De construit graficul cu ajutorullui comet.

Varianta x(t),y(t) t
x (t) = t - sin t . [0, 4Jr]
1 ,
yet) = 1- cost
x (t) = 2 sin t - I sin 2t
2 3 . [0, 3Jr]
,
yet) = 2 cost -; cos 2t
x(t) = 9 sin l: -1 sin .2_ t
3 10 2 10· [0, 4Jr]
,
yet) = 9 cos _1 t + 1 cos _2_t
10 2 10
x(t) = cos t . [0,4Jr]
4 ,
y (t) = sine sin t)
-t
5 x(t) = e cos t . [0, 2Jr ]
,
yet) = sin t
-t
x(t) = e cos t . [0, 2Jr]
6 ,
yet) = et sin t
x (t) = t (t - 2Jl) . [0, 4Jr]
7 ,
yet) = sin t
8 x ( t ) = t2 - 2 cos t ; [0,5Jr]
y ( t ) = 1- sin t
3
x (t ) = 2 cos t + - cos 2t ;
9 2 [0, 4Jr]
Y ( t ) = 2 sin t + ~ sin 2t
2 84

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

10 X ( t ) = 2e -t sin t [0,4JZ"]
y ( t ) = 3e -t cos t
11 x(t) = 3sint [0,4JZ"]
y ( t ) = 2 cos ( sin t)
12 x ( t ) = e' cos t [0, 3JZ" ]
y(t) = 3sin( cost)
13 x ( t ) = t (1 - sin t) [0,4JZ"]
y ( t ) = 2 - cos t
14 x ( t ) = te -t sin t [0,4JZ"]
y (t ) = 1- cos t
15 x ( t ) = 2t cos ( arctgt ) [0,4JZ"]
y ( t ) = 3 sin t2
16 x ( t ) = t + sin 2t [0, 2JZ" ]
y(t) = 2e-t cost
17 x ( t ) = 2 cos ( t + 1 ) [0, 2JZ" ]
Y ( t ) = 3 sin 2t + t
18 x(t) = 3e-t cos(2t) [0, 2JZ" ]
Y ( t ) = 2 sin 2 t
19 x ( t ) = 2In ( t + 1) sin t [0, 3JZ" ]
y(t) = 3cost
20 x(t) = t(l+cost) [0, 2JZ" ]
Y ( t ) = 2t ( 1 + sin t)
21 x ( t ) = e' sin 2t [0, JZ" ]
Y ( t ) = t ( 1 + cos t) 85

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

22 x (t ) = 2 sin ( cos t) ; [0, 7r]
y(t) = t cost"
2
x ( t ) = cos 2t ; [0, 7r]
23 t+O.1
y (t) = (t + 1 )112 sin t
24 x ( t ) = (t2 + 1 ) sin 2t ; [0, 27r ]
y(t) = tcost
25 x (t ) = t sin t + cos t ; [0, 27r]
y(t) = cos2t
26 x ( t ) = 2 cos ( sin t) ; [0, 27r]
Y ( t ) = 3 sin ( t -1 )
27 x (t) = t (1- cos 2t) ; [0, 37r]
Y ( t ) = t sin 2t
28 x(t) = 2sint+1.3sin2t; [0, 37r]
y(t) = tcos2t
29 x ( t ) = 3 sin ( arccos t) ; [0, 47r]
y(t) = 2sint
30 x ( t ) = t cos 2t ; [0, 27r]
Y ( t ) = sin t + In ( t + 1 ) 86

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

III. De scris file- functia xyz(t) si file- functia, la care parametrii de intrare sunt valoarea pasului si numarul figurii. De construit graficul traiectoriei spatiale a punctului material cu ajutorul lui plot3 pentru diferite valori ale pasului. De construit graficul cu ajutorul lui comet3.

Varianta x(t); yet); z(t) t
1 x(t) = t(t - 2Jr) ; yet) = sint; [0, 4Jr]
z(t) = 2t
2 x(t) = e' cost; yet) = et sint; [0, 2Jr]
z(t) = 1.5t
3 x( t) = e -t cos t ; yet) = sin t ; [0, 4Jr]
z(t) = 1.2t1.3
() 9. t 1.9
x t = Sln---Sln-t·
4 10 2 1O' [0, 3Jr]
1 1 9
yet) = 9cos-t+-cos-t; z(t) = 1.5{2
10 2 10
5 x(t) = et cost; yet) = «' sin t ; [0, 2Jr]
z(t) = 2t1/2
6 x(t) = cost; yet) = sin(sin t) ; [0, 4Jr]
z(t) = 2t1/3
7 x(t) = t - sin t ; yet) = sint; [0, 3Jr]
z(t) = 1.2{5
8 x ( t ) = t cos 2t ; Y ( t ) = sin t + In ( t + 1) ; [0, 2Jr]
z(t) = 2t
9 x ( t ) = 3 sin ( arccos t) ; y ( t ) = 2 sin t ; [0, 4Jr]
Z (t ) = 1.4t1/3 87

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

10 x ( t ) = 2 sin t + 1.3 sin 2t; y ( t ) = t cos 2t ; [0, 3Jr]
z(t) = 1.2t2
11 x (t ) = t (1- cos 2t ); y ( t ) = t sin 2t ; [0, 3Jr]
z(t) = 1.3t
12 x (t ) = 2 cos ( sin t); y ( t ) = 3 sin ( t -1) ; [0, 2Jr]
z(t) = t1/2
13 x (t ) = t sin t + cos t; Y ( t ) = cos 2t ; [0, 2Jr]
z(t) = 2t1/3
14 x (t ) = (t2 + 1) sin 2t; y ( t ) = t cos t ; [0, 2Jr]
z (t) = 1, 5t
x(t)= 2 cos2t; y(t)=(t+1)1/2sint;
[0, Jr]
15 t+O.1
z(t)=2Ji
16 x ( t ) = 2 sin ( cos t); y ( t ) = t cos t2 ; [0, Jr]
z(t) = 3t
17 x ( t ) = et sin 2t; y ( t ) = t (1 + cos t) ; [0, Jr]
z(t) = 1.3t1/2
18 x (t ) = t (1 + cos t); y ( t ) = 2t (1 + sin t) ; [0, 2Jr]
z (t) = 2t1.3
19 x (t ) = t2 - 2 cos t; Y (t ) = 1- sin t ; [0,5Jr]
z(t)=1.5t
3
x (t ) = 2 cos t + - cos 2t ;
20 2 [0, 4Jr]
y(t)=2sint+~sin2t; z(t)=1.4t2/3
2 88

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

21 x ( t ) = 2e -t sin t; Y ( t ) = 3e -t cos t ; [0,4JZ"]
z(t) = 3t1/3
22 x ( t ) = 3 sin t; Y ( t ) = 2 cos ( sin t) ; [0,4JZ"]
z(t)=1.7t3/2
23 x (t ) = et cos t; Y ( t ) = 3 sin ( cos t) ; [0, 3JZ" ]
z(t) = t3/4
24 x (t ) = t (1- sin t); y ( t ) = 2 - cos t ; [0,4JZ"]
z(t) = 1.6t2/5
25 x ( t ) = te -t sin t; Y ( t ) = 1- cos t ; [0,4JZ"]
z(t) = 1.3t2
26 x (t ) = 2t cos ( arctgt ); y ( t ) = 3 sin t2 ; [0,4JZ"]
z(t) = 1.5t3/5
27 x ( t ) = t + sin 2t; y ( t ) = 2e -t cos t ; [0, 2JZ" ]
z(t) = 2t5/3
28 x (t ) = 2 cos ( t + 1); y (t ) = 3 sin 2t + t ; [0, 2JZ" ]
z(t) = 3{7
29 x (t ) = 3e -t cos ( 2t ); y (t ) = 2 sin 2 t ; [0, 2JZ" ]
Z (t ) = 2.1t4/3
30 x ( t ) = 21n ( t + 1) sin t ; Y ( t ) = 3 cos t ; [0, 3JZ" ]
z(t)=1.7t3/2 89

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Lucrarea nr. 4. Studiul oscilatiilor fortate ale unui

, ,

corp in prezenta fortei de rezlstenta

4.1. Integrarea numerica

4.1.1. Integrale definite ordinare

Integrarea numerica este una din aplicarile cele mai importante ale pachetului MATLAB. Integrarea numerica inseamna a calcula aproximativ integrala:

b

J y(x)dx,

a

aplicand una din metodele numerice, care sunt multe la numar, Vom aplica metoda cuadraturilor, care permite de a calcula integrale simple si duble prin metoda lui Simpson sau metoda lui GaussLobatto. Cuadratura reprezinta 0 metoda nurnerica de a determina suprafata sub graficul functiei y(x), adica integrala definita de mai sus.

Functia quad utilizeaza metoda lui Simpson si poate fi mai efectiva cand functiile de sub integrala nu sunt line sau cand precizia calcului, care se cere, este joasa, In MATLAB6 precizia a fost ridicata pana la 10-6. Functia quadl (cuadratura Lo batto) utilizeaza regula adaptiva a cuadraturii Gauss-Lobatto de ordin foarte inalt,

In formulele de mai jos expresia de sub integral fun de obicei se da in forma de functie descriptor, de aceia in scopuri didactice se noteaza prin @fun.

• quad(@fun,a,b) - reda valoarea numerica a integralei definite de la functia data @fun pe segmentul [a,b]

• quad(@fun,a,b,ta/) - reda valoarea numerica a integralei definite cu precizia relativa tal (valoarea implicita tal=l.e-6). Se poate de folosit un vector, compus din doua elemente tal=[rel_tal abs _tal] pentru a determina greseala relativa si absoluta,

90

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

• quad(@fun,a,b,tol,trace) reda valoarea numerica a

integralei definite si la valoarea trace ne egala cu zero, construieste un grafic, care arata mersul calcului integralei.

Exemplul 4.1. 1

De calculat f (eX -l)dx cu precizia 10-5. Culegem in randul de o

comanda:

» quad('( exp(x)-l)' ,0,1, l.e-5) ans=

0.7183

2

De calculat f eX dx cu precizia 10-4. Expresia exp(x) este o

functie descriptor, de acea putem scrie:

» q=quad(@exp,0,2,1.e-4) q=

6.3891

» q=quad(@sin,0,pi,1.e-3) q=

2.0000

Se poate de format si file- functiile respective ~i de le inclus in loc de @fun (vezi exemplu in paragraful urmator),

91

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

4.1.2. Integrale definite duble

Fie di trebuie de calculat integrala definita dubla

21f21f

f f[2ysin(x) + x Jixdy.

2cos(y)

o 1f

• dblquad(@fun,inmin,inmax,outmin,outmax) - calculeaza si reda valoarea integralei duble pentru functia de sub integral fun (inner, outer). Implicit se utilizeaza cuadratura quando Aici inner este variabila interioara, care variaza de la inmin pana la inmax, iar outer - variabila exterioara, care variaza de la outmin pana la outmax. Primul argument este un rand, care descrie functia de sub integrala. Inscrierea in apostrofe acum este inadmisibila,

ExempluI4.2.

Sa alcatuim mai intai file- functia integr 1.m care descrie functia:

,

integrl.m

function y=integr1(x,y);

y= 2*y. * sin(x)+x.l(2*cos(y));

Atunci calculul integralei duble de mai sus poate fi efectuat in felul urmator:

> > result=dblquad(@integr1 ,pi,2 *pi,O,2 *pi) result=

-78.9574

92

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

4.2. Rezolvarea ecuatiilor diferentiale

, ,

Pentru rezolvarea sistemelor de ecuatii diferentiale obisnuite (EDO) in MATLAB exista diferite metode. Ele se numesc rezolvatori de EDO (solver - rezolvator):

• ode45 - 0 metoda clasica, care se recomanda la inceputul incercarii rezolvarii.

• ode23 - cand precizia care se cere e j oasa, aceasta metoda da avantaj in viteza de rezolvare.

• odel13 - asigura 0 precizie inalta a rezolvarii,

• ode23tb - necatand la precizia joasa, aceasta metoda poate fi mai efectiva decat ode15s.

• ode15s - se recomanda, daca ode45 nu asigura rezolvarea.

• ode23s - asigura 0 viteza inalta a calculului la 0 precizie joasa a solutiei,

• ode23t - metoda trapezelor cu interpolare, obtine rezultate bune la rezolvarea problemelor care descriu sisteme oscilatorii cu rezultat aproape armonic.

Toti rezolvatorii pot rezolva sisteme de ecuatii de tipul y'=F(t,y). Rezolvatorii ode15s si ode23t pot rezolva ecuatii de tipul M(t)y'=F(t,y), unde M se numeste matricea de masa, Rezolvatorii ode15s, ode23s, ode23t si ode23tb pot rezolva ecuatii de tipul M(t,y)y' = F(t,y).

La aplicarea rezolvatorilor se folosesc urmatoarele notari si reguli:

o F - numele fisierului EDO, adica a functiei de t si y, care reda un vector-coloana,

o tspan -vector, care determina intervalul de integrare [to

tjinal].

o yo - vectorul conditiilor initiale;

o pi, p2, ... - parametri arbitrari care se transmit in functia F;

o options - argument creat de functia odeset, de obicei pentru a determina greseala relativa si absoluta;

93

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

o T, Y - matricea solutiilor, unde fiecare rand corespunde timpului redat In vectorul-coloana T;

Descriem comenzile pentru a rezolva sisteme de ecuatii diferentiale (vom nota prin solver una din metodele numerice posibile de rezolvare a EDO - ode45; ode23; odell3, odel5s, ode23s; ode23t; ode23tb) :

o [T, YJ=so/ver(@F,tspan,yO) - unde In loc de solver se pune numele functiei rezolvatorului concret, integreaza sistemul de ecuatii diferentiale de tipul y'=F(t,y) pe intervalul tspan cu conditiile initiale yO. @F - este descriptorul fisierului EDO. Se poate de scris 'F' - randul care contine numele fisierului EDO. Fiecare rand In masivul de solutii Y corespunde timpului redat In vectorul-coloana T.

o [T, YJ=so/ver(@F,tspan,yO,options) - reda solutie ca si mai sus, dar cu parametrii determinati de valorile argumentului options adica precizia relativa si absoluta respectiva, Implicit componentele sunt egale cu le-6.

o [T, YJ=so/ver(@F,tspan,yO,options,pl,p2 .. .) - reda solutio ca mai sus cu parametri suplimentari pl, p2, ... In m-failul F. Folositi optins=[J, daca nici un fel de parametri nu se dau.

Exemplul 4.3.

Trebuie de rezolvat ecuatia lui Van-der-Pol: y"= 1 000(l-y2)y'-y pe intervalul (In secunde) t=[O 3000J cu conditiile initiale y(O)=2, y'(O)=O. Transcriem ecuatia ca un sistem de doua ecuatii difercntialc, notand y = Yl:

y'l = Y2;

y'2 = lOOO*(1-Y12)*Y2-Yl.

Inainte de rezolvare trebuie de scris sistemul de ecuatii

,

diferentiale In forma de file-functie EDO.

, ,

94

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

vdplOOO.m

function dydt = vdp 1 OOO( t,y)

dydt = zeros(2, 1); %a column vector dydt( 1) = y(2);

dydt(2) = 1 OOO*(1-y(1 )/\2)*y(2)-y(1);

Solutia cu rezolvatorul ode15s si graficul corespunzator pot fi obtinute, aplicand comenzile urmatoare:

»[t,y] = ode15s(@vdpl000,[0 3000],[2; 0]); plot( t,y(:, 1),' -');

titlef'Solution of Van der Pol Equation, \mu = 1000'); xlabel('time t');

ylabelr'solution y_ 1 ');

In rezultat obtinem graficul, prezentat in figura 4.1,a).

0.5

~ 0

o

~ .{).5

'"

-1

-1.5

-2

-2.50~-5~00=--~10'!"='00----:1~50'="'"0 ~20'!"='00~2~50'="'"0 ~300'

timet

Solution of Van der Pol Equation. f' = 1

3~-- __ ---- __ ---- __ --~

'" t:

il 0

.2 I

iil \

,

-1 \

\ ,

-2 'I

"

~O~--~5----~1~0----~15----~20 timet

a) b)

Figura 4.1. Graficul functiei pentru Jl = 1000 ( a), si Jl = 1 (b)

Pentru a construi y 1 si y2 putem aplica comenzile (pentru alt coeficient mu sau = 1 :

vdpl.m

function dydt = vdpl(t,y)

dydt = zeros(2, 1); %a column vector

dydt( 1) = y(2); d dt 2 = 1 * 1- 1 /\2 * 2-

95

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Solutia cu rezolvatorul ode45 si graficul corespunzator pot fi obtinute, aplicand comenzile urmatoare:

»[t,y] = ode45(@vdpl,[0 20],[2; 0]); plot(t,y(:, 1 ),'-' ,t,y( :,2),' __ I)

title(,Solution of Van der Pol Equation, \mu = 1 I); xlabel('time t');

ylabel(,solution y');

Obtinem figura 4.1, b) cu graficeley = Yl ~iY'l = Y2.

In caz general solutia se reduce la urmatoarele:

1). Crearea file- functiei. Independent de aspectul sistemului de ecuatii el are forma:

,

function dy = solverDE(t,y)

dy(1) = f1(t, y(1), y(2), , y(n));

dy(2) = £2(t, y(I), y(2), , y(n));

solverDE.m

dy(n) = fn(t, y(1), y(2), ... , y(n));

2). Obtinerea solutiei si a graficului insotitor:

» [T,Y] = solver(,solverDE', [to tfinal], [yl0 y20 ... ynO]); » plot(T,Y)

Vor fi construite graficele yl, y2, ... ,yn ca functii de t).

In rezultat obtinem graficele, care pot fi insemnate cu denumiri Numel, Nume2, ... ,NumeN. Aceasta e po sibil in doua metode - manuala si automata.

La scrierea manuala mai intai se aplica comanda gtext, dupa ce se indica locul potrivit al graficului pentru text - cu ajutorul mausului se apasa cu tasta din stanga al mausului:

I »hold on; gtext(,yl '),gtext(,y2'), ... ,gtext(,yn'),

96

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pentru a automatiza, selectam un punct oarecare de pe grafic, adica perechea de coordonate t si y, si scriem cu functia text:

% perechea 110 % erechea 83

Pentru exemplul 4.3 de mai sus avem urmatoarele rezultate (fig. 4.2):

Solution of Van der Pol Equation, ~ = 1000

-2

~O~----5----~10-----1-5-----20 timet

a) manuala - functia gtext

Solution of Van der Pol Equation, ~ = 1

>t:

g 0 .:! I

5l \

,

-1 \

\ ,

-2 'I 'I

~O~-----5------1-0-----15----~20 timet

b) automata - functia text

Figura 4.2. Scrierea denumirilor graficelor

(Problema 32.1 din [6]):

4.3. Studiul oscilatiilor libere

,

Arcul AB este suspendat de un capat allui in punctul A (vezi fig. 4.3). Pentru alungirea lui cu 111 = 1m trebuie sa aplicam in punctul B 0 sarcina statica P = 19,6 N. La un moment dat de capatul B al arcului ne deformat se suspendeaza un corp C cu masa M = 0,1 kg si i se da drumul rara vitcza initiala, Neglijand masa arcului, sa se determine ecuatia cinematica a miscarii corpului (legea miscarii) fata de axa x dusa vertical in jos din pozitia de echilibru static al corpului.

97

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Rezolvare. Fie 10 - lungimea arcului nedeformat, 8st - deformatia statica a arcului, cand corpul se afla In pozitia de echilibru static. Alegem originea 0 a axei x In aceasta pozitie a corpului (punctul 0 coincide cu centrul maselor corpului, cand x este egal cu zero) si indreptam axa vertical In jos. Alegerea originii axei x In punctul 0 este comoda fiindca fata de acest punct oscilatiile corpului (deplasarile x) vor fi simetrice: deplasarea maximala In jos va fi egala cu deplasarea maximala In sus. Fie x - deformatia suplimentara a arcului cand corpul efectueaza 0 deplasare arbitrara de la pozitia de echilibru. In aceasta pozitie asupra corpului actioneaza doua forte: forta de

- -

greutate G ~i forta elastica F . Scriem

ecuatia diferentiala a miscarii de translatie a corpului In proiectie pe axa de coordonate x:

Mi = o, v r.,

unde,

o

c

Figura 4.3.

(1)

(2)

Aici g este acceleratia caderii libere, c este coeficientul de elasticitate a arcului, ( x + s; ) este deformatia totala a arcului.

Introducem (2) In (1) si obtinem:

(3)

Pentru a determina coeficientul c egalam forta elastica dupa marime cu forta statica P:

,

P = c~1 => c = P I ~I => c =19,6Nllm = 19,6 N/m. (4)

98

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Pentru a determina 8st seriem ecuatia (3) pentru pozitia de eehilibru a eorpului, cand x = 0, x = 0, x = 0 :

0= Mg - c8st ~ 8st = Mg / c. (5)

Ultima relatie ne permite sa redueem In ecuatia (3) Mg eu c8st' dupa ee obtinem Mx+cx=O.

(6)

Aeeasta este ecuatia diferentiala In forma generala pentru oscilatiile lib ere unidimensionale ale unui punet material sau corp. Daca ea origine a axei x ar fi luat un alt punet pe verticala, de exemplu °1, atunei ecuatia diferentiala (6) ar deveni mai complicata.

Urmeaza etapa matematica de rezolvare a aeestei ecuatii difercntialc. Impartim (6) la M ~i notam (c / M) = k2 • Obtinem

.. k2 0

x+ X= .

(7)

Aeeasta este forma matematica a ecuatiei (6), care se numeste ecuatie difercntiala liniara, omogena de ordinul doi eu coeficienti constanti, Solutia poate fi obtinuta In trei forme.

L Forma complexii. Cautam solutia In forma x = est.

Introdueem aceasta expresie In (7), simplificam la est si obtinem ecuatia caracteristica pentru ecuatia diferentiala (7)

S2 + k2 = 0, (8)

radacinile careia sunt imaginare Sl = ik si S2 = =ik . Solutia generala a ecuatiei (7) va fi

(9)

unde c1 si c2 sunt eonstante arbitrare de integrare. Ele se determina din conditiile initiale. Deplasarea x trebuie sa fie reala,

IL Forma realii. Aplicam In (9) formulele lui Euler

e±ikt =eoskt+isinkt (10)

~i introdueem eonstante noi de integrare

(c1 + c2) = c;; i(c1 - c2) = c; . (11)

99

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

Obtinem solutia In forma

, ,

, k ,. k

x = c1 cos t + C2 SIn t.

(12)

Constantele noi c; ~i c; se determina la fel din conditiile initiale, dar toate marimile In (12) sunt reale.

IlL Forma comodii In apliciirile tehnice. In loc de c; ~l c; introducem alte constante de integrare a si a:

,. ,

C1 = aSlna, C2 = acosa,

~i obtinem x=asin(kt+a).

sub

Oscilatiile, care au loc

actiunea fortei de ~

t: to ~ II

~

elasticitate se numesc oscilatii

,

libere. F orta de greutate G determina numai pozitia de echilibru fata de care au loc

,

oscilatiile ~l perioada oscilatiilor, Noi vedem, ca corpul se misca dupa Zegea sinusoidaZii. Astfel de oscilatii

,

(13)

(14)

Figura 4.4.

. .

se mal numesc armontce.

Constantele a si a la fel se determina din conditiile initiale,

dar ele au sens fizic: a este amplitudinea oscilatiilor, (kt + a) este

faza oscilatiilor, a este faza initiala, k este frccventa circulara, k = 2Jr / T, unde Teste perioada oscilatiilor, T = 2Jr.J M / c si nu depinde de conditiile initiale, In cazul nostru k = 14s-1 •

Deplasarea x a corpului desfasurata In timp (graficul oscilatiilor) reprezinta In cazul general 0 sinusoida (fig. 4.4).

Din conditiile: cand t = 0, Xo = -8st = -5cm, Xo = 0, obtinem

- 8st = a sin a, 0 = ak cos a ,

(15)

100

Lucrari de laborator la Mecanica realizate in MATLAB. 1. Balmus, A. Casian, V. Mihailov

de unde rezulta: a = t5st = 0, 05m ,

3Jr a=- ~1 2

x = -0,05cos14tm.

(16)

4.4. lnfluenta rezistentei asupra oscllatlllor libere. Oscilatii amortizate

,

Problema 32.53 din [6].

o placa cu masa de 100 g, suspendata de arcul AB in punctul fix A, se misca intrc polii unui magnet. Din cauza curentilor turbionari rmscarea este franata de 0 forta, proportionala cu viteza. Forta de rczistenta opus a miscarii este

egala cu qv<I>2N, unde q = 0,001,

v - viteza in mis, <I> - fluxul magnetic dintre polii N si s. In momentul initial viteza placii

este egala cu zero si arcul nu este Figura 4.5.

intins, Alungirea arcului cu 1 m

are loc la actiunea statica a unei forte de 19,6 N, aplicate in punctul

B. Sa se determine miscarea placii in cazul, cand <I> = 10 .J5 Vb (Veber este unitate de masura a fluxului magnetic in SI).

II

Rezolvare.

Placa efectueaza miscare de translatie, toate punctele ei se misca la fcl, Consideram acum punctul B - punctul placii conectat de arc.

--+

Asupra lui actioneaza trei forte: forta de greutate G = Mg', forta

--+ --+--+

elastica F si forta de rezistenta R. F orta R este orientata opus

vitezei. R = -q<I>2v = -bv, b = q<I>2 am notat coeficientul de

101