Professional Documents
Culture Documents
Octave
Octave
Artan Borici
Analize numerike
Viti akadamik 2011-2012, semestri I
URL: http://sites.google.com/site/leksionet
1 Hyrje ne Octave
Octave eshte gjuhe programimi e nivelit te larte te llogaritjeve numerike me li-
cense GNU Gneneral Public License (GPL) (octave.org) ose Matlab me burim
te hapur, nje program ne pronesi te MATHWORKS inc. (mathworks.com).
Funksionaliteti i Octave dhe Matlab permblidhet ne:
1. llogaritjet numerike te algjebres lineare, optimizimit, statistikes, procesimit
te sinjaleve dhe imazheve, etj;
2. programimit dhe zhvillimit te algoritmeve;
3. vizualizimit.
Shembuj
1. Matricat jane tipi qendror i te dhenave. Ne Octave/Matlab thuajse cdo gje eshte nje ma-
trice. P.sh., ne qofte se shkruajme:
Octave:1> A = [1,2;3,4]
1 2
3 4
octave:2> a
a = 1
Octave:3> a;
Octave:4> sin(phi);
3 Matricat
Matricat jane objekti me i rendesishem i Octave/Matlab. Per te krijuar nje ma-
trice duhet te vendosim disa numra brenda kllapave kartrore. Shtyllat ndahen me
ane te presjes ose thjesht me ane te hapsires, ndersa rreshtat me ane te pikepresjes.
Keshtu, shprehjet e meposhteme jane te njevlefshme:
Dy pikat, kur jane vetem, kane kuptimin e perzgjedhjes se gjithe rreshtit apo
shtylles, ndersa kur jane midis dy kufinjve ato japin nje vektor vlerash. Keshtu p.sh.
k=1:5 jep nje vektor rresht me vlerat prej 1 deri ne 5. Ne kete menyre, ne mund
te krijojme nje liste te vlerash me hap njesi. Ne qofte se shkruajme:
i=1:3:61;
t=0:0.01:1;
Komanda Pershkrimi
n=size(A,1) Numri i rreshtave
m=size(A,2) Numri i shtyllave
[n m]=size(A) Numri i rreshtave dhe i shtyllave
length(A) Permasen me te madhe
numel(A) Numri i elementeve te A
isempty(A) Provon nese A eshte boshe
rows(A) Vetem ne Octave
columns(A) Vetem ne Octave
ivec=find(datavec==5)
Ne tabele e meposhteme jane permbledhur nje sere matricash speciale:
Me poshte jepen disa funksione te dobishme per kthimin ne numra te plote te nje numri
cfaredo real x. Ne rast se x eshte matrice, keto funksione vleresohen per cdo element.
Komanda Pershkrimi
ceil(x) Numri i plote me i vogel jo me i vogel se x
floor(x) Numri i plote me i madh jo me i madh se x
round(x) Numri i plote me afer x
fix(x) Rrumbullakos kundrejt zeros
[n m l]=size(A);
A=rand(m,n,l);
m=min(min(min(A)));
Disa funksione qe lidhen ngushtesisht me permasat e matricave jane si me poshte:
0.5
cos(x)
-0.5
-1
0 1 2 3 4 5 6 7
x
plot(x,cos(x),r+,sin(x),bx)
atehere kemi vendosur ne te njejten figure dy grafike. Menyre tjeter eshte:
plot(x,cos(x),r+)
hold on
plot(x,sin(x),b*)
Komanda hold on mban te fiksuar figuren. Per ta liruar ate perseri perdoret ko-
manda hold off. Grafiket mund te shkruhen ne disk ne formate te ndryshme disa
nga te cilat jepen me ane te komandave te meposhteme, te cilat ju duhet ti provoni:
5 Programimi
Programimi ne Octave/Matlab eshte thjesht vendosja e komandave ne nje skedar
tetipit tekst qe perfundon me prapashtesen .m. Nje skedar ti tille quhet edhe skript,
ndersa te punaurit me to quhet skriptim.
Nje skript i nje lloji te vecante jane funksionet. Funksionet kthejne nje bashkesi
ndryshoresh prej nje bashkesie argumentesh duke zbatuar nje bashkesi komandash.
Keshtu shembulli i mespiperm mund te programohet me ane te funksionit,
function [t,r]=pcord(x,y)
% kthen koordinatat karteziane ne ato polare
% x dhe y jane vektore me madhesi te njejte
pol_cord;
end
Strukturat e kontrollit
Dy jane strukturat e kontrollit ne Octave/Matlab: struktura if-else dhe ajo
switch. Per shembull, ne rast se duam te zgjidhim barazimin e shkalles se dyte,
ax2 + bx + c = 0 ,
Strukturat perseritese
Strukturat perseritese ose iterative jane struktura te cilat perserisin pohime te cak-
tura per sa kohe plotesohet nje kusht i dhene. Pohimi me i rendesishem perserites
eshte pohimi while, i cili sherben me se shumti per te ndaluar algoritmet perseritese.
Si shembull sjellim metoden e Newton-it per rrenjen e polinomit te trajtuar ne analizen
numerike:
p(x) = x5 2x4 3x3 + 3x2 2x 1 .
Algoritmi qe gjen rrenjen me perafrim fillestar zero programohet ne skriptin e meposhtem:
x=0; X=x;
tol=1e-15;
gabimi=Inf;
while (gabimi>=tol),
u = 1 u2 , u(0) = 0 ,
Shprehjet krahasuese
Shprehjet krahasuese perbehen prej se paku nje shprehjeje algjebrike dhe nje op-
eratori krahasues. Per shmbull i==6 ose cond=(d>theta). Per matricat kra-
hasimi behet element per element, p.sh. [1 2;3 4]==[1 3;2 4] jep [1 0;0 1].
Krahasimi i nje skalari me nje matrice krahason skalarin me te gjitha elementet e ma-
trices, p.sh. [1 2; 3 4]==2 jep [0 1;0 0]. Ne tabelen e meposhteme jepet
kuptimi i operatoreve krahasues.
Funksionet krahasuese
Me ane te funksioneve any dhe all eshte e mundur te merret informacion mbi
elementet e ndryshem nga zero te nje vektori apo matrice:
any(v) kthen vleren 1 nese te pakten nje prej elementeve te vektorit v eshte i
ndryshem nga zero;
all(v) kthen vleren 1 nese te gjithe elementet e vektorit v jane te ndryshem
nga zero;
Shprehjet e Bool-it
Shprehjet e Bool-it permblidhen ne tableen e meposhteme:
Operatoret && dhe || quhen gjithashtu dhe operatore logjike qark i shkurter.
Shfaqja e mesazheve
Mesazhet shfaqen me ane te koamndes disp:
disp(A)
disp(done)
shfaq matricen A pa shfaqur emrin e matrices dhe me tej done.