Sunteți pe pagina 1din 8

ef lucr.dr.ing.

Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

1/8

Laborator nr. 1. QtOctave Prezentare general


1.1. Expresii : La fel ca i celelalte limbaje de programare, OCTAVE lucreaz cu expresii matematice, dar spre deosebire de majoritatea limbajelor, aceste expresii implic la scar larg lucrul cu matrici, le fel ca i n MatLab. n cadrul unei expresii putem ntlni: variabile, numere (constante), operatori i funcii. Variabile: n toate limbajele de programare variabilele sunt caracterizate de trei elemente: nume (identificator), tip i valoare. Limbajul OCTAVE nu necesit declararea dimensiunii variabilelor, deoarece la ntlnirea unui nou nume de variabil se genereaz automat variabila respectiv i se aloc spaiul necesar de memorie. Numele unei variabile ncepe cu o liter i poate continua cu litere, cifre sau simboluri. Numrul maxim de caractere care pot fi utilizate n denumirea variabilelor este de 31. Limbajul OCTAVE face distincie ntre literele mici i cele mari, adic este case sensitive. Numere: OCTAVE utilizeaz notaia zecimal, cu punct zecimal opional i cu semn + sau -. Se poate utiliza i notaia tiinific cu litera e pentru a specifica o putere a lui 10. Reprezentarea numerelor imaginare este realizat cu litera i sau j ca sufix. Operatori: Expresiile utilizeaz operatori aritmetici uzuali, cum ar fi: + (adunare), - (scdere), * (nmulire), / (mprire), \ (mprire la stnga), ^ (ridicare la o putere), ( ) (operatorul de specificare a odinii de evaluare); operatori relationali : = = (egal); ~= (diferit) ; < (mai mic); > (mai mare) ; <= (mai mic sau egal) ; >= (mai mare sau egal); operatori logici : & (i); | (sau); ~ (not); xor (or) Funcii: OCTAVE pune la dispoziia utilizatorilor i a programatorilor un mare numr de funcii matematice elementare standard (abs, sqrt, exp, sin ). Cele mai uzuale funcii sunt: funcii trigonometrice: sin sinus, asin arcsinus, cos cosinus, acos arccosinus, tan tangent, atan arctangent, cot cotangent, acot arccotangent, sec secant, asec arcsecant, csc cosecant, acsc arccosecant; funcii putere: exp funcia exponenial, log logaritm natural, log2 logaritm n baza 2, log10 logaritm n baza 10, sqrt funcia radical; alte funcii: abs valoarea absolut (modul), min minimum, max maximum.

Alte funcii sunt implementate ca fiiere OCTAVE (M-files) i pot fi chiar modificate. O serie de funcii furnizeaz valorile unor constante speciale: pi (3.14159265), i i j unitate imaginar, eps - precizia relativ n virgul mobil (2-52), realmin - cel mai mic numr n virgul mobil (2-1022), realmax - cel mai mare numr n virgul mobil, (21023), Inf infinit, NaN (Not-a-Number) - nu este numr. 1.2. Formatul datelor: n OCTAVE afiarea valorilor se realizeaz implicit cu 3 zecimale, ns aceast setare se poate modifica cu ajutorul comenzii format: Toate calculele n OCTAVE sunt efectuate n dubl precizie. Comanda FORMAT se poate utiliza pentru a comuta ntre diferite formate de afiare a datelor de ieire : >>> format - formatul implicit (SHORT) >>> format short - reprezentare n virgul fix cu 5 cifre >>> format long - reprezentare n virgul fix cu 15 cifre >>> format short e reprezentare n virgul mobil cu 5 cifre >>> format long e reprezentare n virgul mobil cu 15 cifre >>> format short g - cea mai bun dintre reprezentrile n virgul fix i mobil cu 5 cifre >>> format long g - cea mai bun dintre reprezentrile n virgul fix i mobil cu 15 cifre >>> format hex - reprezentare n hexazecimal >>> format + - Simbolurile +, - i blank sunt utilizate pentru elemente pozitive, negative i nule; partea imaginar este ignorat >>> format bank - reprezentare pentru simboluri valutare (dolari i ceni) >>> format rat - aproximare printr-o fracie a unui ntreg Spaierea: >>> format compact suprim trecerea la linie nou suplimentar >>> format loose - revine la introducerea unei linii suplimentare Exemple: >>> c = 0.123456789012 >>> c c = 0.12346 >>> format long, c c = 0.123456789012000 >>> format short e, c c = 1.2346e-001 >>> format long e, c c = 1.23456789012000e-001 >>> format, c c = 0.12346

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

