Documente Academic
Documente Profesional
Documente Cultură
An univ. 2013-2014
Informatica Aplicata
Semestrul I
LABORATOR 1
ca
ta
INTRODUCERE N QTOCTAVE
Generalitati
GNU Octave este un limbaj de nivel inalt utilizat pentru calcule numerice;
sistemul poate fi folosit in mod interactiv sau pentru rularea unor fisiere de comenzi;
ap
li
Octave este de cele mai multe ori exemplificat in linie de comanda, dar exista si interfete
at
ic
Instalarea Octave
rm
In
fo
Interpretorul este incarcat intro fereastra de tip linie de comanda. La prompt se pot scrie
comenzi, de exemplu: 1+1 sau cos(pi): Iesirea se face cu comanda quit sau exit.
1/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ca
ta
Desi se poate lucra din linia de comanda, e poate mai comod sa se foloseasca un mediu grafic
de lucru. Acesta poate fi QtOctave, program gratuit disponibil aici. Se va descarca arhiva zip
si se va dezarhiva intr-un fisier, de exemplu C:\QtOctave.
ap
li
In
fo
rm
at
ic
si in casuta de Octave Path se introduce calea completa catre directorul unde se afla fisierul
octave.exe, asa cum a fost precizat mai sus:
c:\octave\Octave3.6.4\bin\
Dupa repornirea lui QtOctave se poate lucra.
2/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
Ferestrele de lucru
at
ic
ap
li
ca
ta
rm
In
fo
Fiecare comand din meniul principal furnizeaz un meniu specific, selecia comenzii dorite
fcndu-se prin deplasarea zonei active cu ajutorul sgeilor sau prin selecia direct cu
ajutorul mouse-lui. Aceste submeniuri sunt prezentate n Fig.2.
3/20
Informatica Aplicata
Semestrul I
In
fo
rm
at
ic
ap
li
ca
ta
Facultatea de Constructii
An univ. 2013-2014
Expresii fundamentale
4/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
Variabile
Constante numerice
Operatori
Funcii
ca
ta
Variabile
OCTAVE nu necesit declararea dimensiunii variabilelor, deoarece la ntlnirea unui nou
nume de variabil genereaz automat variabila respectiv i aloc spaiul necesar de
memorie.
Numele unei variabile este o liter, urmat de un numr orict de mare de litere, cifre sau
simboluri. Din acest numr orict de mare sunt oprite primele 31 de caractere.
OCTAVE este case sensitive - face distincie ntre literele mici i cele mari. Ex: A si a
reprezinta doua variabile distincte
ap
li
Exemplu:
a = 30
creeaz o matrice 1 x 1 cu numele a i stocheaz valoarea acesteia 30 ntr-o singur locaie
corespunztoare singurului element al matricei.
Constante numerice
OCTAVE utilizeaz notaia zecimal, cu punct zecimal opional i cu semn + sau -.
Se utilizeaz 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.
at
ic
Exemple:
3
-99
0.0001
9.6397238
1.60210e-20 6.02252e23
-3.14159j
3e5i
Constante speciale:
3.14159265
rm
pi
unitate imaginar
la fel ca i
eps
fo
realmax
In
realmin
Inf
infinit
NaN
Numele constantelor speciale nu sunt rezervate i deci este posibil suprascrierea lor.
Exemplu:
5/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ca
ta
Operatori
Scdere
Multiplicare
mprire
mprire la stnga
Ridicarea la o putere
'
()
ap
li
rm
at
ic
Funcii
OCTAVE furnizeaz un mare numr de funcii matematice elementare standard (abs,
sqrt, exp, sin ).
Exist i funcii matematice avansate
O parte din funcii (cum ar fi sqrt, sin) sunt de tip built-in, adic sunt o parte a
nucleului OCTAVE, au o mare eficien, dar detaliile constructive nu sunt accesibile
utilizatorului.
Alte funcii sunt implementate ca fiiere OCTAVE (M-files) i pot fi chiar modificate.
In
fo
6/20
Informatica Aplicata
Semestrul I
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
Exemplu:
Pentru a calcula expresia
sin
+ cos
Se va scrie comanda:
4
3
5 + ln(7) 1.5 0.17
ap
li
ca
ta
Facultatea de Constructii
An univ. 2013-2014
at
ic
>> (sin(pi/4)+cos(pi/3))/(sqrt(5+log(7))-1.5^0.17)
ans =
0.7717
>>
In
fo
rm
Observatii:
1. ans este numele unei variabile careia i se asigneaza rezultatul evaluarii expresiei, daca
ceea ce s-a introdus nu este o atribuire.
2. Daca se scrie o expresie (fie ea si de atribuire) si nu se finalizeaza randul cu caracterul
; atunci rezultatul evaluarii acelei expresii este scris in mediul de rulare. Pentru a se
inhiba afisarea rezultatului se pune la sfarsit ;
3. Pentru tergerea tuturor variabilelor curente din memoria de lucru se poate utiliza
comanda clear.
7/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
Vectori si matrice
>> A = [1 2; 3 4; 5 6]
ca
ta
A=
12
34
56
ap
li
In secventa de mai sus s-a definit o matrice cu 3 linii si 2 coloane; trecerea de la o linie la alta
se face cu punct si virgula. Accesarea unui element al matricei se face cu formatul
matrice(linie, coloana), cu indicele de linie si de coloana pornind de la 1:
>> A(1, 2)
ans = 2
Pentru definirea unui vector linie se foloseste:
>> v = [1 2 3]
>> u = [1; 2; 3]
u=
1
2
3
fo
rm
at
ic
In
>> size([1:0.5:5])
ans =
19
>> [0:0.3:1]
ans =
0.00000 0.30000 0.60000 0.90000
Numerele ntregi de la 10 la 100 din 5 n 5:
8/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
40
45
50
55
60
0.6000
0.4000
0.2000
70
75
ap
li
>> 1:-0.2:0
ans =
1.0000 0.8000
65
ca
ta
>> 10:5:100
ans =
Columns 1 through 14
10 15 20 25 30 35
Columns 15 through 19
80 85 90 95 100
Dupa cum se observa, rezultatul este un vector linie. Daca pasul lipseste, se presupune a fi
implicit 1:
>> v = 1:6
v=
123456
at
ic
In
fo
rm
>> ones(2, 3)
ans =
111
111
>> zeros(2, 3)
ans =
000
000
>> v = 2 * ones(2, 3)
v=
222
222
Matricea unitate se obtine cu functia eye:
>> I = eye(4)
I=
Diagonal Matrix
1000
0100
0010
0001
Obtinerea unei matrice cu valori aleatoare, uniform distribuite intre 0 si 1 se face cu:
>> w = rand(1,3)
w=
9/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ca
ta
>> randn(3, 3)
ans =
0.14664 -1.41418 -0.57935
-0.39136 -1.15935 0.85834
-1.00617 -0.12719 -0.80026
ap
li
at
ic
Se pot combina expresii; unele functii (radical, logaritm) care functioneaza pe scalari pot fi
de asemenea folosite si pentru vectori sau matrice:
>> x = 1:10
x=
1 2 3 4 5 6 7 8 9 10
>> y = sqrt(x)
y=
Columns 1 through 10:
1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284 3.0000 3.1623
fo
rm
In
Rezultatul functiei size este o matrice de 1 linie si 2 coloane, date care se pot accesa
individual:
>> size(A, 1) %numarul de linii
ans = 3
>> size(A, 2) %numarul de coloane
ans = 3
Pentru vectori se poate inca folosi functia size, dar este disponibila si functia length:
10/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ca
ta
>> v = 1:4
v=
1234
>> length(v)
ans = 4
>> length([1; 2; 3; 4; 5])
ans = 5
ap
li
Referirea elementelor dintr-o matrice se poate face pe baza indicilor; indicii incep de la 1.
Putem sa referim elemente individuale cu forma
numeMatrice(linie, coloana)
sau portiuni intregi din ea:
>> A(3,2) % elemental de pe linia a 3-a si coloana a 2-a
ans = 6
>> A(2,:) % toate elementele de pe linia a 2-a
ans =
34
":" inseamna toate elemente de pe acea linie/coloana
at
ic
rm
Exemple:
>> A=[1 2 0; 2 5 -1; 4 10 -1]
A=
1 2 0
2 5 -1
4 10 -1
In
fo
>> A(2,1:2:end)
ans =
2 -1
o
>> A(2:2:end,1)
11/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ans =
2
o
Elementele pozitive:
ap
li
>> A(:)
ans =
1
2
4
2
5
10
0
-1
-1
Toate elementele:
at
ic
ca
ta
>> A(A>0)
ans =
1
2
4
2
5
10
rm
fo
In
sau se pot concatena chiar doua matrice cu conditia ca operatia sa aiba sens:
>>B = [11 12; 13 14; 15 16] % aceeasi dimensiune cu A
>>[A B]
>>[A; B]
Obs. Concatenarea:
Pentru concatenarea pe orizontal a matricelor A cu B se scrie [A,B] matricele A i B
trebuind s aib acelai numr de linii.
Pentru concatenarea pe vertical se scrie [A;B] de data aceasta matricele A i B
trebuind s aib acelai numr de coloane.
12/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
Efectuarea de calcule
Adunarea matricelor:
>> C=A+B
C=
2 4 4
4 10 9
4 9 -2
at
ic
ap
li
>> B = A
B=
1 2 4
2 5 10
0 -1 -1
ca
ta
>> D=A+eye(3)
2 0
6 -1
10 0
rm
D=
2
2
4
nmulirea matricelor:
fo
>> E=A*B
E=
5 12 24
12 30 59
24 59 117
In
>> F=B*A
F=
21 52 -6
52 129 -15
-6 -15 2
13/20
Facultatea de Constructii
An univ. 2013-2014
>> G=A.*B
G=
1 4 0
4 25 -10
0 -10 1
ca
ta
Informatica Aplicata
Semestrul I
ap
li
>> A^2
ans =
5 12 -2
8 19 -4
20 48 -9
>> numel(A)
ans =
9
rm
at
ic
fo
>> max(A)
ans =
4 10 0
In
>> min(A)
ans =
1 2 -1
>> sum(A)
ans =
7 17 -2
14/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
rm
at
ic
ap
li
>> diag(A)
ans =
1
5
-1
ca
ta
>> prod(A)
ans =
8 100 0
In
fo
>>a = a
a=
1
2
3
>>b = [1;2;3]
b=
1
2
3
>>prod_tensor = a*b
prod_tensor =
14
Produsul vectorial a doi vectori un vector perpendicular pe planul format de cei doi
vectori
15/20
Informatica Aplicata
Semestrul I
ap
li
ca
ta
Facultatea de Constructii
An univ. 2013-2014
at
ic
rm
Pentru un vector sau o matrice, o expresie logica va produce un vector sau matrice de acelasi
fel cu cea initiala in care avem valoarea 1 (adevarat) acolo unde expresia este adevarata si 0
(fals) in rest:
>> a = [1 15 2 0.5]
a=
1.00000 15.00000 2.00000 0.50000
>> a < 3
ans =
1011
In
fo
Pentru a determina care sunt indicii pentru care o expresie este adevarata se poate folosi
functia find:
>> find(a < 3)
ans =
134
Pentru cazul in care se aplica functia find pe o matrice:
>> A = magic(3)
A=
816
357
492
>> [r,c] = find(A>=7)
16/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
ca
ta
r=
1
3
2
c=
1
2
3
Descriere
Rotunjeste la cel mai mic intreg
Rotunjeste la cel mai mare intreg
Rotunjeste la 0
Rotunjeste la cel mai apropiat intreg
fo
rm
>>B = ceil(T)
B=
2 2 -1 0 0
11000
1 2 2 -1 0
1 1 0 -1 1
01110
at
ic
>>A = floor(T)
A=
1 1 -2 -1 -1
0 0 -1 -1 -1
0 1 1 -2 -1
0 0 -1 -2 0
-1 0 0 0 -1
>>T = randn(5)
T=
1.1650 1.6961 -1.4462 -0.3600 -0.0449
0.6268 0.0591 -0.7012 -0.1356 -0.7989
0.0751 1.7971 1.2460 -1.3493 -0.7652
0.3516 0.2641 -0.6390 -1.2704 0.8617
-0.6965 0.8717 0.5774 0.9846 -0.0562
ap
li
Functie
Floor
Ceil
Fix
Round
In
>>C = fix(T)
C=
1 1 -1 0 0
00000
0 1 1 -1 0
0 0 0 -1 0
00000
>>D = round(T)
D=
17/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
1 2 -1 0 0
1 0 -1 0 -1
0 2 1 -1 -1
0 0 -1 -1 1
-1 1 1 1 0
ca
ta
Exerciii:
1. S se calculeze:
1+ 5
=
2
( )
2 10 cos 2
ap
li
3
3
1+ 3
at
ic
(x
) (
+ 1 ln 1 + t + t 2 =
e x +t (1 + x + cos t ) =
rm
cos 2 x + arctgt
x + t + ex
fo
v = (1,2,3)
In
w = (4,5,6)
1
u= 0
1
18/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
2
z= 0
1
ca
ta
1 0 0
A = 0 1 0
0 0 1
ap
li
2 0 1
B= 1 1 1
1 2 2
5 6)
5 0 0
0 5 0
0 0 5
3 3 3
3 3 3
3 3 3
fo
rm
at
ic
r = (1 2 3 4
2
0
1
t =
1
0
1
0 0 0
0 0 0
0 0 0
C =
2 0 1
1 1 1
1 2 2
In
vz =
r t =
Au B z =
C 3 + D 3 15 E 3 =
19/20
Facultatea de Constructii
An univ. 2013-2014
Informatica Aplicata
Semestrul I
1 0
0 1
0 0
0 0
0 0 1 2
0
1
0
0
1
2
0
0
1
2
ap
li
0
0 1 0
1
0
0 1
1
2 0
1
1
1
1
1
2 1 2 2
at
ic
0
0
H =
2
1
0 0
0
0
G =
0
0
0
ca
ta
9. S se genereze:
rm
In
fo
20/20