Professional Documents
Culture Documents
OSNOVI NA
MatLab
so
PRIMERI
Qup~o Jordanovski
1
---- Osnovi na MatLab ----
VOVED .......................................................................................................................................................4
1. Zapo~nuvawe .........................................................................................................................................5
1.1 MatLab kako ednostaven kalkulator ........................................................................................5
2. Broevi I Formati ..............................................................................................................................6
3. Promenlivi...........................................................................................................................................7
4. Vgradeni Funkcii ...............................................................................................................................8
5. Nizi ( Vektori ) ............................................................................................................................9
5.1 Oznaka ( : ) ....................................................................................................................................11
5.2 Izdvojuvawe Na Elementite .....................................................................................................11
5.3 Vektor kolona ..............................................................................................................................12
5.4 Transponirawe....................................................................................................................12
5.5 Skalaren proizvod na vektori (*) ..................................................................................13
5.6 To~kast proizvod (.*) ..................................................................................................................15
5.7 To~kast koli~nik ( delewe ) ( ./ ).............................................................................................16
5.8 To~kasto stepenuvawe ( .^ ).......................................................................................................18
6. Crtawe Na Elementarni Funkcii...........................................................................................18
6.1 Naslov i labeli ...........................................................................................................................20
6.2 Mre`a.............................................................................................................................................20
6.3 Stil na linija i boi....................................................................................................................20
6.4 Pove}e Grafici...........................................................................................................................20
6.5 HOLD naredbata ............................................................................................................................21
6.6 Podcrte` ( SUBPLOT) .................................................................................................................21
6.7 Kontrola Na Oskite ...................................................................................................................22
6.8 Zgolemuvawe ( zoom ) ..................................................................................................................23
7. Matrici : Dvodimenzionalni Nizi...............................................................................................23
7.1 Dimenzija Na Matricata ...........................................................................................................24
7.2 Transponirawe Na Matrica .....................................................................................................24
7.3 Specijalni Matrici ...................................................................................................................25
7.4 Edini~na Matrica.......................................................................................................................25
7.5 Dijagonalna Matrica..................................................................................................................26
7.6 Konstrukcija na matrici ...........................................................................................................27
7.7 Izdvojuvawe Na Elementi Na Matrica .................................................................................28
7.8 To~kast Proizvod Na Matrici ( .* ) .......................................................................................30
7.9 Mno`ewe Na Matrica So Vektor ...........................................................................................30
7.10 Mno`ewe na matrici................................................................................................................31
8. Ciklusi ( Petqi ) .............................................................................................................................31
9. Logi~ki Relacii ( Testirawe) .......................................................................................................35
10. Logi~ni Operatori.........................................................................................................................35
11. While Ciklus ( Petqa)....................................................................................................................38
Metoda 1:..............................................................................................................................................39
Metoda 2...............................................................................................................................................39
12. if ..... then .... else .... end ...............................................................................................................40
13. Skript Datoteki I Funkcii ( m-fajlovi) ...............................................................................40
13.1 Skript m-fajlovi ......................................................................................................................41
13.2 Funkciski m-fajlovi................................................................................................................43
Primeri Na Funkcii .......................................................................................................................45
14. Drugi Vgradeni Funkcii ...............................................................................................................47
14.1 Zaokru`uvawe Na Broevi........................................................................................................47
14.2 Funkcijata sum ...........................................................................................................................48
14.3 Funkcii max i min....................................................................................................................49
14.4 Generirawe Na Slu~ajni Broevi ...........................................................................................50
14.5 Funkcija find za vektori........................................................................................................51
14.6 Funkcijata find za matrici ...................................................................................................52
15. Crtawe Na Povr{ini ....................................................................................................................53
16. Nizi Na Karakteri ( Znaci).........................................................................................................56
16.1 Sporedba na K-nizi ...................................................................................................................57
16.2 Prebaruvawe i zamena ..............................................................................................................58
16.3 Konverzija na broj vo K-niza ..................................................................................................58
2
---- Osnovi na MatLab ----
3
---- Osnovi na MatLab ----
VOVED
MatLab-ot poseduva i svoj programski jazik koj e matri~no orjentiran no gi ima site
svojstva na programski jazik kako {to se FORTRAN i C. Toj ovozmo`uva brzo i
interaktivno programirawe na mali programi so momentalna proverka na to~nosta i
korektnosta na programot kako i kreirawe na celosni i kompleksni programi za
korisnici. Posebna pogodnost e postoewe na biblioteki koi ovozmo`uvaat koristewe
i interakcija so proceduri ili funkcii napi{ani vo C ili Fortran so {to
kapacitetot i mo`nostite na MatLab-ot zna~itelno se zgolemeni.
4
---- Osnovi na MatLab ----
1. Zapo~nuvawe
matlab
ako se rabori pod DOS operativen sistem ili so pritiskawe na ikonata za MatLab ako
se koristi WINDOWS verzijata. Po izvesno vreme, logoto na programot se poka`uva
sledeno so simbolot
>>
kade >> pretstavuva MatLab promt ozna~uvaj}i deka programot e spremen da prifati
nova naredba i da ja izvr{i.
2^4 = 16.
primer:
>> 2+3/4*5
ans =
5.7500
>> x = 2 + 3/4*5
x =
5.7500
5
---- Osnovi na MatLab ----
>> x
x =
5.7500
>> x
x =
5.7500
>> z
z =
5.1962
2. Broevi I Formati
Tip Primer
Celobrojna 1362, -217897
Realna 1.234, -10.76
Kompleksna 3.21 - 4.3i ( i e imaginarna edinica)
Inf Beskone~no, delewe so nula
NaN Ne e broj , 0/0
6
---- Osnovi na MatLab ----
e isto taka korisna naredba ako ne sakame pe~atewe na prazni redovi. Na toj na~in
pove}e informacii mo`at da bidat ispe~ateni.
3. Promenlivi
Imiwata na promenlivi pretstavuvaat kombinacija na bukvi i brojki i zapo~nuvaat
so bukva. Vo sledniot primer dadeni se korektno ozna~eni promenlivi.
VE@BI:
6) 3*(3*4-2*5^2-3)
7
---- Osnovi na MatLab ----
4. Vgradeni Funkcii
MatLab kako jazik od povisoko nivo ima vgradeno vo svojata implementacija i golem
broj na elementarni i naj~esto koristeni matemati~ki funkcii, kako {to se naprimer
trignometriskite i eksponencijlanite. Vo Tabelata dadeni se postojnite elementarni
funcii koi se dostapni vo MatLabot:
Trigonometric.
sin Sinus
sinh Sinus hiperbolen
asin Arkus-sinus
asinh Inverzen sinus hiperbolen
cos Cosine.
cosh Hyperbolic cosine.
acos Inverse cosine.
acosh Inverse hyperbolic cosine.
tan Tangent.
tanh Hyperbolic tangent.
atan Inverse tangent.
atan2 Four quadrant inverse tangent.
atanh Inverse hyperbolic tangent.
coth Hyperbolic cotangent.
Exponential.
exp Exponential.
log Natural logarithm.
log10 Common (base 10) logarithm.
log2 Base 2 logarithm and dissect
floating point number.
pow2 Base 2 power and scale floating
point number.
sqrt Square root.
Complex.
abs Absolute value.
angle Phase angle.
conj Complex conjugate.
imag Complex imaginary part.
real Complex real part.
unwrap Unwrap phase angle.
isreal True for real array.
Rounding and remainder.
fix Round towards zero.
floor Round towards minus infinity.
ceil Round towards plus infinity.
round Round towards nearest integer.
mod Modulus (signed remainder after
division).
rem Remainder after division.
sign Signum.
8
---- Osnovi na MatLab ----
y =
2.5000
>> pi/6
ans =
0.5236
>> x = 9;format;
>> sqrt(x), exp(x), log(sqrt(x)),log10(x^2+6)
ans =
3
ans =
8.1031e+003
ans =
1.0986
ans =
1.9395
5. Nizi ( Vektori )
>> v = [1 3, sqrt(5)]
v =
1.0000 3.0000 2.2361
9
---- Osnovi na MatLab ----
>> length(v)
ans =
3
>> v2 = [ 3+ 4 5]
v2 =
7 5
>> v3 = [ 3 +4 5]
v3 =
3 4 5
>> v + v3
ans =
4.0000 7.0000 7.2361
>> v4 = 3*v
v4 =
3.0000 9.0000 6.7082
>> v5 = 2*v - 3*v
v5 =
-7.0000 -6.0000 -10.5279
>> w = [1 2 3], z = [8 9]
>> cd = [ 2*z, -w]
>> sort ( cd )
w =
1 2 3
z =
8 9
cd =
16 18 -1 -2 -3
ans =
-3 -2 -1 16 18
10
---- Osnovi na MatLab ----
>> w = [ 2 4 9 16 25 ]
w =
2 4 9 16 25
>> sqrt(w)
ans =
1.4142 2.0000 3.0000 4.0000 5.0000
Funkcijata sqrt ( kvadraten koren ) zima element po element i generira nov vektor
so elementi koi pretstavuvaat kvadraten koren na originalniot vektor w. Ovaa
mo`nost na MatLab-ot pretstavuva mo}no oradie vo sporedba so drugi jazici, kade
treba da se napi{e nekolku reda programa za da se dobie istiot rezultat. Ovoa
svojstvo se narekuva vektorizacija na aritmetikata.
5.1 Oznaka ( : )
>> 1:4
>> 3:7
>> 1:-1
ans =
1 2 3 4
ans =
3 4 5 6 7
ans =
Empty matrix: 1-by-0
>> r5(3:6)
ans =
5 -1 -3 -5
11
---- Osnovi na MatLab ----
>> c = [ 1; 3; sqrt(5) ]
c =
1.0000
3.0000
2.2361
>> c2 = [ 3
4
5]
c2 =
3
4
5
Vektor koloni mo`at da se sobirat ili odzemaat ako imaat ista dimenzija ( broj na
elementi ).
5.4 Transponirawe
>> w = [ 1 -2 3 ], c = [ 1; 3; sqrt(5)]
w =
1 -2 3
c =
1.0000
3.0000
2.2361
>> w', c
ans =
1
-2
3
ans =
1.0000 3.0000 2.2361
>> t = w + 2*c'
t =
3.0000 4.0000 7.4721
12
---- Osnovi na MatLab ----
>> T,t
T =
3.0000
-16.0000
10.5279
t =
3.0000 4.0000 7.4721
>> x'
ans =
1.0000 - 3.0000i
.0000 + 2.0000i
Skalaren proizvod na dva vektora so ista dimenzija prestavuva broj ( skalar) , koj
se dobiva so sobirawe na proizvodite na soodvetnite elementi. Zna~i, prvo se
mno`at soodvetnite komponenti na vektorot a potoa rezultatite se sobiraat.
⎡ v1 ⎤
⎢v ⎥
r ⎢ ⎥
2
r
u = (u1 , u 2 ,...u n ) v=⎢.⎥
⎢ ⎥
⎢.⎥
⎢⎣v5 ⎥⎦
rr n
u v = ∑ u i vi
1
⎡ 20 ⎤
u = (10,−11,12) a v = ⎢ − 21⎥⎥
r r ⎢
⎢⎣− 22⎥⎦
toga{
13
---- Osnovi na MatLab ----
rr
u v = 10 × 20 + (−11) × (−21) + 12 × (−22) = 167
>> w = [2, 1, 3]
w =
2 1 3
>> u*v
??? Error using ==> *
Inner matrix dimensions must agree.
dodeka pak
u*w'
ans =
45
n
r
∑u
2
u = i
1
kade n e dimenzijata na vektorot. Dol`inata na daden vektor so MatLab-ot mo`e da se
presmeta na dva na~ina:
14
---- Osnovi na MatLab ----
Zada~a:
x ′y
cosθ = r r
x y
>>u.*v
ans =
20 -11 36
>>u.*v'
ans =
200 231 -264
x = (0 : 0.25 : 1)'
x =
0
0.2500
0.5000
0.7500
1.0000
15
---- Osnovi na MatLab ----
x sin(πx) xsin(πx)
0.000 0.0000 0.0000
0.2500 0.7071 0.1768
0.5000 1.0000 0.5000
0.7500 0.7071 0.5303
1.0000 0.0000 0.0000
>> y = x.*sin(pi*x)
y =
0
0.1768
0.5000
0.5303
0.0000
^ekorite na presmetuvawe koi {to se krijat zad ovoj eden red naredba se slednive:
>> a./a
ans =
1 1 1 1 1
16
---- Osnovi na MatLab ----
ans =
-18 -10 0 12 26
Vo ovoj primer se javuva slu~aj na 0/0, i kako rezultat MatLab-ot ispi{uva NaN, {to
zna~i deka tretiot element ne e broj.
sin(πx)
lim
x −0 x
Idejata e da se presmeta vrednosta na koli~nikot sin(πx)/x za niza vrednosti na
x koi se dobli`uvaat do 0. Neka taa niza se definira kako vektor-kolona.
>> sin(pi*x)./x
ans =
3.0902
3.1411
3.1416
3.1416
>> 1./x
ans =
10
100
1000
10000
17
---- Osnovi na MatLab ----
>> u = [ 10 11 12 ];
>> u.^2
ans =
100 121 144
>> u.*u
ans =
100 121 144
>> u.^4
ans =
10000 14641 20736
>> y=sin(3*pi*x);
>>plot(x,y)
18
---- Osnovi na MatLab ----
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
19
---- Osnovi na MatLab ----
Nizata na bukvi, pome|u dvata apostrofi ( ' ' ) mo`e da se sostoi od bilo kakvi
znaci. MatLab-ot gi smeta kako niza na karakteri.
6.2 Mre`a
>>grid
Polnata linija e tipot na linijata so koja se crta grafikonot ako poinaku nee
definirano. Polna bela linija se definira so naredbata:
>>plot(x,y,'w-')
>> plot(x,y,'w-',x,cos(2*pi*x),'g--')
>> plot(x,y,x,cos(3*pi*x),'g--')
>> legend('Sin kriva','Cos kriva')
>> title(' Multi-plot')
20
---- Osnovi na MatLab ----
Multi-plot
1
Sin kriva
0.8 Cos kriva
0.6
0.4
0.2
y ax is
-0.2
-0.4
-0.6
-0.8
-1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x axis
Naredbata hold ja zadr`uva slikata, dodeka pak hold off ja " osloboduva ", no nee
i bri{e. Ako se saka i bri{ewe na slikata se koristi naredbata clg.
21
---- Osnovi na MatLab ----
1 1
0.5 0.5
c os 3 pi x
s in 3 pi x
0 0
-0.5 -0.5
-1 -1
0 0.5 1 0 0.5 1
x x
1 1
0.5 0.5
s in 6 pi x
c os 6 pi x
0 0
-0.5 -0.5
-1 -1
0 0.5 1 0 0.5 1
x x
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
22
---- Osnovi na MatLab ----
axis komandata ima ~etiri parametri. Prvite dva parametri se minimum i maksimum
vrednosti na x-oskata dodeka poslednite dva se minimum i maksimum vrednosti na y-
oskata. Aglestata zagrada e zadol`itelna. Rezultatot na ovie komandi e poka`an na
Sl.4.
Ve`bi:
>> x = -1:0.1:1;
>> plot(x,sin(pi*x),'g-')
>> hold on
>> plot(x,cos(pi*x),'r-')
>>zoom
Ako se saka da se zgolemi odreden del od crte`ot, toga{ toj del se okviruva so
pravoagolna ramka na na~in {to so postojano pritisnato levoto kop~e glu{ecot se
dvi`i se dodeka delot ne se uokviri so pravoagolna ramka.
⎡5 7 9 ⎤
A=⎢ ⎥
⎣1 − 3 − 7⎦
Za da se vnese edna matrica vo MatLab-ot, ednostavno se vnesuvaat vrednostite
red po red koristej}i ja istata sintaksa kako i za vektorite.
23
---- Osnovi na MatLab ----
>> size(ans)
ans =
1 2
>> D,D'
D =
1 2 3 4 5
6 7 8 9 10
11 13 15 17 19
ans =
1 6 11
2 7 13
3 8 15
4 9 17
5 10 19
ans =
24
---- Osnovi na MatLab ----
3 5
ans =
5 3
>> P=ones(2,3)
P =
1 1 1
1 1 1
Matricata se narekuva kvadratna ako ima ednakov broj na redovi i koloni ( nxn ).
Matricata e simetri~na ako e ednakva na svojata transponirana t.e. ne se menuva pri
transponirawe. Jasno e deka samo kvadratnite matrici mo`at da bidat simetri~ni.
>> St = S'
St =
2 -1 0
-1 2 -1
0 -1 2
>> S-St
ans =
0 0 0
0 0 0
0 0 0
Edini~na matrica e kvadratna matrica nxn, koja samo na glavnata dijagonala ima
edinici a site drugi elementi se nuli. Vo MatLab-ot edini~nata matrica se generira
so naredbata eye(n).
25
---- Osnovi na MatLab ----
1 0 0
0 1 0
0 0 1
x =
8
-4
1
ans =
8
-4
1
Kako {to se gleda edini~nata matrica pomno`ena so vektor ili matrica go dava
istiot vektor ili matricata.
>> D = [-3 0 0; 0 4 0; 0 0 2]
D =
-3 0 0
0 4 0
0 0 2
F=[0 1 8 7; 3 -2 -4 2; 4 2 1 1]
F =
0 1 8 7
3 -2 -4 2
4 2 1 1
>> diag(F)
ans =
0
-2
1
26
---- Osnovi na MatLab ----
27
---- Osnovi na MatLab ----
9
0 1 2 3 4 5 6 7 8 9
nz = 34
>> x=0:0.1:0.5;
>> y=4*sin(3*x); u=3*sin(4*x);
>> [x',y',u']
ans =
0 0 0
0.1000 1.1821 1.1683
0.2000 2.2586 2.1521
0.3000 3.1333 2.7961
0.4000 3.7282 2.9987
0.5000 3.9900 2.7279
>> x=(0:0.1:0.5)';
>> [x 4*sin(3*x) 3*sin(4*x) ]
ans =
0 0 0
0.1000 1.1821 1.1683
0.2000 2.2586 2.1521
0.3000 3.1333 2.7961
0.4000 3.7282 2.9987
0.5000 3.9900 2.7279
28
---- Osnovi na MatLab ----
>> J(1,1)
ans =
1
>> J(2,3)
ans =
7
>> J(4,5)
??? Index exceeds matrix dimensions.
>> J(4,:)
ans =
7 0 5 4
>> J(2:3,2:3)
ans =
6 7
10 11
29
---- Osnovi na MatLab ----
>> A = [ 6 7 9; 1 -3 -7]
A =
6 7 9
1 -3 -7
>> B = [ -1 2 5; 9 0 5]
B =
-1 2 5
9 0 5
>> A.*B
ans =
-6 14 45
9 0 -35
>> A.*B'
??? Error using ==> .*
Matrix dimensions must agree.
Mno`ewe na matrica so vektor mo`e da bide ili od desno ili od levo t.e.
r
Ax mno`ewe na matrica so vektor od desno i
v
xA mno`ewe na matrica so vektor od levo.
r
Naj~esto se sre}ava na mno`ewe od desno, Ax i zatoa vektorot x e vektor-kolona a
brojot na kolonite na matricata A mora da e ednakov na brojot na elementite na x.
>> x*A
??? Error using ==> *
Inner matrix dimensions must agree.
Za razlika pri voobi~aenoto mno`ewe, tuka Ax nee isto so xA, koga stanuva zbor za
matrica i vektor.
30
---- Osnovi na MatLab ----
>> A = [5 7 9; 1 -3 -7]
A =
5 7 9
1 -3 -7
>>B = [ 0, 1; 3, -2; 4, 2]
B =
0 1
3 -2
4 2
>> C = A*B
C =
57 9
-37 -7
>> D = B*
D =
1 -3 -7
13 27 41
22 22 22
8. Ciklusi ( Petqi )
>> x = -1:0.05:1;
>> for n = 1:8
>> subplot(4,2,n), plot(x,sin(n*pi*x))
>> end
31
---- Osnovi na MatLab ----
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
Site komandi koi se nao|aat pome|u naredbata for i end se povtoruvaat za n koj
zapo~nuva od 1 pa 2,3 i se do 8. Naredbata subplot definira matrica od 4x2
subgrafici i pri n-toto povtoruvawe na ciklusot, grafikot se crta vo n-tiot
subgrafik.
So komandite;
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
1 1
0 0
-1 -1
-1 -0.5 0 0.5 1 -1 -0.5 0 0.5 1
32
---- Osnovi na MatLab ----
Kako broja~ vo ciklusot ( vo gorniot slu~aj toa e n ), mo`e da se koristi bilo koja
legalna promenliva pri {to mo`e za vrednostite na broja~ot da se definiraat i
elementite na daden vektor. Toa zna~i deka mo`no e da se koristi for petqata od
sleden vid.
f n = f n −1 + f n − 2 za n = 3,4,5.....
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
0 2 4 6 8 10 12 14 16 18 20
33
---- Osnovi na MatLab ----
1 1 1 1
S 20 = 1 +2
+ 2 + 2 + ..... 2
2 3 4 20
1 1 1 1 1
S 21 = 1 + 2 + 2 + 2 + ..... 2 + 2
2 3 4 20 21
.
.
.
1 1 1 1 1 1
S100 = 1 + 2
+ 2 + 2 + ..... 2 + 2 + ...... +
2 3 4 20 21 100 2
Postojat vkupno 81 suma. Prvata suma S20 mo`e da se presmeta so narebata
sum(1./(1:20).^2). ( Se koristi vgradenata naredba sum so argumentite vektor-red).
Soodveten kod vo MatLab bi bil sledniot.
>> S= zeros(100,1); % 1
>> S(20) = sum(1./(1:20).^2); % 2
>> for n =21:100 % 3
>> S(n) = S(n-1) +1/n^2; % 4
>> end % 5
>> clf; plot([20:100],S(20:100),'.',[20 100],[1,1]*pi^2/6,'-') % 6
>> axis([20 100 1.5 1.7]) % 7
>> [(98:100)' S(98:100)] % 8
ans =
98.0000 1.6348
99.0000 1.6349
100.0 1.6350
1.7
1.68
1.66
1.64
1.62
1.6
1.58
1.56
1.54
1.52
1.5
20 30 40 50 60 70 80 90 100
34
---- Osnovi na MatLab ----
true = 1, false = 0
x == 2 dali x e ednakvo na 2 ?
x ~= 2 dali x e razli~ito od 2?
x > 2 dali x e pogolemo od 2?
x < 2 dali x e pomalo od 2?
x >= 2 dali x e pogolemo ili ednakvo na 2?
x <= 2 dali x e pomalo ili ednakvo na 2?
>> x = pi
x =
3.1416
>> x ~= 3, x ~= pi
ans =
1
ans =
0
>> x = [ -2 pi 5; -1 0 1 ]
x =
-2.0000 3.1416 5.0000
-1.0000 0 1.0000
>> x == 0
ans =
0 0 0
0 1 0
35
---- Osnovi na MatLab ----
A B A&B
1 1 1
1 0 0
0 1 0
0 0 0
A B A|B
1 1 1
1 0 1
0 1 1
0 0 0
A ~A
1 0
0 1
A B xor(A,B)
1 1 0
1 0 1
0 1 1
0 0 0
ans =
1 1 1
ans =
1 0 1
36
---- Osnovi na MatLab ----
bidej}i vo sekoja kolona na matricata x posti barem eden element razli~en od nula.
Naredbata all(x), rezultira vo vektor-red ~ii vtor element e nula, bidej}i site
elementi na vtorata kolona na matricata x ne se razli~ni od nula.
Prvo {to mo`e da se zakqu~i e deka logi~kite testirawa imaat povisok prioritet
na izvr{uvawe od logi~nite operatori. Zatoa prvo e realizirana naredbata x>3 i
kako rezultat se dobiva matricata y koja na mesta kade elementite na x se pogolemi
od tri ima vrednsot 1 a tamu kade se pomali ili ednakvi elementite na y se nula.
Sli~no se dobiva i so naredbata x< 4, samo {to sega drug e uslovot za testirawe.
Odkako }e se dobijat matricite y i z, se primenuva operatorot AND ( & ), element
po element, sledej}i go praviloto dadeno vo tebelite. Rezultatot na taa logi~na
operacija e matricata dadena so promenlivata ans.
>> x, L = x >= 0
x =
-2.0000 3.1416 5.0000
-5.0000 -3.0000 -1.0000
L =
0 1 1
0 0 0
37
---- Osnovi na MatLab ----
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6
S = 12 + 2 2 + ..... + n 2
bide pomala od 100.
>> S =1; n = 1;
>> while S+ (n+1)^2 < 100
>> n = n+1;
>> S = S + n^2;
>> end
>> [n,S]
ans =
6 91
Del na naredbite pome|u while i end }e bidat presmetani samo ako uslovot S+
(n+1)^2 < 100 e ispolent ( vistinit).
38
---- Osnovi na MatLab ----
Metoda 1:
Metoda 2.
39
---- Osnovi na MatLab ----
π
Kako primer da se presmeta dali e πe pogolemo ili pomalo od e :
>> if a >= c
>> b = sqrt(a^2 - c^2)
>> else
>> b = 0
>> end
b =
0
if logi~en test_1
komandi koi se izvr{uvaat ako
test_1 e ispolnet
40
---- Osnovi na MatLab ----
a+b+c
A = s( s − a)( s − b)( s − b) kade s=
2
Soodvetnite naredbi vo MatLab-ot se:
>> a=10;b=15;c=20;
>> s=(a+b+c)/2;
>> A=sqrt(s*(s-a)*(s-b)*(s-c))
A =
72.6184
Ovoj problem mo`e da se nadmine ako se formira skrip m-fajl, taka {to naredbite
so koi se presmetuva povr{inata se ispi{at vo fajlot. Vo konkretniot primer
formiran e skript m-fajl so ime area.m i smesten e vo direktoriumot E:\mat-vezbi.
area.m
s=(a+b+c)/2;
A=sqrt(s*(s-a)*(s-b)*(s-c))
>> a=10;b=15;c=20;
>> area
A =
72.6184
>> a=3;b=4;c=5;
>> area
A =
6
41
---- Osnovi na MatLab ----
crta.m
plot(x,y,'w-')
legend(' matematicka kriva')
title(' Crtez na fukcija ')
xlabel('x-oska'), ylabel('y-oska')
grid
>> x=-pi:pi/20:pi;
>> y=sin(x);
>> crta
Crtez na fukcija
1
matematicka kriva
0.8
0.6
0.4
0.2
y -os k a
-0.2
-0.4
-0.6
-0.8
-1
-4 -3 -2 -1 0 1 2 3 4
x-oska
>> x=-1:2/100:1;
>> y=x.^2;
>> crta
42
---- Osnovi na MatLab ----
Crtez na fukcija
1
matematicka kriva
0.9
0.8
0.7
0.6
y -os k a
0.5
0.4
0.3
0.2
0.1
0
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
x-oska
>> povr(3,4,5)
43
---- Osnovi na MatLab ----
ans =
6
Area =
6
A =
72.6184
>> s
>> povr(10,15,20)
ans =
72.6184
44
---- Osnovi na MatLab ----
Area =
72.6184
hlen =
22.5000
1. Odberite ime na funkcijata koe nema da bide isto kako i ime koe ve}e postoi i se
koristi od strana na MatLab-ot. Vo konkretniot primer imeto na funkcijata e
povr i nejzinata definicija ( kod ) se nao|a vo fajlot povr.m.
2. Prvata linija na fajlot mora sekoga{ da ima forma
Primeri Na Funkcii
f1 = 0, f 2 = 1, f n = f n −1 + f n − 2 n=3,4,5.....
45
---- Osnovi na MatLab ----
function f = Fib1(n)
% premetuva n-tiot broj vo
%nizata na Fibonaci
F = zeros(1,n+1);
F(2) = 1;
for i = 3:n+1
F(i) = F(i-1) + F(i-2);
end
f = F(n);
%--------------- kraj---------------
function f = Fib2(n)
% premetuva n-tiot broj vo
%nizata na Fibonaci
if n== 1
f=0;
elseif n==2
f=1;
else
f1 = 0; f2 = 1;
for i = 2:n-1
f = f1 + f2;
f1 = f2; f2 = f;
end
end
%--------------- kraj---------------
function f = Fib3(n)
% premetuva n-tiot broj vo
% nizata na Fibonaci
if n== 1
f=0;
elseif n==2
f=1;
else
f = Fib3(n-1) + Fib3(n-2)
end
%--------------- kraj---------------
function f = Fib4(n)
% premetuva n-tiot broj vo
% nizata na Fibonaci
A = [0 1;1 1];
y = A^n*[1;0];
46
---- Osnovi na MatLab ----
f = y(1);
%--------------- kraj---------------
>> x1 = Fib1(10)
>> x2 = Fib2(10)
>> x3 = Fib3(10)
>> x4 = Fib4(10)
x1 =
34
x2 =
34
x3 =
34
x4 =
34
Gornite ~etiri metodi davaat isti rezultati no zatoa pak brzinata so koja se
vr{at presmetkite e razli~ita. Toa mo`e da se poka`e so merewe na vremeto
koristej}i gi naredbite tic i toc, so koi se dobiva potro{enoto vreme vo sekundi.
x1 =
4181
elapsed_time = 0.1700 sec
x2 =
4181
elapsed_time = 0 sec
x3 =
4181
elapsed_time = 31.8000 sec
x4 =
4181
elapsed_time = 0 sec
>> fix(x)
ans =
-3 0 3 6 9
>> floor(x)
47
---- Osnovi na MatLab ----
ans =
-4 0 3 6 9
>> ceil(x)
ans =
-3 0 4 7 10
Funkcijata round vr{i zaokru`uvawe na klasi~en na~in t.e. ako e decmalniot del
pogolem od 0.5 se zaokru`uva kon sledniot cel broj, dodeka vo sprotiven slu~aj kon
prethodniot pomal cel broj.
Funkcijata floor zaokru`uva kon prviot pomal cel broj bez razlika na vrednosta
na decimalniot del.
Funkcijata ceil zaokru`uva kon prviot pogolem cel broj bez razlika na vrednosta
na decimalniot del.
>> x = pi/4*(1:3)'
>> A=[sin(x), sin(2*x), sin(3*x)]/sqrt(2)
x =
0.7854
1.5708
2.3562
A =
0.5000 0.7071 0.5000
0.7071 0.0000 -0.7071
0.5000 -0.7071 0.5000
48
---- Osnovi na MatLab ----
>> A*A'
ans =
1.0000 0 0
0 1.0000 0.0000
0 0.0000 1.0000
>> S = eye(3)
S =
1 0 0
0 1 0
0 0 1
>> A*A' - S
ans =
1.0e-015 *
-0.2220 0 0
0 -0.2220 0.0555
0 0.0555 -0.2220
>> A'*A - S
ans =
1.0e-015 *
-0.2220 0 0
0 -0.2220 0.0555
0 0.0555 -0.2220
Ovie funkcii dejstvuvaat na sli~en na~in kako i funkcijata sum. Ako argumentot e
vektorot x toga{ max(x) go dava najgolemiot element na vektorot x a min(x)
najmaliot.
49
---- Osnovi na MatLab ----
Koga se bara izlezot da bide lista od dve promenlivi, toga{ prvata promenliva e
maksimalniot element a vtorata promenliva go ozna~uva indeksot t.e mestoto na
maksimalniot element.
floor(1 + 6*rand)
file: E:\mat-prog\kocka.m
d = floor(1 + 6*rand(n,2));
%------------------- kraj--------------------------------------
50
---- Osnovi na MatLab ----
>> kocka(3)
ans =
2 6
3 3
6 6
>> sum(kocka(100))/100
ans =
3.5600 3.3100
Funkcijata find go dava redniot broj ( indeks) na site elementi od vektorot x, koi
zadovoluvaat daden uslov.
>> x = -1:0.05:1;
>> y = sin(3*pi*x).*exp(-x.^2); plot(x,y,':')
>> k = find(y > 0.2)
k =
Columns 1 through 12
9 10 11 12 13 22 23 24 25 26 27
36
Columns 13 through 15
37 38 39
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
51
---- Osnovi na MatLab ----
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
>> A = [ -2 3 4 4; 0 5 -1 6; 6 8 0 1]
A =
-2 3 4 4
0 5 -1 6
6 8 0 1
1 4 7 10
2 5 8 11
3 6 9 12
n =
1
2
8
9
>> A(n)
52
---- Osnovi na MatLab ----
ans =
-2
0
-1
0
f ( x, y ) = ( x − 3) 2 − ( y − 2) 2
za 2 < x < 4 i 1 < y < 3.
53
---- Osnovi na MatLab ----
Saddle
0.5
-0.5
-1
3
2.5 4
2 3.5
3
1.5
2.5
y 1 2
x
2
+ y2 )
f = − xye −2 ( x
54
---- Osnovi na MatLab ----
55
---- Osnovi na MatLab ----
1.5
0.5 Maximum
0
y
-0.5 Maximum
-1
-1.5
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x
>> size(name)
ans =
1 13
56
---- Osnovi na MatLab ----
>> size(name)
ans =
2 16
>> C=strncmp(str1,str2,2)
C =
1
Vo ovoj slu~aj se sporeduvaat samo prvite dva znaka od K-nizite i bidej}i tie se
isti rezultatot e vistina t.e. 1.
57
---- Osnovi na MatLab ----
>> A = ~(isletter(mystring)|isspace(mystring))
A =
0 0 0 0 1 1 1
label1 =
Simple 1, 10/28/95
^esto pati daden broj sakame da go pretstavime kako K-niza so cel da se tretira
kako tekst. Za taa cel MatLab-ot ima funkcii so koi eden broj se pretvara vo K-niza.
>> x = 5317;
y=int2str(x)
size(y)
y =
5317
ans =
1 4
>> x = pi
>> p = num2str(x,9)
x =
3.1416
58
---- Osnovi na MatLab ----
p =
3.14159265
>> size(p)
ans =
1 10
file e:\mat-vezbi\humps.m
function y=humps(x)
y = 1./((x-0.3).^2 + 0.01) + 1./((x-0.9).^2 + 0.04) –6;
59
---- Osnovi na MatLab ----
100
80
60
40
20
-20
-5 -4 -3 -2 -1 0 1 2 3 4 5
1.5
0.5
-0.5
-1
-1.5
-2
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
No mo`no e i slednoto
60
---- Osnovi na MatLab ----
100
80
60
40
20
-20
-5 -4 -3 -2 -1 0 1 2 3 4 5
>> x = fmin('humps',0.3,1)
x =
0.6370
Vo gorniot primer se trgna od edna to~ka –0.2. fzero bara vo okolinata na ovaa
to~ka druga to~ka vo koja funkcijata go menuva znakot. So toa se definira intervalot
vo koja funkcijata go menuva znakot t.e prova|a niz nulata. Ako e poznat intervalot vo
koj funkcijata menuva znak toga{ fzero mo`e da se povika i kako:
61
---- Osnovi na MatLab ----
>> q = quad('humps',0,1)
q =
29.8583
>> t=0:0.1:3*pi;
>> plot3(sin(2*t),cos(t),t)
10
0
1
0.5 1
0 0.5
0
-0.5
-0.5
-1 -1
3π
∫
0
4 cos 2 (2t ) + sin 2 (t ) + 1dt
fajl E:\mat-vezbi\hcurve.m
62
---- Osnovi na MatLab ----
function f = hcurve(t)
f = sqrt(4*cos(2*t).^2 + sin(t).^2 +1);
fajl E:\mat-vezbi\matdat.m
>> matdat
>> A
A =
0.2113 0.8098 0.4832
0.0824 0.9870 0.6512
0.7599 0.4524 0.2749
0.0087 0.8075 0.8880
63
---- Osnovi na MatLab ----
fajl E:\mat-vrzbi\b.dat
b =
0.2113 0.8098 0.4832
0.0824 0.9870 0.6512
0.7599 0.4524 0.2749
0.0087 0.8075 0.8880
• Za mal broj podatoci, mali matrici ili vektori korisno e da se koristi naredbata
diary so koja se kreira diary fajl. Vo ovoj fajl se pametat site naredbi ili
ispi{uvawa na ekran za vreme na MatLab sesijata. Zatoa ako se se povika
matricata ili vektorot bez ; vrednostite }e bidat ispi{ani na ekranot i
zapi{ani vo diary fajlot. Fajlot podocna mo`e da se editira so obi~en tekst
editor.
64
---- Osnovi na MatLab ----
funkcijata ispi{uva na ekran poraka i vra}a vrednost za n broj ili vrednost na izraz
{to }e bide iskucan na tastaturata.
Vnesi broj: 23
n =
23
Input isto taka mo`e da vrati i K-naza a ne samo broevi. Za da se dobie K-nizata,
naredbata treba da izgleda
19 HELP altaka
MatLab-ot, kako i sekoj drug program ima bogata informaciona baza za site
vgradeni funkcii koja se povikuva so naredbata help, pri {to za sekoja funkcija
postoi i kratko objasnuvawe na nejzinata primena.
help
HELP topics:
help general
65
---- Osnovi na MatLab ----
General information
help - On-line help, display text at command line.
helpwin - On-line help, separate window for navigation.
helpdesk - Comprehensive hypertext documentation and
roubleshooting.
demo - Run demonstrations.
ver - MATLAB, SIMULINK, and toolbox version information.
whatsnew - Display Readme files.
Readme - What's new in MATLAB 5.1
help elmat
66
---- Osnovi na MatLab ----
Elementary matrices.
zeros - Zeros array.
ones - Ones array.
eye - Identity matrix.
repmat - Replicate and tile array.
rand - Uniformly distributed random numbers.
randn - Normally distributed random numbers.
linspace - Linearly spaced vector.
logspace - Logarithmically spaced vector.
meshgrid - X and Y arrays for 3-D plots.
: - Regularly spaced vector and index into matrix.
Matrix manipulation.
reshape - Change size.
diag - Diagonal matrices and diagonals of matrix.
tril - Extract lower triangular part.
triu - Extract upper triangular part.
fliplr - Flip matrix in left/right direction.
flipud - Flip matrix in up/down direction.
flipdim - Flip matrix along specified dimension.
rot90 - Rotate matrix 90 degrees.
: - Regularly spaced vector and index into matrix.
find - Find indices of nonzero elements.
end - Last index.
sub2ind - Linear index from multiple subscripts.
ind2sub - Multiple subscripts from linear index.
Specialized matrices.
compan - Companion matrix.
gallery - Higham test matrices.
hadamard - Hadamard matrix.
hankel - Hankel matrix.
hilb - Hilbert matrix.
invhilb - Inverse Hilbert matrix.
67
---- Osnovi na MatLab ----
help isnumeric
help find
68
---- Osnovi na MatLab ----
ODBRANI DELOVI
Vtoriot del na u~ebnoto pomagalo ( skripta ) " VOVED VO MATLAB ", e vo tesna
povrzanost so materijalot koj {to se predava vo vtoriot semestar po predmetot "
Primena na smeta~i vo rudarstvo". Vo vtoriot semestar, na studentite im se
predavaat potrebnite numeri~ki metodi za re{avawe na konkretni problemi so koi
idnite rudarski in`eweri }e se sretnat vo nivnata rabota. Kako {to e ve}e
napomnato, nivnata konkretna realizacija so primena na smeta~, pretpostavuva
poznavawe na eden programski jazik so ~ija pomo{ }e mo`at da se isprogramiraat.
MatLabot kako eden takov jazik so svojata karakteristiki na visoko organiziran
in`ewersko-istra`uva~ki programski jazik ovozmo`uva da site numeri~ki metodi
lesno i brzo se implementiraat.
1. Polinomi i Interpolacija
p ( x) = x 3 − 2 x − 5
>> p = [ 1 0 -2 -5]
p =
1 0 -2 -5
1
Primerot e zemen od upatstvoto za MATLAB
69
---- Osnovi na MatLab ----
>> r = roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
>> p2 = poly(r)
p2 =
1.0000 -0.0000 -2.0000 -5.0000
p2 =
1.0000 5.4330 6.9545
r =
-3.3683
-2.0647
>> polyval(p,5)
2
primerot e zemen od knigata "MATLAB i dodatni moduli Control system toolbox i
Simulink " od Latinka ^alasan i Menka Petkovska, Mikro kwiga, Beograd
70
---- Osnovi na MatLab ----
ans =
110
v =
-5.1990 -5.8750 -6.0000 -1.0000 16.0000 51.0000 110.0000
a ( s ) = s 2 + 2 s + 3 i b( s ) = 4 s 2 + 5s + 6
c =
4 13 28 27 18
q =
4 5 6
r =
0 0 0 0 0
p = polyfit(x,y,n)
p =
-0.1917 31.5821 -60.3262 35.3400
71
---- Osnovi na MatLab ----
>> x2 = 1:.5:5;
>> y2 = polyval(p,x2);
>> plot(x,y,'o',x2,y2)
>> grid on
500
450
400
350
300
250
200
150
100
50
0
1 1.5 2 2.5 3 3.5 4 4.5 5
primer 2.
c =
13.2447 1.3735 -20.3555 10.3114 0.1641
>> x1 = 0.1:0.01:0.8;
>> y1 = polyval(c,x1);
>> plot(x1,y1,x,y,'*')
72
---- Osnovi na MatLab ----
1.6
1.5
1.4
1.3
1.2
1.1
0.9
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
2 INTERPOLACIJA SO POLINOM
3
Vidi del 1.3 vo predavawata za vtoriot semestar
4
Isto
73
---- Osnovi na MatLab ----
>> x = [ 0 1 3 ]';
>> fx = [ -5 1 25]';
>> A = myvander(x)
>> coef = A\fx
A =
0 0 1
1 1 1
9 3 1
coef =
2
4
-5
f ( x) = 2 x 2 + 4 x − 5
>> x1 = 0:0.2:3.4;
>> y1 = polyval(coef,x1);
>> plot(x1,y1,x,fx,'*')
35
30
25
20
15
10
-5
0 0.5 1 1.5 2 2.5 3 3.5
>> A = vander(x)
A =
0 0 1
1 1 1
74
---- Osnovi na MatLab ----
9 3 1
>> x = [ 0 1 3];
5
Vidi del 1.4 vo predavawata za vtoriot semestar
75
---- Osnovi na MatLab ----
>> y = [ -5 1 25];
>> [coef,L] = lagrange(x,y)
coef =
2.0000 4.0000 -5.0000
L =
0.3333 -1.3333 1.0000
-0.5000 1.5000 0
0.1667 -0.1667 0
>> x = 0:0.1:3;
>> L0 = L(1,:); L1=L(2,:);L2=L(3,:);
>> y0 = polyval(L0,x);
>> y1 = polyval(L1,x);
>> y2 = polyval(L2,x);
>> plot(x,y0,x,y1,x,y2)
>> grid on
1.2
0.8
0.6
0.4
0.2
-0.2
-0.4
0 0.5 1 1.5 2 2.5 3
76
---- Osnovi na MatLab ----
y1 =
-2.5000 5.5000 11.0000
2.3 Wutnova interpolacija - napred
n = length(X);
D = zeros(n,n);
D(:,1) = Y';
for j=2:n,
for k=j:n,
D(k,j) = (D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
C = D(n,n);
for k=(n-1):-1:1,
C = conv(C,poly(X(k)));
m = length(C);
C(m) = C(m) + D(k,k);
end
primer 1 7:
6
Vidi del 1.5 vo predavawata za vtoriot semestar
77
---- Osnovi na MatLab ----
C =
2 4 -5
D =
-5 0 0
1 6 0
11 10 2
primer 2 8:
C =
0 1 -2 7 -5
D =
-5 0 0 0 0
1 6 0 0 0
9 8 1 0 0
25 16 4 1 0
55 30 7 1 0
>> a = 1.5;
>> vrd = polyval(C,a)
vrd =
4.3750
7
Primerot e od predavawata za vtoriot semestar
8
Isto
9
Vidi del 2.1 vo predavawata za vtoriot semestar
78
---- Osnovi na MatLab ----
Ako gorniot limes e kone~en i ima vrednost toga{ velime deka funkcijata ima
izvod vo to~kata x0.
Edna mo`na realizacija na m-funkcija, so koja se presmetuva izvod vo dadena to~ka
na funkcijata f, e dadena vo sledniot primer.
Imeto na m-funcijata e difflim, pri {to kako vlezni parametri se: imeto na
funkcijata f, to~kata vo koja se bara izvodot x i tolerancija, toler, na gre{kata vo
vrednosta na izvodot. Samata funkcijata f treba da bide zadadena i definirana
kako m-funkciska datoteka. Vo na{iot primer toa e funkcijata cos(x) a definirana e
so slednata m-funkciskata datoteka.
file:f.m
function z = f(x)
z = cos(x);
79
---- Osnovi na MatLab ----
>> x = 0.8;
>> h = 1;
>> f1 = feval('f',x+h)
>> f2 = feval('f',x-h)
>> izv = (f1-f2)/(2*h)
f1 =
-0.2272
f2 =
0.9801
izv =
-0.6036
>> x0 = 0.8;
>> toler = 1e-7;
>> [H,D,E,n] = difflim('f',x0,toler);
>> n,H(n),D(n),E(n)
80
---- Osnovi na MatLab ----
n =
4
ans =
1.0000e-004
ans =
-0.7174
ans =
1.1836e-007
function vr = newtdiff(x,y,x0)
[C,D] = newtint(x,y);
derc = polyder(C);
vr = polyval(derc,x0);
primer:
>> x = 0:0.2:1.2;
>> y = cos(x);
>> x0 = 0.8;
>> izvod = newtdiff(x,y,x0)
izvod =
-0.7174
primer 11
>> x=1:0.05:1.3;
>> y = sqrt(x);
>> x0 = 1.0;
>> izvod = newtdiff(x,y,x0)
10
Vidi 2.3 od predavawata vo vtoriot semestar
11
Od predavawata na strana 24
81
---- Osnovi na MatLab ----
izvod =
0.5000
4. NUMERI^KO INTEGRIRAWE
function v = trapez(x,y)
n = length(x);
m = length(y);
if m ~= n
display(' x i y nemaat ednakov broj na podatoci ')
break
end
v = 0;
for k=1:n-1
v=v+(x(k+1)-x(k))*(y(k+1)+y(k))/2.0;
end
primer 13
>> x = 0.4:0.1:1.0;
>> y = exp(x)./x;
>> integral = trapez(x,y)
integral =
1.7950
primer 14
>> x = 0:pi/12:pi/2;
>> y = sin(x);
>> integral = trapez(x,y)
integral =
0.9943
12
Vidi 3.2 od predavawata vo vtoriot semestar
13
od predavawata na st. 29
14
od predavaqata na st. 30
82
---- Osnovi na MatLab ----
>> x = 0:pi/500:pi/2;
>> y = sin(x);
>> format compact
>> integral = trapez(x,y)
integral =
0.99999671012970
function v = simpson(h,y)
%-------------------------------
% vlezni parametri
% h cekor na integracija ( interval)
% y() vrednosti na funkcijata t.e podatoci vo brojcana forma
%-------------------------------
n = length(y);
% se ispituva dali ima neparen broj na podatoci
% ako ne da se namali za eden
m = n;
if rem(n,2) == 0
m = n-1;
end
m,n
v = 0.0;
for k=2:m-1
if rem(k,2)== 0
v = v+4.0*y(k);
else
v = v+2.0*y(k);
end
end
v = h*(v + y(1)+y(m))/3;
% vo slucaj na paren broj na tocki dodaj ja
% poslednata povrsina koristejki trapezno pravilo
if rem(n,2) == 0
v = v+h*(y(n)+y(n-1))/2;
end
primer
>> h = pi/500;
>> x = 0:h:pi/2;
>> y = sin(x);
>> integral = simps1(h,y)
15
Vidi 3.2.3 od predavawata vo vtoriot semestar
83
---- Osnovi na MatLab ----
integral =
1.0000
primer
>> a = 0;
>> b = pi/2;
>> integral = gauss5('f',a,b)
integral =
1.0000
function z = f(x)
z = sin(x);
primer
16
Vidi 3.3 od predavawata vo vtoriot semestar
84
---- Osnovi na MatLab ----
>> a = 0.4;
>> b = 1.0;
>> integral = gauss5('f',a,b)
integral =
1.7904
function z = f(x)
z = exp(x)/x;
primer
>> a = 1;
>> b = 2;
>> integral = gauss5('ff',a,b)
integral =
0.6931
function z = ff(x)
z = 1./x;
integral =
0.69314722007998
>> a = 1;
>> b = 2;
>> err = 1.e-5;
>> integral = quad8('ff',a,b,err)
integral =
0.69314718056011
85
---- Osnovi na MatLab ----
primer:
2x1 + x2 = 4
x1 - x2 = -1
ili
⎡2 1 ⎤ ⎡ x1 ⎤ ⎡ 4 ⎤
Ax = b t.e ⎢1 − 1⎥ ⎢ x ⎥ = ⎢− 1⎥
⎣ ⎦⎣ 2 ⎦ ⎣ ⎦
MatLab naredbi:
x =
1
2
c =
4
-1
err =
0
0
Ainv =
0.3333 0.3333
0.3333 -0.6667
x =
1.0000
2.0000
A (3,:) = [ 1 1]
b(3) = 4
x = A\b
c = A*x
razlika = b-c
err = norm(razlika)
86
---- Osnovi na MatLab ----
A =
2 1
1 -1
1 1
b =
4
-1
4
x =
1.0714
2.2857
c =
4.4286
-1.2143
3.3571
razlika =
-0.4286
0.2143
0.6429
err =
0.8018
x1 =
1.09
2.24
koe se razlikuva vo vtorata decimala od re{enieto x gre{kata e:
x1 =
1.0900
2.2400
c1 =
4.4200
-1.1500
3.3300
raz1 =
-0.4200
0.1500
0.6700
err1 =
0.8049
ans =
0.0031
primer:
>> A = [ 10 -7 0; -3 2 6; 5 -1 5]
>> b = [7 4 6]'
>> x = A\b
87
---- Osnovi na MatLab ----
>> c = A*x
>> err = b-c
A =
10 -7 0
-3 2 6
5 -1 5
b =
7
4
6
x =
0
-1
1
c =
7
4
6
err =
0
0
0
primer:
A =
1.0000 0.8000 0.6400
1.0000 0.9000 0.8100
1.0000 1.1000 1.2100
b =
0.7421
0.7969
0.8802
x =
-0.0122
1.2937
-0.4386
c =
0.7421
0.7969
0.8802
err =
1.0e-015 *
0.1110
0
0
88
---- Osnovi na MatLab ----
Gausovata metoda ili poznata u{te kako Gaus-Jordan metoda, e najpoznata metoda
koja zadol`itelno se sre}ava vo sekoj u~ebnik na numeri~ki metodi 17. Poradi svojata
ednostavnost i lesno programirawe taa nej~esto se koristi za re{avawe na sistemi so
relativno mal broj na ravenki ( 30x30). Od druga strana, vo slu~aj na mal broj na
ravenki koi mo`at i ra~no da se re{at, ovaa metoda zadol`itelno se koristi. Slaba
strana na metodata e nejzinata nestabilnost pri golem sistem na ravenki, zatoa {to
numeri~kata gre{ka se akumuliraat i mo`e da se slu~i da se javi sungularnost t.e.
delewe so nula. Za vakvi sistemi razvieni se posebni algoritmi a i samiot MatLab
ima vgradeni funkcii so koi mo`e da se izbegne problemot.
function X = gaussj(A,B)
%--------------------------------------------------------------
%GAUSSJ Gauss-Jordan metoda za resavawe na linearni ravenki
% Povikuvanje
% X = gaussj(A,B)
% Vlez
% A coeficienti na matricata
% B vector na desnata strana
% Izlez
% X vector na resenie
%----------------------------------------------------------------
[n n] = size(A); %1
A = [A';B']'; %2
X = zeros(n,1); %3
for p = 1:n, %4
for k = [1:p-1,p+1:n], %5
if A(p,p)==0, break, end %6
mult = A(k,p)/A(p,p); %7
A(k,:) = A(k,:) - mult*A(p,:); %8
end %9
end %10
X = A(:,n+1)./diag(A); %11
primer:
A =
1.0000 0.8000 0.6400
1.0000 0.9000 0.8100
1.0000 1.1000 1.2100
b =
0.7421
0.7969
0.8802
x =
17
Vidi 4.1 od predavawata vo vtoriot semestar
89
---- Osnovi na MatLab ----
-0.0122
1.2937
-0.4386
c =
0.7421
0.7969
0.8802
err =
1.0e-015 *
0.1110
0.1110
0.2220
primer
>> A = [ 10 -7 0; -3 2 6; 5 -1 5]
>> b = [7 4 6]'
>> x = gaussj(A,b)
>> c = A*x
>> err = b-c
A =
10 -7 0
-3 2 6
5 -1 5
b =
7
4
6
x =
0
-1.0000
1.0000
c =
7.0000
4.0000
6.0000
err =
1.0e-013 *
-0.3109
0.1066
-0.0355
Ovaa metoda isto taka dosta ~esto se koristi, poradi svojata ednostavnost i mnogu
lesno programirawe. Mo`e da se koristi za sistemi so bilo koja golemina no
nedostatok na metodata e {to prethodno sistemot na linearni ravenki prvo treba da
se transformira vo forma za iteracija i pri toa treba da bide zadovolen uslovot za
konvergencija.
18
Vidi 4.2 od predavawata vo vtoriot semestar
90
---- Osnovi na MatLab ----
% [X,dX] = gseid(A,B,P,delta,max1)
% [X,dX,Z] = gseid(A,B,P,delta,max1)
% Vlez
% A mtricata na sistemot
% B vectorot na desnata strana
% P poceten vector na iteracija
% delta tolerancija na greska
% max1 maximalen broj na iteratcii
% Izlez
% X vector resenie
% dX greska vo sekoja iteracija
% Z matrica na resenija vo sekoja iteracija
%--------------------------------------------------------------
Z = P';
n = length(B);
Pold = P;
for k=1:max1,
for r = 1:n,
Sum1 = B(r) - A(r,[1:r-1,r+1:n])*P([1:r-1,r+1:n]);
P(r) = Sum1/A(r,r);
end
dP = abs(Pold-P);
err = norm(dP);
relerr = err/(norm(P)+eps);
Pold = P;
Z = [Z;P'];
if (err<delta)|(relerr<delta), break, end
end
primer 19:
>> A = [ 10 1 1; 2 10 1; 2 2 10]
>> b = [12 13 14]'
>> x0 = [ 1.07 0.4 2.3]'
>> toler = 1.e-8
>> maxiter = 20
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter)
>> c = A*x
>> err = b-c
A =
10 1 1
2 10 1
2 2 10
b =
12
13
14
x0 =
1.0700
0.4000
2.3000
toler =
1.0000e-008
maxiter =
20
x =
1.0000
1.0000
19
Primer od predavawata
91
---- Osnovi na MatLab ----
1.0000
DX =
1.0e-008 *
0.2106
0.0150
0.0451
Z =
1.0700 0.4000 2.3000
0.9300 0.8840 1.0372
1.0079 0.9947 0.9995
1.0006 0.9999 0.9999
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
1.0000 1.0000 1.0000
c =
12.0000
13.0000
14.0000
err =
1.0e-009 *
0.3013
0.4511
0
primer:
>> A = [ 8 1 1; 1 5 -1; 1 -1 5]
>> b = [26 7 7]'
>> x0 = [ 1.07 0.4 2.3]'
>> toler = 1.e-6
>> maxiter = 20
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter)
>> c = A*x
>> err = b-c
A =
8 1 1
1 5 -1
1 -1 5
b =
26
7
7
x0 =
1.0700
0.4000
2.3000
toler =
1.0000e-006
maxiter =
20
x =
3.0000
1.0000
1.0000
DX =
1.0e-005 *
0.1308
0.0940
92
---- Osnovi na MatLab ----
0.0450
Z =
1.0700 0.4000 2.3000
2.9125 1.2775 1.0730
2.9562 1.0234 1.0134
2.9954 1.0036 1.0016
2.9993 1.0005 1.0002
2.9999 1.0001 1.0000
3.0000 1.0000 1.0000
3.0000 1.0000 1.0000
3.0000 1.0000 1.0000
c =
26.0000
7.0000
7.0000
err =
1.0e-005 *
0.1389
-0.0450
0
>> A = [ 8 1 1; 1 5 -1; 1 -1 5]
>> b = [26 7 7]'
>> x0 = [ 107 -24 32]'
>> toler = 1.e-6
>> maxiter = 20
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter)
>> c = A*x
>> err = b-c
A =
8 1 1
1 5 -1
1 -1 5
b =
26
7
7
x0 =
107
-24
32
toler =
1.0000e-006
maxiter =
20
x =
3.0000
1.0000
1.0000
DX =
1.0e-006 *
0.4888
0.3509
0.1679
Z =
107.0000 -24.0000 32.0000
93
---- Osnovi na MatLab ----
Na kraj da re{ime u{te eden primer od predavawata daden na strana 48. Pri toa }e
zapo~neme so transformiraniot sistem daden na strana 49 so koj se obezbeduva
konvergencijata.
>> A = [ 65 17 -13 7
23 56 11 -19
-5 3 47 20
16 12 17 18]
>> b = [84 36 18 25]'
>> x0 = [ 1.07 0.4 2.3 0.5]'
>> toler = 1.e-8
>> maxiter = 100
>> [x,DX,Z] = gseid(A,b,x0,toler,maxiter);
>> [iter,m]=size(Z);
>> x,iter
>> c = A*x
>> err = b-c
A =
65 17 -13 7
23 56 11 -19
-5 3 47 20
16 12 17 18
b =
84
36
18
25
x0 =
1.0700
0.4000
2.3000
0.5000
toler =
1.0000e-008
maxiter =
94
---- Osnovi na MatLab ----
100
x =
1.6181
-0.3788
0.8241
-0.5752
iter =
33
c =
84.0000
36.0000
18.0000
25.0000
err =
1.0e-006 *
0.3173
-0.2172
0.1472
0.0000
6. MODELIRAWE NA PODATOCI
p ( s) = a k x k + a k −1 x k −1 + .... + a1 x + a 0
20
Vo angliskata literatura ovoj vid na aproksimacija se narekuva " fitting". Vo na{iot
jazik soodveten prevod ne postoi zatoa ~esto mo`e da se sretne samiot zbor fiting.
Najblisku do prevodot e "aproksimacija" iako vo angliskata literatura zborot
aproksimacija ( aproximation ) e poseben zbor. Vo statistikata postapkata se narekuva
regresija a krivata regresiona kriva.
21
Vidi predavawa str. 53.
95
---- Osnovi na MatLab ----
S = ∑ j =1 ( p( x j ) − y j ) 2
n
⎢ ⎥ ⎢ . ⎥
⎢ a1 ⎥ ⎢ ⎥
⎢⎣ a 0 ⎥⎦ ⎢ y n −1 ⎥
⎢y ⎥
⎣ n ⎦
⎡ x1k x1k −1 . x1 1⎤
⎢ k ⎥
⎢ x2 x 2k −1 . x2 1⎥
⎢ x3k . x3k −1 . x3 1⎥
⎢ ⎥
A=⎢ . . . . .⎥
⎢ . . . . .⎥
⎢ k ⎥
⎢ x n −1 x nk−−11 . x n −1 1⎥
⎢ xk
⎣ n x nk −1 . x n 1⎥⎦
[mr,mc] = size(x);
if mr == 1
x = x';
m = mc;
96
---- Osnovi na MatLab ----
end
n = length(y);
m = length(x);
if m ~= n
display(' x i y nemaat ist broj na podatoci'), break
end
A = zeros(n,k+1); %1
for j = 1:k+1 %2
A(:,j)= x.^(k+1-j); %3
end %4
S = A'*A; %5
b = A'*y; %6
C = S\b; %7
Err = norm((y-A*C)); %8
primer:
C =
1.3929
1.8214
Err =
1.2956
Polinomot od prv red koj vo smisla na najmala vkupna kvadratna gre{ka (Err =
1.2956 )gi modelira podatocite e:
p( x) = 1.3929 x + 1.8214
C1 =
0.0119
1.3214
1.8810
Err1 =
1.2910
97
---- Osnovi na MatLab ----
C3 =
-0.0278
0.2619
0.7659
2.0476
Err3 =
1.2247
>> x1 = 0.0:0.2:6.2;
>> y1 = polyval(C,x1);
>> y3 = polyval(C3,x1);
>> plot(x,y,'o',x1,y1,'-',x1,y3,'--')
11
10
1
0 1 2 3 4 5 6 7
98
---- Osnovi na MatLab ----
C1 =
1.3929 1.8214
Q1 =
R: [2x2 double]
df: 5
normr: 1.2956
C2 =
0.0119 1.3214 1.8810
Q2 =
R: [3x3 double]
df: 4
normr: 1.2910
C3 =
-0.0278 0.2619 0.7659 2.0476
Q3 =
R: [4x4 double]
df: 3
normr: 1.2247
f ( x) = a k q k ( x) + a k −1 q k −1 ( x) + .... + a1 q1 ( x)
pri {to funkciite qk(x) se odbiraat taka da zadovoluvaat dadeni uslovi ili pak
ja prezentiraat fizikata na problemot. Ne postoi nekoe pravilo za izbor na
funkciite no naj~est kriterium e fizikalniot konteks na problemot kako i
iskustvoto. Sega matricata A bi dobila forma.
⎡ q k ( x1 ) q k −1 ( x1 ) . q 2 ( x1 ) q1 ( x1 ) ⎤
⎢ q (x )
⎢ k 2 q k −1 ( x 2 ) . q2 ( x2 ) q1 ( x 2 ) ⎥⎥
⎢ q k ( x3 ) q k −1 ( x3 ) . q 2 ( x3 ) q1 ( x3 ) ⎥
⎢ ⎥
A=⎢ . . . . . ⎥
⎢ . . . . . ⎥
⎢ ⎥
⎢q k ( x n −1 ) q k −1 ( x n −1 ) . q 2 ( x n −1 ) q1 ( x n −1 )⎥
⎢ q (x )
⎣ k n q k −1 ( x n ) . q2 ( xn ) q1 ( x n ) ⎥⎦
f ( x) = a1 q1 ( x) kade q1 ( x) = e bx
99
---- Osnovi na MatLab ----
ln( f ( x)) = ln a1 + bx
ili napi{ano vo prepoznatliva forma:
>> x = 0:0.1:3;
>> a = 5.5;
>> b=-1.2;
>> y = a*exp(b*x);
>> n=length(y);
>> z = rand(1,n)-0.2;
>> y1 = y+z;
>> plot(x,y1,'o')
0
0 0.5 1 1.5 2 2.5 3
100
---- Osnovi na MatLab ----
>> plot(x,y1,'o',x,yteor,'-')
C =
-0.8863
1.5706
Err =
2.8748
alg =
1.5706
breg =
-0.8863
areg =
4.8095
0
0 0.5 1 1.5 2 2.5 3
7. DISKRETNA INTERPOLACIJA
101
---- Osnovi na MatLab ----
1 p 1 p 1 p
U1 ( ) +U2( ) + ... + U m ( )
L1,n L2 , n Lm , n
Un = (**)
1 p 1 p 1 p
( ) +( ) + ... + ( )
L1,n L2 , n Lm , n
1 1
U1 + U 2 ( ) p + ... + U m ( )p
L2,n / L1,n Lm ,n / L1,n
Un =
1 1
1+ ( ) p + ... + ( )p
L2,n / L1,n Lm ,n / L1,n
toga{, za L1,n -> 0, Un -> U1.n. Vo slu~aj koga L1,n ne e nula no se u{te ima mala
vrednost, t.e to~kata Mn e blisku do M1,n, vlijanieto na U1,n e najgolemo, dodeka
1
vlijanieto na ostanatite to~ki e pomalo i zavisi od vrednosta na izrazot ( ).
Lk ,n / L1,n
1
Vrednosta ( ) mo`e da e dovolno mala taka da doprinosot na Uk ima
Lk ,n / L1,n
zanemarlivo zna~ewe. Poradi toa brojot na ~lenovite vo gornite izrazi mo`e da bide
ograni~en, t.e. ne e nu`no da se zemat site to~ki a pri toa da se dobie sakanata
to~nost. Mno`estvoto na site to~ki ( U1, U2,...,Um) vo ~ija neposredna okolina se
nao|a nepoznata to~ka Un, se narekuva mno`estvo na vlijanie odnosno prestavuva zona
na vlijanie. Zna~i deka pri ocenka na nepoznatata vrednost ne e nu`no da se zemaat
site to~ki vo presmetkite odnosno postoi rastojanie, taka da to~kite so odale~enost
pogolema od toa rastojanie ne vlijaat zna~itelno i istite mo`at da ne se vkqu~at vo
presmetkite. Takvoto rastojanie se narekuva radijus na vlijanie . Od posebno zna~ewe
za opredeluvaweto na radiusot na vlijanie e i brojot p. Na sledniot grafik
102
---- Osnovi na MatLab ----
1
za pove}e vrednosti na p, pri {to L = ( Lk ,n / L1,n ) , k =
p
prika`ana e funkcijata ( )
L
1,2,...m.
>> L = 1:0.2:10;
>> p2 = 2;
>> p3 = 3;
>> y2 = (1./L).^p2;
>> Y3 = (1./L).^p3;
>> plot(L,y2,'-',L,y3,'--')
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
1 2 3 4 5 6 7 8 9 10
22
Primerot e zemen od knigata " Matemati~ko modelirawe na le`i{ta na mineralni
surovini" od Slobodan Vuji}, Rudarsko-Geolo{ki Fakultet, Beograd 1985,na strana 33.
103
---- Osnovi na MatLab ----
type SiO2.m
104
---- Osnovi na MatLab ----
SiO2;
ednostavno se izvr{uvaat naredbite vo m-skript datotekata i so toa se v~ituva
matricata SiO2 vo rabotniot prostor na MatLabot. Isto taka i izmena t.e. dodavawe
ili isfrawe na podatoci e poednostavna, {to ni ovozmo`uva brzo i ednostavno
presmetuvawe na razni kombinacii. Deka navistina podatocite se v~itani mo`e da
proverime so naredbata:
size(SiO2)
ans =
35 4
pri {to se konstatira deka redot na matricata SiO2 e od 35x4, {to odgovara na
podatocite.
plot(SiO2(:,2),SiO2(:,3),'o')
axis('ij')
grid
10
15
20
25
30
35
40
45
50
0 5 10 15 20 25 30 35 40 45 50
105
---- Osnovi na MatLab ----
106
---- Osnovi na MatLab ----
[n,m] = size(Data);
for i = 1:n
x(i) = Data(i,2)-x0(1);
y(i) = Data(i,3)-x0(2);
val(i) = Data(i,4);
end
for i = 1:n
dist(i) = sqrt( x(i)^2+y(i)^2);
end
for i = 1:n
if(dist(i) ~= 0)
vrd = val(i)
break
end
107
---- Osnovi na MatLab ----
end
k = 0;
for i=1:n
if (dist(i) <= R)
dist(k) = dist(i);
val(k) = val(i);
k = k+1;
end
end
1 p 1 p 1 p
U1 ( ) +U2( ) + ... + U m ( )
L1, n L2 , n Lm , n
Un =
1 p 1 p 1 p
( ) +( ) + ... + ( )
L1,n L2 , n Lm , n
n = length(x);
sum1 = 0.;
sum2 = 0;
for i=1:n
dst =dist(i);
dst = (1/dst)^p;
sum1 = sum1 +val(i)*dst;
sum2 = sum2 = dst;
end
vrd = sum1/sum2;
>> x0 = [ 23 30 ];
>> R = 70;
>> p = 2;
>> SiO2;
>> vrd = dinter(SiO2,x0,R,p)
vrd =
94.2908
108
---- Osnovi na MatLab ----
>> p=3;
>> vrd = dinter(SiO2,x0,R,p)
vrd =
93.7313
>> x0 = [7 20];
>> vrd = dinter(SiO2,x0,R,p)
vrd =
94.2733
m-skript: diskret_tst.m
x = 1:50;
y = 1:50;
n = length(x);
A = zeros(n,n);
for i = 1:n
x0(1) = x(i);
for j = 1:n
x0(2) = y(j);
A(i,j) = dinter(SiO2,x0,R,p);
end
end
ans =
50 50
ans =
94.3000
>> lb = 86:98;
>> cs= contour(A,lb);
>> clabel(cs,lb)
109
---- Osnovi na MatLab ----
50
93 8
45 94 95
88
97 96 97 94 91 87
40 90
96 9392
96
35
96 97 97 9
30
25 95 95 9
94
20 93
95 95 96 97
15 95 96
94
10
5
94
5 10 15 20 25 30 35 40 45 50
>> mesh(x,y,A)
110
---- Osnovi na MatLab ----
datoteka: dinter_mat
function S = dinter_mat(Data,x0,R,p)
%------------------------------
% Diskretna interpolacija
% Velez:
% Data : empiriski podatoci
% x0 : tocka za koja se vrsi procenka
% R : radius na vlijanie
% p : stepen na interpolacija
% Izlez:
% S : NxN matrica na presmetana vrednost na interpolacija
% vo tockite opredeleni so Nx2 matricata x0, kade prvata kolona
% gi sodrzi x-koordinatite a 2-ta kolona y-koordinatite
%---------------------------
[n,m] = size(x0);
n = max(n,m);
S = zeros(n,n);
for i = 1:n
x1 = x0(i,1);
for j = 1:n
y1 = x0(j,2);
x = Data(:,2)- x1;
y = Data(:,3)- y1;
val = Data(:,4);
dist = sqrt(x.^2+y.^2);
%----------------------------
% najdi dali tockata x0 se poklopuva so mernite tocki
%
elem_zero = find(dist == 0);
if(length(elem_zero) ~= 0)
vrd = val(elem_zero);
S(i,j) = vrd;
else
%-------------------------------
Less_then_R = find( dist <= R);
dist = dist(Less_then_R);
val = val(Less_then_R);
v = (1./dist).^p;
vrd = sum(val.*v)/sum(v);
S(i,j) = vrd;
end
end
end
% kraj na funkcijata za diskretna interpolacija
111
---- Osnovi na MatLab ----
>> lb = 86:98;
>> cs= contour(S,lb);
>> clabel(cs,lb)
50
94 95
96 93 90
45 94 8
97 96 97 939189
88
40 96
92
35
96 97 97 9
30
25 95 95 9
93
20
94
95 95 96 97
15 94
96
10 95
5 94
5 10 15 20 25 30 35 40 45 50
>> mesh(x,y,S)
112
---- Osnovi na MatLab ----
Za ~itawe na takvi datoteki, MatLabot ima svoi vgradeni funkcii ~ija sintaksa e
sli~na pa duri ista kako i funkcii za ~itawe koi se koristat vo C jazikot. No pred da
se po~ne so ~itawe na datoteka prvo treba da se otvori istata. Toa se pravi so
naredbata
fid e broj koj se koristi kako identifikator na fajlot pri negovata obrabotka.
'r' ~itawe
'w' pi{uvawe (ako ne postoi fajlot se kreira)
'a' pi{uvawe dodavaj}i na krajot (ako ne postoi fajlot se kreira)
'r+' ~itawe i pi{uvawe
[A,COUNT] = FSCANF(fid,FORMAT,SIZE)
kade e:
%f za realni broevi
%d za celobrojni broevi
%c za karakter
%s za niza na karakteri
pri toa separator pome|u broevite e prazno mesto ( blank) ili zapirka.
113
---- Osnovi na MatLab ----
br_fajl =
3
count =
140
>> S
S =
1.0000 8.0000 2.0000 93.2000
2.0000 16.0000 2.0000 93.5000
3.0000 24.0000 2.0000 94.2000
4.0000 32.0000 2.0000 94.0000
5.0000 8.0000 10.0000 93.0000
6.0000 16.0000 10.0000 94.2000
7.0000 24.0000 10.0000 95.0000
8.0000 32.0000 10.0000 95.0000
9.0000 40.0000 10.0000 97.0000
10.0000 8.0000 18.0000 94.3000
11.0000 16.0000 18.0000 95.0000
12.0000 24.0000 18.0000 95.0000
13.0000 32.0000 18.0000 96.0000
14.0000 40.0000 18.0000 95.4000
15.0000 48.0000 18.0000 92.0000
16.0000 8.0000 26.0000 93.5000
17.0000 16.0000 26.0000 95.0000
18.0000 24.0000 26.0000 95.0000
19.0000 32.0000 26.0000 97.0000
20.0000 40.0000 26.0000 96.0000
21.0000 48.0000 26.0000 92.0000
22.0000 8.0000 34.0000 94.0000
23.0000 16.0000 33.0000 96.0000
24.0000 24.0000 34.0000 95.4000
25.0000 32.0000 34.0000 96.4000
26.0000 4.0000 38.0000 94.2000
27.0000 16.0000 42.0000 97.0000
28.0000 24.0000 38.0000 95.0000
29.0000 32.0000 42.0000 97.0000
30.0000 40.0000 38.0000 97.0000
31.0000 24.0000 50.0000 96.0000
32.0000 32.0000 50.0000 95.0000
33.0000 40.0000 50.0000 86.0000
34.0000 23.0000 44.0000 95.0000
35.0000 20.0000 30.0000 92.0000
114