2/8

1.3. Comenzi de editare: Cu ajutorul tastelor cu sgei pot fi realizate o serie de aciuni de editare, astfel: Sgeat sus : recheam comanda dat anterior; Sgeat jos : recheam linia de comand urmtoare; Sgeat stnga : deplasare la stnga cu un caracter; Sgeat dreapta : deplasare la dreapta cu un caracter; Ctrl + sgeat stnga : deplasare la stnga cu un cuvnt; Ctrl + sgeat dreapta : deplasare la dreapta cu un cuvnt; Home : deplasare la nceputul liniei de comand; End : deplasare la sfritul liniei de comand; Esc : abandoneaz linia de comand curent; Ins : trece ntre modurile Insert i Overtype; Backspace : terge un caracter la stnga cursorului. Dac dorii s introducei o comand (sau un text) a crei lungime depete lungimea liniei curente, inserai trei puncte pe linia curent i continuai editarea comenzii (sau a textului) pe linia urmtoare. n programe, liniile de comentariu sunt precedate fie de caracterul %, fie de caracterul #. 1.4. Sistemul de informaii ajuttoare: Pentru apelarea sistemului de informaii ajuttoare se utilizeaz comanda help urmat de numele funciei pentru care se dorete obinerea informaiilor ajuttoare. Exemple: >>> help cos sau >>> help plot 1.5. Caractere speciale n Octave Caracter: : () [] Semnificaie: Se folosete la generarea diviziunilor Folosite pentru corpul unei funcii Pentru desemnarea unei matrici/vector Indicator de operatie aritmetica element cu element Continuarea unei comenzi pe linia de comanda urmatoare Separator intre instructiuni pe aceiasi linie de comanda (cu ecou pe ecran) Separator intre instructiuni pe aceiasi linie de comanda ( fara ecou pe ecran) Se foloseste pentru a anunta comentarii in program Asignare Transpusa unei matrici Separator intre elementele aceleiasi linii intr-o matrice/vector Separator intre liniile unei matrici

b) Calculul unor expresii:

Calculul expresiei: E =

6 4 5 + ln(3) 1,250, 25

sin

+ cos

Rezolvarea n Octave / MATLAB:


>>> E=(sin(pi/6)+cos(pi/4)/(sqrt(5+log(3))-1.25^0.25) E = 0.85479

Calculul expresiei:

Rezolvarea n Octave:
>>> y = >>> y = >>> y = x=12.3; y = 6*x^3 5*x^2 + 3*x-1 1.0445e + 004 x = 1; y = 6*x^3 5*x^2 + 3*x - 1 3 x = 0; y = 6*x^3 5*x^2 + 3*x - 1 -1

y = 6 x 5 x + 3 x 1
3 2

Pt. Val. lui x: 12.3, 1, 0

Inversarea valorilor a dou variabile (varianta 1): a = 3, b = 5. Se utilizeaz o variabil ajuttoare c c = a, a = b, b = c . n final a = 5, b = 3 Inversarea valorilor a dou variabile (varianta 2): a = 3, b = 5. Se utilizeaz formulele: a = a + b, b = a b, a = a - b n final a = 5, b = 3 Calculul diametrului, ariei i volumului unei sfere de raza R: Se cunoate raza sferei (R): D=2*R A = 4 * * R2 V = 4 * * R3 / 3

Rezolvarea n Octave:
>>> a = 3; b = 5 >>> c = a, a = b, b = c c = 3, a = 5, b = 3

Rezolvarea n Octave:
>>> a = 3; b = 5 >>> a=a+b, b=ab, a=a-b a = 8, b = 3, a = 5

.
, ; % = [,] [:]

Rezolvarea n Octave:
>>> D = >>> A = >>> V = >>> ans ans >>> ans R = 10; D = 2 * R 20 A = 4 * pi * R ^ 2 1256.6 V = 4 * pi * R ^ 3 / 3 4188.8 2 ^ pi, pi ^ 2 = 8.8250 = 9.8696 max ( 2 ^ pi , pi ^ 2 ) = 9.8696

1.6. OCTAVE / MATLAB utilizat ca i calculator a) Operaii aritmetice simple: Adunare: Scdere:
>>> 5 + 3 ans = 8 >>> 5 - 3 ans = 2

nmulire:
>>> 5 * 3 ans = 15

mprire /:
>>> 5 / 3 ans=1.6667

mprire \:
>>> 5 \ 3 ans=0.60000

Observaie: La scrierea unei expresii aritmetice care nu a fost atribuit unei variabile apare o variabil ans n care programul introduce automat rezultatul.

Compararea a dou expresii: S se verifice care din urmtoarele expresii este mai mare: 2 i 2

Rezolvarea n Octave:

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

3/8

c) Transformarea unghiurilor din grade n radiani i invers : Transformarea unghiului din Rezolvarea n Octave: grade n radiani: >>> ug = 45;ur = ug * pi / 180 360 grade = 2 radiani ur = 0.78540 ur = ug* / 180 1.7. Alte funcii matematice d) Funcii pentru transformarea numerelor dintr-o baz n alta: pentru conversia numerelor dintr-o baz n alta: base2dec(nr,baza) convertete numrul nr din baza n baza 10; dec2base(d,baza) convertete numrul d din baza 10 n baza; dec2hex(d) convertete numrul d din baza 10 n baza 16; dec2bin(d) convertete numrul d din baza 10 n baza 2; hex2dec(h) convertete numrul h din baza 16 n baza 10; bin2dec(b) convertete numrul b din baza 2 n baza 10.
base2dec(nr,baza) >base2dec('1110',2) ans = 14 dec2base(d,baza) >>> dec2base(14,2) ans = 1110 hex2dec(h) >>hex2dec('FFA3') ans = 65443 dec2hex(d) >>> dec2hex(10) ans = A bin2dec(b) >>bin2dec('1010') ans = 10 dec2bin(d) >>> dec2bin(10) ans = 1010

Exerciii: 1. S se calculeze urmtoarele expresii: a)


3

15 + 3 2 + 3 15 3 2

b) log2 5 + 3 + e
2

c) x 1 + x + 3 pt. x = -11

d) cos(x)+sin(2x), pt x=15, 45, 60 grade (argumentele funciilor trigonometrice sunt n radiani). 2. S se realizeze urmtoarele transformri: 218(10) i 402(10) s se transforme n bazele 2, 8 i 16; 110100110(2) i 100101101(2) s se transforme n baza 10; 167(8) i 621(8) s se transforme n baza 10; 1AE3(16) i FF4(16) s se transforme n baza 10. 3. Determinai coordonatele polare ale urmtoarelor puncte: P1(3,4), P2(-12,45), P3(-6,-9), P4(4,-7) 4. Determinai coordonatele sferice ale punctelor: P5(3,4,11), P6(5,-6,12), P7(-3,-2,-4), P8(0,0,-12) 5. S se scrie un program pentru rezolvarea sistemului de ecuaii liniare de ordinul nti:

a x + b y = c d x + e y = f
6. Se consider dou valori reale: a i b care reprezint lungimile catetelor unui triunghi dreptunghic. Se cere s se calculeze: lungimea ipotenuzei, aria triunghiului, volumul i aria lateral a conului obinut prin rotirea triunghiului n jurul catetei a. 7. Se consider o progresie aritmetic la care se cunosc: valoarea primului termen a1 i raia r. Se cere s se determine: suma primilor n termeni: S n =

e) Funcii pentru conversia coordonatelor: n OCTAVE / MATLAB se pot utiliza urmtoarele funcii pentru conversia coordonatelor: Funcia [th,rho] = cart2pol(x,y) : realizeaz conversia din coordonate carteziene (x,y) n coordonate polare (th,rho). Unghiul th este returnat n radiani. Funcia [x,y] = pol2cart(th,rho) : realizeaz transformarea coordonatelor polare (th, rho) n coordonate carteziene (x,y), unghiul th fiind dat n radiani. Funcia [th,phi,r] = cart2sph(x,y,z) : transform coordonatele carteziene (x,y,z) n coordonate sferice, unghiurile th i phi fiind returnate n radiani. Funcia [x,y,z] = sph2cart(th,phi,r) transform coordonatele sferice (th,phi,r) n coordonate polare (x,y,z), unghiurile th i phi fiind date n radiani. Exemplu: S se transforme coordonatele Rezolvare n OCTAVE / MATLAB: carteziene ale punctului P(1,1) n coordonate polare.
X = rho * cos(th) Y = rho * sin(th) >>> [th,rho]=cart2pol(1,1) th = 0.78540 rho = 1.4142

[2 a1 + (n 1) r ] n
2

i valoarea elementului k:

ak = a1 + (k 1) r ;

8. Se consider un trunchi de con (figura) pentru care se cunosc: razele r i R i nlimea I. Se cere s se calculeze urmtoarele elemente: Generatoarea:

Sl = G (R + r ) ;

G = I 2 + (R r ) ;
2

aria

aria

total:

St = Sl + R 2 + r 2 ;

lateral:

Volumul:

R2 + r 2 + R r 2 V = I ; diagonala: d = G + 4 R r ; 3
9. Se consider dou puncte n spaiu P1(x1, y1, z1) i P2(x2, y2, z2), S se calculeze distana n spaiu dintre cele dou puncte.

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

4/8

Laborator nr. 2. QtOctave Vectori i matrice.


Deoarece OCTAVE / MATLAB este un program bazat pe prelucrarea matricelor, este foarte important s se cunoasc modul de introducere i de reprezentare ale matricelor (i implicit a vectorilor). Matricele sunt tipuri de date fundamentale n OCTAVE, ele sunt tablouri multidimensionale n dubl precizie. Cele mai des folosite sunt matricele bidimensionale cu m linii i n coloane. Vectorii linie (m=1) i coloan (n=1) sunt cazuri particulare ale matricelor bidimensionale. 2.1. Generarea i manipularea vectorilor. Pentru generarea vectorilor cu pas liniar trebuie s se cunoasc limitele intervalului (minim i maxim) i pasul dintre dou elemente consecutive. Sintaxa utilizat pentru generarea vectorilor este: v = v_min:pas:v_max, unde v_min, respectiv v_max reprezint valoarea minim, respectiv maxim a intervalului, iar pas reprezint pasul. Dac nu se precizeaz pasul atunci acesta se consider egal cu unitatea. Dac v_min > v_max vectorul va fi ordonat descresctor. Exemple: Generarea vectorului v1 = [1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00], respectiv v2 = [1 2 3 4 5 6 7 8 9 10].
>>> v1=1:0.25:2 v1 = Columns 1 through 9: 1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000 2.7500 3.0000 >>> v2=1:10 v2 = 1 2 3 4 5 6 7 8 9 10

Generarea unui vector cu n elemente cu pas logaritmic, ntre valorile v_min (minim) i v_max (maxim) se realizeaz cu funcia logspace, astfel: v = logspace(v_min,v_max,n). Vectorul conine n elemente , distribuite logaritmic ntre [10v_min, 10v_max]. Dac nu se precizeaz numrul de elemente va fi generat un vector cu 50 de elemente distribuite logaritmic ntre [10v_min, 10v_max]. Exemplu :
>>> v4=logspace(-2,2,5) v4 = 1.0000e-002 1.0000e-001 1.0000e+000 1.0000e+001 1.0000e+002

Generarea unei reele (mesh) se realizeaz cu ajutorul funciei meshgrid cu ajutorul creia se transform un domeniu specificat prin vectorii x i y, n tablourile X i Y, care pot fi utilizate att la evaluarea funciilor de dou variabile ct i la reprezentrile grafice 2D sau 3D. Sintaxa funciei este urmtoarea : [X, Y] = meshgrid(x,y) sau: [X,Y] = meshgrid(x) cnd vectorii sunt egali. Funcia returneaz n tablourile X i Y perechile de coordonate ale tuturor punctelor din domeniul definit de vectorii x i y. Vectorii x i y sunt definii astfel: mesh-ul definit astfel este reprezentat n figura de mai jos (figura 2.1.):
x = xmin : x : xmax; y = ymin : y : ymax;

Dac se dorete generarea unui vector pentru care se cunosc valoarea minim (v_min), valoarea maxim (v_max) i numrul de elemente (n) se utilizeaz funcia linspace, astfel: v = linspace(v_min, v_max, n). Exemplu: Generarea vectorului v3 = [1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00]
>>> v3=linspace(1,3,9) v3 = Columns 1 through 9: 1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000 2.7500 3.0000

Figura 2.1. Mesh-ul definit de vectorii x i y

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave 1 2 3 4 5 6 7 8 9 10 max = 10 ans = 1 ans = 3628800 ans = 55 ma = 5.5000

5/8

Exemplu: >>> x=-2:2,y=0:4,[X,Y]=meshgrid(x,y) x = -2 -1 0 1 2 y = Punctele obinute au coordonatele: 0 1 2 3 4 (-2,0) (-1,0) (0, 0) (1, 0) X = Y = (-2,1) (-1, 1) (0, 1) (1, 1) -2 -1 0 1 2 0 0 0 0 0 -2 -1 0 1 2 1 1 1 1 1 (-2,2) (-1, 2) (0, 2) (1, 2) -2 -1 0 1 2 2 2 2 2 2 (-2,3) (-1, 3) (0, 3) (1, 3) -2 -1 0 1 2 3 3 3 3 3 (-2,4) (-1, 4) (0, 4) (1, 4) -2 -1 0 1 2 4 4 4 4 4

(2, 0) (2, 1) (2, 2) (2, 3) (2, 4)

>>> -sort(-n) ans = 10 9 8 7 6 5 4 3 2 1 >>> find(n >3) ans = 4 5 6 7 8 9 10

Dac se dorete generarea unui vector coloan, elemnetele acestuia trebuie separate prin punct-virgul (;). Exemplu: >>> v = [0;1;3;2;4] v = 0 1 3 2 4 2.2. Prelucrarea irurilor de date Cele mai uzuale funcii utilizate n prelucrarea irurilor sunt : max - determin cea mai mare component a unui vector sau matrice; min - determin cea mai mic component a unui vector sau matrice; mean sau median - calculeaz valoarea medie a componentelor unui vector; sort - sorteaz elementele in ordine cresctoare; sum - calculeaz suma componentelor unui vector sau matrice; prod - calculeaz produsul componentelor unui vector; find - caut elementele sau indicii elementelor care ndeplinesc o anumit condiie. Exemplu : Se consider irul format din primele 10 numere naturale. Se cere s se determine elementul maxim, minim, suma i produsul elementelor irului, precum i media aritmetic a elementelor.
>>> n = 1:10, max, min(n), prod(n), sum(n), ma = sum(n)/max n =

1 Exemplu : Se consider irul de numere reale: an = 1 + . Se tie c n 1 lim 1 + = e . Se cere s se calculeze suma primilor 100, 200 i 300 de termeni ai n n
irului i s se compare cu valoarea lui e.
>>> lim >>> lim >>> lim >>> ans n = n = n = e = = 1:100; an = ( 1 + 1. / n) . ^ n ; lim = an( max( n ) ) 2.7048 = 1:200; an = ( 1 + 1. / n). ^ n ; lim = an( max( n ) ) 2.7115 = 1:300; an = ( 1 + 1. / n). ^ n ; lim = an( max( n ) ) 2.7138 2.7183
n

Se observ c pe msur ce crete numrul de termeni luai n considerare, limita se apropie de valoarea lui e. Exemplu : Se consider dezv. n serie de puteri : e x = 1 + x + Se cere s se verifice egalitatea de mai sus, pt. x = 0,5 i 100 de termeni. >>> rez >>> ans x=0.5; n=1:100; ex=(x.^n)./factorial(n);rez=1+sum(ex) = 1.6487 e^x = 1.6487

x 2 x3 + + ... . 2! 3!

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave >>> zeros(3,2) ans = 0 0 0 0 0 0 >>> rand(2,3) ans = 0.73478 0.88761 0.58542 0.32852 >>> zeros(2) ans = 0 0 0 0 >>> ones(2) ans = 1 1 1 1 >>> randn(2,3) ans = 1.32412 -0.12292 -0.47123 0.32081 -1.00701 0.64009

6/8

2.3. Generarea i manipularea matricelor. O matrice dreptunghiular cu m linii i n coloane se reprezint astfel:

a11 a12 a 21 a22 A = a31 a32 ... ... am1 am 2

a13 a23 a33

... a1n 1 ... a2 n 1 ... a3n 1

... ... ... am3 ... amn 1

a1n a2 n a3n ... amn

0.57471 0.28011

Generarea matricelor: Matricele pot fi generate n mai multe moduri. Cel mai uzual const n utilizarea parantezelor ptrate i a separatorilor. Ca separatori ntre elementele matricei se folosesc blancul sau virgula n interiorul unei linii, respectiv punct i virgula sau caracterul ,,newline pentru a separa liniile. Exemplu :
>>> A = [5 7 9 1 -3 -7] >>> B = [-1 2 5; 9 0 5]

O alt categorie de funcii se utilizeaz n analiza matriceal, astfel: inv - calculeaz inversa unei matrice ptratice nesingulare; rank - calculeaz rangul unei matrice; det calculeaz determinantul unei matrice ptratice; trace - calculeaz urma unei matrice; norm - calculeaz norma vectorului sau matricei; size - returneaz dimensiunea unei matrice; length - returneaz lungimea unui vector; - calculeaz transpusa unei matrice / vector; diag - extrage din matrice matricea diagonal. Afiarea unei matrice pe ecran se realizeaz cu ajutorul funciei disp, sub forma disp(A), unde A este matricea pe care dorim s o afim.

9 5 7 A= 1 3 7 1 B= 9 0 C= 3 4 2 5 0 5 1 2 2

1 2 3 Exemple: se consider matricea: A = 4 2 5 6 0 4


Se declar matricea:
>>> A = [1 2 3 ; -4 2 -5 ; 6 0 -4] A = 1 2 3 -4 2 -5 6 0 -4 >>> inv(A) ans = 0.058824 0.338235 0.088235 >>> det(A) ans = -136 >>> ans 3 3 >>> ans 1 2 3 size(A) = A' = -4 2 -5

>>> C = [0, 1; 3, -2; 4, 2]

OCTAVE deine un set de funcii cu ajutorul crora se pot construi matrice speciale, astfel : zeros genereaz matricea nul (cu elemente nule), ones genereaz matricea format din elemente 1, eye matricea identic, rand, respectiv genereaz o matrice cu elemente numere aleatoare distribuite uniform, randn numere aleatoare distribuite normal. Sintaxa acestor funcii este aceeai, astfel c zeros(m,n) genereaz o matrice cu elemente nule cu m linii i n coloane, iar zeros(n) genereaz o matrice cu elemente nule cu n linii i n coloane (matrice ptratic). Exemple :

-0.058824 0.161765 -0.088235

0.117647 0.051471 -0.073529

6 0 -4

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

7/8

Alte funcii asociate matricelor sunt : reshape - schimbarea dimensiunii; diag matrice diagonale i diagonale ale matricelor; blkdiag - matrice diagonal pe blocuri; tril extragerea prii triunghiulare inferioare; triu - extragerea prii triunghiulare superioare; fliplr - rotire matrice n jurul axei de simetrie verticale; flipud - rotire matrice n jurul axei de simetrie orizontale; rot90 - rotaia unei matrice cu 90 de grade.

-3

1 3 2 4 Exemple : Se consider matricea M, cu elementele: M = 2 0 1 3 0 2 3 1


>>> M=[1 3 2 4; -2 0 1 3;0 2 -3 1] M = 1 3 2 4 -2 0 1 3 0 2 -3 1 >>> disp(M) 1 3 2 -2 0 1 0 2 -3 % afiarea matricei M 4 3 1 % Redimensionarea matricei M

% Rotirea matricei M2 cu 90, respectiv cu 2 x 90 >>> rot90(M2,1) >>> rot90(M2,2) ans = ans = 2 1 -3 -3 2 0 3 0 2 1 0 -2 1 -2 0 2 3 1 2.4. Extragerea elementelor individuale ale unui vector sau matrice n cazul vectorilor elementele individuale se apeleaz prin numele vectorului urmat de indicele elementului dorit, plasat ntre paranteze rotunde. Dac se dorete s se extrag o succesiune de elemente dintr-un vector se utilizeaz forma A(i :j), unde : A reprezint numele vectorului, i i j reprezint indicii elementelor de nceput, respectiv de sfrit a subirului care se extrage din vectorul A. Pentru extragerea unei succesiuni de elemente cu un anumit pas, se utilizeaz forma A(i :p :j), unde p reprezint pasul. Exemple : Se consider irul : A = [-2 1 3 0 6 4 -3 5 7 -1 6 8 2 -3 9] >>> A=[-2 1 3 0 A = -2 1 3 0 6 4 -3 >>> A(5) ans = 6 >>> A(10) ans = -1 >>> A(3:6) ans = 3 0 6 4 >>> A(2:2:8) ans = 1 0 4 5 6 4 -3 5 7 -1 6 8 2 -3 9] 5 7 -1 6 8 2 -3 9 % Se extrage val. elem. cu indicele 5 % Se extrage val. elem. cu indicele 10 % Se extrag elem. cu indicii 3,4,5,6 % Se extrag elem. cu indicii 2,4,6,8

>>> reshape(M,4,3) ans = 1 0 -3 -2 2 4 0 2 3 3 1 1

>>> M2=[1 3 2; -2 0 1; 0 2 -3] M2 = 1 3 2 -2 0 1 0 2 -3

% Generarea matricei M2

>>> D1=tril(M2) % Extragerea prii triunghiulare inf. D1 = 1 0 0 -2 0 0 0 2 -3 >>> D2=triu(M2) % Extragerea prii triunghiulare sup. D2 = 1 3 2 0 0 1

n cazul matricelor, elementele individuale se apeleaz cu numele matricei urmat de doi indici (unul pentru linie i unul pentru coloan) separai prin virgul i cuprini ntre paranteze rotunde.

ef lucr.dr.ing. Morariu-Gligor Radu Mircea

P.U.C., Programarea n MatLab - QtOctave

8/8

1 2 Exemple: Se consider matricea M, cu elementele: M = 0 4

3 2 0 1 2 3 1 1

4 3 1 0

c) an =

1 2 3 n + 2 + 2 + ... + 2 3 15 35 [(2 n 1) (2 n + 1)]2

2. S se calculeze valorile funciilor trigonometrice sinus i cosinus pentru un argument x i un numr de n termeni (de exemplu x = 0.75 i n = 150), utiliznd dezvoltrile n serie Taylor:

>>> M = [1 3 2 4; -2 0 1 3; 0 2 -3 1; -4 1 -1 0] M = 1 3 2 4 -2 0 1 3 0 2 -3 1 -4 1 -1 0 >>> M(2,3) % Extragerea elementului situat pe linia 2 coloana 3 ans = 1 >>> M(:,2) % Extragerea coloanei a doua ans = 3 0 2 1 >>> M(2,1:3) ans = -2 0 1 % Extragerea primelor trei elemente de pe linia a doua

x2 x4 x6 + + ... b) cos( x) = 1 2! 4! 6! 3. Se consider trei puncte n plan: Pi ( xi , yi ) i = 1,3 . S se calculeze aria triunghiului
x1 D , unde D = x2 construit cu cele trei puncte: A = 2 x3 y1 1 y2 1 . y3 1

x3 x5 x 7 + + ... a) sin( x) = x 3! 5! 7!

4. Se consider o dreapt dat de dou puncte: P1(x1, y1) i P2(x2, y2). Se cere s se precizeze dac un punct P3(x3, y3) aparine sau nu acestei drepte. Condiia necesar i suficient ca trei puncte Pi(xi, yi), i = 1,2,3 s fie coliniare este:

x1 D = x2 x3

y1 1 y2 1 = 0 . y3 1

>>> C=M(2:4,1:3) % Extragerea unei matrice care s conin lin. 2,3,4 i col. 1,2,3 C = -2 0 1 0 2 -3 -4 1 -1

5. Calculul sumei : S = (1)+ (1+2)+ (1+2+3)+ (1+2+3+4) + ... lund n considerare n termeni (maxim 25 de termeni). 6. Se consider vectorul: v = [10 12 0 8 9 1 0 4 -2 -14 7 0 5 -10 0]. a) S se sorteze vectorul v n ordine cresctoare; b) S se sorteze vectorul v n ordine descresctoare; c) S se afieze indicii elementelor lui v, diferite de zero; d) S se afieze pentru vectorul v: suma elementelor, cel mai mare element, cel mai mic element.

Exerciii:
1. S se calculeze limitele urmtoarelor iruri: a) an =

k2 3 1+ 1 3 n k =1
n

b) an =

sin( k ) 2 +k k =1
n

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