Professional Documents
Culture Documents
mr Ivana Kovaevi
MATLAB
Drugo izdanje
Beograd 2006.
Autori:
mr Ivana Kovaevi
Recenzenti:
Prof. dr Milan Milosavljevi
Izdava:
UNIVERZITET SINGIDUNUM
FAKULTET ZA POSLOVNU INFORMATIKU
Za izdavaa:
Prof. dr Milovan Stanii
Dizajn korica:
Aleksandar Mihajlovi
Goran Latinovi
Godina izdanja:
2006.
Tira:
000 primeraka
tampa:
CICERO-print
Beograd
SADRAJ:
1. VEBA - ALATI I OSNOVNE FUNKCIJE .............................. - 1 1.1. KAKO POETI RAD U MATLAB U............................................................ - 1 1.2. OPERATORI ZA POMO U RADU............................................................... - 3 1.3. UNOENJE PODATAKA BROJEVI I ARITMETIKI IZRAZI................ - 4 1.4. ARITMETIKI OPERATORI......................................................................... - 6 1.5. RELACIJSKI OPERATORI............................................................................. - 7 1.6. LOGIKI OPERATORI ................................................................................... - 9 1.7. KOMPLEKSNI BROJEVI.............................................................................. - 10 1.8. OSNOVNE FUNKCIJE ................................................................................... - 11 1.9. OSNOVNE KONSTANTE U MATLAB - U.................................................. - 13 1.10. IZLAZNI FORMAT ...................................................................................... - 13 1.11. BRISANJE I UVANJE PODATAKA ........................................................ - 15 -
2. VEBA - MATRICE I OPERACIJE ....................................... - 17 2.1. MATRICE I VEKTORI .................................................................................. - 17 2.2. MATRICE SPECIJALNIH STRUKTURA ................................................... - 20 2.3. OPERACIJE SA MATRICAMA.................................................................... - 23 2.4. DETERMINANTA MATRICE....................................................................... - 27 2.5. INVERZNA MATRICA .................................................................................. - 28 2.6. .DELJENJE....................................................................................................... - 29 -
4. VEBA - UPRAVLJANJE TOKOM PROGRAMA ............... - 43 4.1. USLOVNI IZRAZ : IF ..................................................................................... - 43 4.2. USLOVNI IZRAZ: FOR- PETLJA ............................................................... - 48 4.3. USLOVNI IZRAZ: WHILE- PETLJA ......................................................... - 50 -
7. VEBA - SIMBOLIKA MATEMATIKA ............................. - 71 7.1. SIMBOLIKI OBJEKTI I IZAZI.................................................................. - 71 7.2. REAVANJE JEDNAINA............................................................................ - 74 7.3. REAVANJE SISTEMA JEDNAINA......................................................... - 75 7.4. CRTANJE GRAFIKA KRIVE SIMBOLIKOG IZRAZA ....................... - 76 -
8.1. GRANINA VREDNOST FUNKCIJE.......................................................... - 79 8.2. IZVOD FUNKCIJE......................................................................................... - 80 8.3. PRIMENE IZVODA -ODEIVANJE EKSTREMNIH VREDNOSTI...... - 81 -
9. VEBA - DESKRIPTIVNA STATISTIKA ............................. - 85 10. VEBA - PRUGASTI I KRUNI DIJAGRAMI ................... - 89 11. ZADACI ZA VEBANJE ....................................................... - 93 -
PREDGOVOR
MATLAB je vii programski jezik razvijen sredinom 80-tih. Prva
verzija je napisana u Fortranu, a nove verzije napisane su na jeziku C.
Distribuirala ga je softverska kua Math Woorks Inc.
MATLAB je prvenstveno bio namenjen inenjerima, ali je za
kratko vreme postao standardni programski paket na univerzitetima,
kolama i institutima. Njegova osnovna karakteristika je numeriko
reavanje razliitih vrsta matematikih problema. Koristi se u svim
matematikim i tehnikimoblastima. MATLAB ima veoma dobru 2D i
3D grafiku, to je jo vie doprinelo popularnosti ovog programskog
paketa.
MATLAB je jednostavan za korienje. Problemi i reenja se
izraavaju na nain slian kao u standardnim matematikim
izraunavanjima, bez potrebe tradicionalnog programiranja.
Zbog velike popularnosti, vremenom su nastale razliite verzije,
prilagoene raunarskim sistemima..Osnovni elementi svih verzija su
identini. Meusobno se razlikuju po broju raspoloivih funkcija i
sistemskih ogranienja.
Mi u radu koristimo MATLAB verziju 7.
MATLAB prua mogunosti kreiranja novih funkcija za pojedine
specijalne oblasti primene. Takve funkcije grupiu se u posebne pakete,
module, takozvane Toolbox-ve. Neke od njih nudi i sam proizvoa, kao
to su SIGNAL PROCESSING, CONTROL, SYMBOLIC MATLAB ,
SIMULLINK i sl.
Broj funkcija koje nudi MATLAB je ogroman. U svakoj novoj
verziji taj broj se poveava. Mi nismo imali potrebe, ali ni mogunosti da
sve funkcije pomenemo. Zadrali smo se na najvanijim.
Ovaj kurs je nastao iz potrebe da se studentima Fakulteta
poslovne informatike olaka primena i korienje MATLAB-a.
Potrebna raunarska konfiguracija, instalacije, performanse i struktura
MATLAB- a, nisu predmet prouavanja ovog kursa.
-1-
-2-
-3-
-4-
PRIMER 1:
Napisati re student.
>> re='student'
re =
student
PRIMER 2:
U rei student odrediti broj slova.
>> size(re)
ans =
1 7
U ovom primeru koriena je naredba size, koja izraunava
dimenziju unete promenljive.
Napomena: (Odgovor 1 7 oznaava polje brojeva u jednom
redu 7 elementa).
Imena promenljivih ili funkcija, moraju poeti slovom, iza
koga moe slediti prizvoljan niz simbola, ali se samo prvih 31
karaktera iz imena pamti.
MATLAB razlikuje velika i mala slova, tj. x i X su dve
razliite promenljive.
Imena matrica obino se piu velikim slovima, dok imena
skalara i vektora malim slovima.
Imena funkcija moraju se pisati malim slovima.
-5-
+
*
/
^
sabiranje
oduzimanje
mnoenje
deljenje
stepenovanje
PRIMER 3:
Izraunati vrednost izraza 2+4-6.
>> 2+4-6
ans =
0
Iz ovog primera vidimo da MATLAB sam kreira veliinu pod
imenom ans (answer-odgovor), ukoliko korisnik sam ne dodelili
ime promenljivoj ili vrednosti izraza.
PRIMER 4:
1
Izraunati x = 2 + 2 4 .
>> x=2+(2*4-1/pi)
x=
9.6817
Broj je definisan kao stalna veliina MATLAB-a i dovoljno
je ukucati slova pi ( a ne vrednost 3.14).
-6-
PRIMER 5:
Izraunati vrednost izraza y = 3 x , ako je x = 32 .
>> x=3^2;
>> y=3*x
y=
27
<
>
==
:=
manje od
manje ili jednako od
vee od
vee ili jednako od
jednako
nejednako
PRIMER 6:
Ispitati istinitosnu vrednost izraza 5 < 3 .
>> 5<3
ans =
0
PRIMER 7:
Izraunati vrednost izraza:
>> 5<(7= =8)
ans
0
Zamenimo sada = = =
>> 5<(7=8)
??? 5<(7=8)
|
Error: ")" expected, "=" found.
U prvom primeru 7 = = 8 ima istinutosnu vrednost pogreno, tj
0 i zato je 5 < 0 , to daje kao rezultat 0.
U drugom primeru greka se javlja zato to = predstavlja samo
operaciju pridruivanja, a ne raunanja vrednosti koja ima neku
istinitosnu vrednost.
-8-
&
|
i
ili
ne
p&q
p|q
-9-
0 + 1.0000i
Kompleksni brojevi se definu kao zbir z = x + iy
realni , a y imaginarni deo kompleksnog broja.
gde je x
PRIMER 8:
Napisati broj z = 2 + 3i .
>> z=2+3*i
z=
2.0000 + 3.0000i
Moduo, argument, realni i imaginarni deo i konjugovano
kompleksni broj dobijaju se korienjem naredbi abs, angle,
real, imag, conj.
- 10 -
abs
sqrt
sin
cos
tan
cot
exp
log
log10
PRIMER 9:
Izraunati sin
>> sin(pi/4)
ans =
0.7071
PRIMER 10:
Za x = 5 i y = 59 izraunati vrednost izraza z = ln y + x .
> x=5;
>> y=59;
>> z=log(y)+sqrt(x)
z=6.0775
- 11 -
PRIMER 11:
Izraunati vrednost izraza z = log x + y , za vrednosti x i
y zadatih u predhodnom primeru.
>> % Komentar: x i y su vrednosti promenljivih iz predhodnog primera
>> z=log10(x)+abs(y)
z=
59.6990
- 12 -
- 13 -
PRIMER 12:
Broj prikazati koristei razliite oblike naredbe format.
>> format short, pi
ans =
3.1416
>> format long, pi
ans =
3.14159265358979
>> format long e, pi
ans =3.141592653589793e+000
>> format short e, pi
ans =
3.1416e+000
>> format rat, pi
ans =
355/113
- 14 -
clear x
brie se promenljiva x
save
save ime
quit , exit
load
VEBA:
1. Utvrditi ta je vee e ili e ?
(1 + i )100
2. Izraunati z , ako je z =
.
(1 i )96 i(1 + i )98
5
3. Izraunati
za x = 0 .
x
0
4. Izraunati x = .
0
5. Kao znakovnu promeljivu uneti svoje ime i prezime i
odrediti broj slova u njemu.
6. Korienjem razliitih izlaznih formata ispisati broj
2 .
- 15 -
- 16 -
1 2 4
Uneti matricu A = 6 8 5 .
7 4 2
>> A=[1 -2 4; -6 8 5; 7 -4 2]
A=
1 -2 4
-6 8 5
7 -4 2
Druga mogunost upisa je da se razmak izmeu elemenata
zameni zarezom.
>> A=[1, -2, 4; -6, 8, 5; 7, -4, 2]
A=
1 -2 4
-6 8 5
7 -4 2
PRIMER 2:
Uneti vektor x=(1, 2, ... , 10).
>> x=1:10; x
x=
1 2 3 4
10
PRIMER 3:
1 + 5i 2 6i
Uneti matricu Z =
, tako to emo posebno
3 + 7i 4 + 8i
unositi realne, a posebno imaginarne delove kompleksnih
brojeva.
>> a=[-1, 2; 3, 4] ; b=[5, -6; 7, 8] ; Z=a+b*i
Z=
-1.0000 + 5.0000i 2.0000 - 6.0000i
3.0000 + 7.0000i 4.0000 + 8.0000i
PRIMER 4:
Uneti matricu Z iz prethodnog primera tako to elemente
odmah unosimo kao kompleksne brojeve
- 18 -
PRIMER 5:
2
3
1
PRIMER 6:
Odrediti dimenzije date matrice A, koristei naredbu size.
>> size(A)
ans =
3 3
- 19 -
PRIMER 7:
Odrediti dimenzije matrice A koristei naredbu [m,n]=size(A).
>> [m, n]=size(A)
m=
3
n=
3
Naredba
Opis
eye(n)
eye(m,n)
eye(size(A))
PRIMER 7:
Formirati matricu sa dve vrste i tri kolone iji su elementi na
glavnoj dijagonali jednaki 1, a svi ostali elementi su jednaki 0.
>> X=eye(2,3)
X=
1 0 0
0 1 0
- 20 -
PRIMER 8:
Odrediti jedininu matricu istih dimenzije kao data matrice A .
>> X=eye(size(A))
X=
1 0 0
0 1 0
0 0 1
Naredba ones definie matricu iji su svi elementi jedinice
Naredba
ones(n)
ones(m,n)
ones(size(A))
Opis
PRIMER 9:
Formirati kvadratnu matricu reda 2 iji su svi elementi jednaki 1.
>> X=ones(2)
X=
1 1
1 1
Naredba zeros definie matricu iji su svi elementi nule
Naredba
zeros(n)
zeros(m,n)
zeros(size(A))
Opis
PRIMER 10:
Formirati matricu sa dve vrste i tri kolone iji su svi elementi
jednaki 0.
>> X=zeros(2,3)
X=
0 0 0
0 0 0
Naredba magic(n) definie matricu sa celobrojnim elementima
izmeu 1 i n2, dimenzija nxn, sa osobinom da je zbir elemenata
po vrstama i kolonama konstantan (arobni kvadrat).
PRIMER 11:
Formirati matricu treeg reda koristei naredbu magic.
>> X3=magic(3)
X3=
8
3
4
1
5
9
6
7
2
- 22 -
PRIMER 12:
Uoiti osobine matrica dobijenih korienjem naredbe diag.
>> A , X1=diag(A) , X2=diag(diag(A))
A=
1 2 3
2 -3 1
-4 -5 -6
X1 =
1
-3
-6
X2 =
1
0
0
0 0
-3 0
0 -6
2 3 4
Sabrati datu matricu A i matricu B = 1 1 1 .
3 2 1
- 23 -
PRIMER 14 :
Od date matrice A oduzeti skalar 1.
>>A, D=A-1
A=
1 2 3
2 -3 1
-4 -5 -6
D=
0 1 2
1 -4 0
-5 -6 -7
- 24 -
MNOENJE MATRICA
Mnoenje matrica skalarom se vri tako to svaki element te
matrice pomnoimo vrednou datog skalara. Treba imati u vidu
da vai zakon komutativnosti tj. kA = Ak .
PRIMER 15 :
Ako je k = 5 , odrediti matricu F = 5 A .
>> A , F=5*A
A=
1 2 3
2 -3 1
-4 -5 -6
F=
5 10 15
10 -15 5
-20 -25 -30
PRIMER 16:
1 2
Pomnoiti matrice A i A1 = 2 3
1 6
>> A; A1=[1, 2 ; 2, -3 ; 1, 6] ; P=A*A1
P=
8 14
-3 19
-20 -29
- 25 -
PRIMER 17:
Pomnoiti matrice A1 i A .
>> A1*A
??? Error using ==> *
Inner matrix dimensions must agree.
TRANSPONOVANJE MATRICA
Transponovanje matrica sa realnim koeficijentima, je zamena
vrsta i kolona. Vri se pomou operatora ' .
PRIMER 19 :
Transponovati datu matricu A.
>> A , E=A'
A=
1 2 3
2 -3 1
-4 -5 -6
E=
1 2 -4
2 -3 -5
3 1 -6
PRIMER 20 :
Izraunti determinantu matrice A.
>> A , D=det(A)
A=
1 2 3
2 -3 1
-4 -5 -6
D= -27
- 27 -
1
adjA .
det( A)
PRIMER 21 :
Nai inverznu matricu date matrice A.
>> A ; I=inv(A)
I=
-0.8519 0.1111 -0.4074
-0.2963 -0.2222 -0.1852
0.8148 0.1111 0.2593
PRIMER 22 :
Izraunati inverznu
1
jednaka nuli) S = 4
7
>> S=[1 2 3 ; 4 5 6 ; 7 8 9]
>>det(A)=0
0
>> inv(S)
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate.
- 28 -
2.6. .DELJENJE
DELJENJE MATRICA
U matrinom raunu operacija deljenja nije definisana, ali u
MATLAB- u , postoje dva operatora deljenja:
\ oznaava deljenje sa leva, a / oznaava deljenje sa
desna
Neka je A kvadratna regularna matrica.
A \ B = A 1 * B
A / B = B * A 1
Rezultati se dobijaju direktno, bez raunanja inverzne matrice.
PRIMER 23:
U sledeem primeru moemo uoiti razliku izmeu operatora
deljenja sa leva \ i sa desna /.
>> A ; B ; K=A\B , K1=A/B
K=
-2.8148 -3.4815 3.9259
-1.3704 -1.0370 1.1481
2.5185 2.8519 -3.4074
K1 =
-2.2000 -3.0000 2.8000
0.9000 3.5000 -1.1000
4.6000 6.0000 -6.4000
- 29 -
PRIMER 24:
U sledeem primeru moemo uoiti razliku izmeu A./B i A.\B
>> A./B
ans =
0.5000 0.6667 -0.7500
2.0000 3.0000 1.0000
-1.3333 -2.5000 -6.0000
>> A.\B
ans =
2.0000 1.5000 -1.3333
0.5000 0.3333 1.0000
-0.7500 -0.4000 -0.1667
A = 2 3 1 i B = 2 .
4 5 6
2
(Uputstvo: AX = B X = A1 B )
>> A ; B ; X=inv(A)*B
X=
0.1852
-0.3704
0.5185
ili
>> X=A\B
X=
0.1852
-0.3704
0.5185
- 30 -
PRIMER 26:
Podeliti matricu A skalarom 2, sa leva i sa desna.
>> A\2
??? Error using ==> \
Matrix dimensions must agree.
>> A/2
ans =
0.5000 1.0000 1.5000
1.0000 -1.5000 0.5000
-2.0000 -2.5000 -3.0000
VEBA:
Koristei datu matricu A odrediti:
1.
(A )
Izraunati
2 T
2.
3.
ako je:
+ A 1
1 2
0 3
8 17
, B=
, C=
A=
.
1 0
2 1
8 11
4.
Dati su elementi , e, 2 . Formirati matricu 3x3, iju
prvu vrstu ine dati brojevi, drugu vrstu njihovi logaritmi, a
treu vrstu kvadratni koreni datih brojeva.
- 31 -
- 32 -
3. VEBA - GRAFIKA
MATLAB poseduje velike mogunosti grafikog predstavljanja.
U ovoj vebi bie obraene neke najosnovnije narebe za crtanje
dvodimenzionalnih grafika.
PRIMER 1:
Nacrtati vektor x = (1, 2, 4,8,16) .
>> x=[1,2,4,8,16];plot(x)
16
14
12
10
8
6
4
2
0
1.5
2.5
3.5
4.5
PRIMER 2:
Nacrtati vektor zadat
y = (1, 2, 4,8,16) .
koordinatama
x = (1, 2, 4,8,16)
10
12
14
16
- 34 -
PRIMER 3:
Nacrtati funkciju y = 2e x u domenu x [ 1,1] sa korakom 0.1 .
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
PRIMER 4:
U istom koordinatnom sistemu nacrtati funkcije y = 2 x i
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
- 35 -
0.8
Simbol
Opis
linije
.
o
h
+
*
-.
:
--
Taka
Krug
h-znak
Plus
Zvazda
Puna linija
Taka crta
Takasta
Isprekidana linija
Simbol
Boja
boje
y
m
s
r
g
b
k
w
uta
Ljubiasta
Cijan
Crvena
Zelena
Plava
Crna
Bela
- 36 -
PRIMER 5:
U predhodnom primeru uvedimo oznake za vrstu i boju linije.
>> x=-1:.1:1;y1=2*x; y2=2*exp(x);
>> plot(x1,y1,'g',x2,y2,'m+')
6
5
4
3
2
1
0
-1
-2
-1
-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
- 37 -
PRIMER 6:
Nacrtati funkciju y = x 2 9 u domenu x [ 3,3] .
>> y='x^2-9'; fplot(y,[-3,3])
0
-1
-2
-3
-4
-5
-6
-7
-8
-9
-3
-2
-1
Oznaka
title
xlabel
ylabel
text
gtext
grid
Opis
naziv grafika
naziv x ose
naziv y ose
naziv teksta na grafiku
tekst na poziciji oznaenoj miem
crtanje linija mree
- 38 -
PRIMER 9:
Nacrtati funkciju y = sin x na domenu x [ 2 , 2 ] i koristei
naredbe iz tabele obeleiti sliku.
>> y='sin(x)';fplot(y,[-2*pi,2*pi])
>> hold on
>> grid
>> title('sinusna funkcija')
>> xlabel('x osa')
>> ylabel('y osa')
>> gtext('max')
sinusna funkcija
1
max
0.8
0.6
0.4
y osa
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-6
-4
-2
0
x osa
- 39 -
PRIMER 11:
Koristei naredbu subplot nacrtati funkcije: y = x
y = xe
x [ 0,1] ,
y=x
x [ 2, 2] ,
x [ , ] .
y = cos x
0.5
2
0
1
-0.5
-1
-1
-0.5
0.5
0.5
-0.5
0
-2
-1
-1
-4
0.5
-2
- 40 -
x [ 1,1] ,
Oznaka
Opis
axis('equal')
axis(xmin,xmax,ymin,ymax)
axis('normal')
Vraanje
grafika
axis('axis')
axis
na
prvobitne
dimnezije
PRIMER 12:
Nacrtati funkciju y = sin x za -2 x 2 , , a zatim postaviti
da opseg po x osi bude - x , a po y osi bude 2, 2 .
>> x=-2*pi:pi/16:2*pi; y=sin(x);plot(x,y),grid
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-8
-6
-4
-2
- 41 -
>> axis([-pi,pi,-2,2])
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-3
-2
-1
VEBA:
1. Nacrtati funkcije y = sin x i y = cos x u opsegu
od 0, 2 .
2. Nacrtati krug sa centrom u taki (2,2) i
poluprenikom 4.
3. Nacrtati funkciju y = x 2 5 x + 6 u proizvoljnom
opsegu i opisati je tekstom.
4. Koristei naredbu subplot nacrtati funkcije
y = x n , n [1, 6] .
- 42 -
if izraz
naredbe
end
ili
if izraz
naredba 1
else
naredba 2
end
ili
if izraz 1
naredba 1
elseif izraz 2
- 43 -
naredba 2
else
naredba 3
end
Ako uslovni izraz u iskazu ima vrednost tano - true (1),
program izvrava komande koje neposredno slede sve do
komande end. Ako je uslovni izraz netaan false (0 ) ,
program preskae grupu komandi izmeu if i end i nastavlja da
izvrava komande iza end.
Vrednost nezavisno promenljive moe da se unese i
korienjem naredbe input(tekst).
>> x=input ('unesi promenljivu x=');
>> y=input ('unesi promenljivu y=');
Za ispisivanje izlaznih rezultata koristi se naredba disp(tekst).
- 44 -
PRIMER 1:
Uneti godine starosti i ako je broj godina manji od 21 na izlazu
ispisati 'zabranjen alkohol', a u suprotnom izai iz programa.
start
Unesi godine
Ako su
godine
manje od
21
Nema alkohola
>> godine=input('god');
god12
>> if godine <21
disp('zabranjen alkohol')
end
zabranjen alkohol
>> godine=input('god');
god33
>> if godine <21
disp('zabranjen alkohol')
end
U prvom sluaju uneti broj godina je bio manji od 21, pa smo na
ekranu dobili ispis zabranjen alkohol. U drugom sluaju je bio
vei od 21 i na ekranu nije bilo ispisa.
- 45 -
PRIMER 2:
Uneti godine starosti i ako je broj godina manji od 21 ispisati
na izlazu 'zabranjen alkohol', a u suprotnom ispisati 'dozvoljen
alkohol'.
- 46 -
PRIMER 3:
Za unapred zadatu vrednost promenljive x izraunati vrednost
izraza y , tako da, ako je x < 2 sledi da je y = 2 x , za x = 2 je
y = 2 , inae je y = 2 x .
> x=input('x=')
x=4
x=
4
>> if x<2
y=-2*x;
elseif x= =2
y=2;
else
y=2*x;
disp(y)
end
8
- 47 -
for promenljiva=izraz
naredbe
end
PRIMER 4:
Za sve vrednosti promenljive
x {1, 2, 3, 4, 5}
0.9894 -0.5440
- 48 -
izraunati
PRIMER 5 :
Napisati matricu A iji se elementi izraunavaju po zakonu
1
, a koja ima 4 vrste i 3 kolone.
a ( i, j ) =
2i + j 2
>> for i=1:4
for j=1:3
A(i,j)=1/(2*i+j-2);
end
end
>> A
A=
1.0000 0.5000
0.3333 0.2500
0.2000 0.1667
0.1429 0.1250
0.3333
0.2000
0.1429
0.1111
- 49 -
while izraz
naredbe
end
PRIMER 6:
Izraunavati vrednosti promenljive x , po zakonu x = 2 x ,
dogod je x 15 .
>> x=1;
>> while x <=15
x=2*x;
end
>> x
x = 16
Kako funkcionie nareba, preciznije se moe
prikaemo sve meu-rezultate promenljive x.
>> x=1
>> while x <=15
x=2*x
end
x=
1
x=
2
x=
4
x=
8
x=
16
- 50 -
videti, ako
PRIMER 7:
Izraunati
zbir
reda
s=
( 1)
n =1
= 1 +
1 1 1
+ K sa
4 9 16
tanou 10 .
>> s=0;
>> n=1;
>> while abs((-1)^n/n^2)>10^(-4)
s=s+(-1)^n/n^2;
n=n+1;
end
>> s
s=
-0.8225
VEBA:
1.Formirati matricu dimenzija 5x5 iji su elementi
a (i, j ) = i + 2 j .
2.Za unete godine starosti u zavisnosti da li je taj broj
manji od 21 ispisati na izlazu 'zabranjen alkohol', ako
je broj godina vei od 65 ispisati 'alkohol zabranjen iz
zdravstvenih razloga', inae, ispisati 'dozvoljeno piti
umereno'.
3.Izraunati 5! koristei petlje.
- 51 -
- 52 -
- 53 -
- 54 -
y1 , y2 ,L
PRIMER 2:
Formirati funkcijski fajl u kome se definie nova funkcija
f ( x ) = e x + sin x pod imenom fi.
% funkcijski fajl
% ime nove funkcije je fi
function y=fi(x)
y=exp(x)+sin(x);
- 55 -
>> fi(pi/2)
ans =
5.8105
PRIMER 3:
Formirati funkcijski fajl u kome se definie nova funkcija
f ( x ) = e x + sin x pod imenom fa, a da se vrednost nezavisno
promenljive unese korienjem naredbe input (tekst).
% ime nove funkcije je fa
function y=fa
x=input('unesi promenljivu x=')
y=exp(x)+sin(x);
Pozivanjem funkcije fa i odgovorom na postavljeno pitanje
dobiemo odgovor:
>> fa
unesi promenljivu x=3
x=
3
ans =
20.2267
- 56 -
PRIMER 4:
Formirati funkcijski fajl pod imenom ime kojim se odreuje
broj slova u nekom imenu.
% funkcijski fajl ime kojim se odredjuje broj slova u imenu
function br(x)
x=input('unesi svoje ime:','s')
% oznaka s u naredbi oznacava da se unose stringovi
n=length(x);
disp(['broj slova u imenu je',num2str(n)])
>> ime
unesi svoje ime: ivana
x=
ivana
broj slova u imenu je 5
U naredbi disp, tekst je definisan kao dvodimenzioni vektor, ija
je prva komponenta znak (string), a druga koja je kao rezultat
programa broj koji mora da se naredbom num2str prebaci u
znak (string).
PRIMER 5:
Formirati funkcijski fajl pod imenom element, za
izraunavanje elemenata matrice n m , gde je aij = sin ( 2ij i )
za i = j , a aij = sin ( 2ij i ) +
1
za i j .
2
PRIMER 6 :
Formirati funkcijski fajl pod imenom matrica, za definisanje
matrice prizvoljnog reda n m , iji su elementi dati funkcijskim
fajlom pod imenom element.
% formiranje matrice ciji su elementi
% sinusne funkcije iz fajla pod imenom element
% ime novog fajla je matrica
function A=matrica(m,n)
for i=1:m
for j=1:n
A(i,j)=element(i,j);
end,end
Ako elimo da definiemo neku odreenu matricu na primer
matricu sa 2 vrste i 3 kolone moemo postupiti na sledei nain:
>> matrica(2,3)
ans =
0.8415 0.6411 -0.4589
1.4093 -0.2794 -0.0440
- 58 -
VEBA:
1.
2.
Formirati funkcijski fajl pod imenom
ime kojim svako unosi svoje ime i prezime,
prebrojava broj slova i ako je taj broj manji od 15
odreuje moduo i argument kompleksnog broja
z = 1 + 3i , ako je broj slova izmeu 15 i 20 definie
jedininu matricu 3 3 , a ako je vei od 20
izraunava sumu kvadrata prvih 100 prirodnih
brojeva.
- 59 -
- 60 -
- 61 -
PRIMER 2:
Odrediti polinom ija su reenja x = 2 i x = 3 .
>> r=[2 3];
>> p=poly(r)
p=
1
-5
PRIMER 3:
Sabrati polinome p1 ( x ) = 3 x 3 2 x 2 4 x + 6 i
p2 ( x ) = x 4 + 2 x 3 7 x 2 3 x + 1 .
>> p1=[3 -2 -4 6];
>> p2=[1 2 -7 -3 1];
>> p=[0 p1]+p2
p=
1
-9
-7
PRIMER4 :
Pomnoiti polinome p1 i p2 .
>> c=conv(p1,p2)
c=
3
4 -29
49 -32 -22
- 63 -
x=fzero('funkcija',x0)
x je skalarna vrednost
Funkcija se unosi u obliku znakovnog niza ( string ). Funkcija
se prethodno moe definisati u funkcijskom fajlu , a ime
funkcije se zadaje u obliku znakovnog niza.
x0 je vrednost promenljive x u blizini mesta gde funkcija
preseca x osu.
x0 moe biti skalar ija je vrednost bliska taki preseka funkcije
sa x osom ili vektor sa dva elementa ije su vrednosti take na
suprotnim stranama reenja. Ako ima vie reenja svako se
izraunava za sebe.
Poetno reenje x0 se moe odrediti grafikim putem.
Funkcija fzero pronalazi samo reenja u kojima funkcija preseca
x osu.
- 64 -
PRIMER 6:
Nai reenja jednaine xe x = 0.2
Priblina reenja odreujemo grafiki.
>> fplot('x*exp(-x)-0.2',[0 8]);grid
- 65 -
xj =
Dj
D
, ( D 0, j = 1, 2,..., n) ,
lanovima b j .
Navedene formule su poznate Kramerove formule.
PRIMER 7 :
Kreirati fajl Cramer za reavanje sistema linearnih
algebarskih jednaina koristei Kramerovo pravilo.
% Novi fajl pod imenom Cramer
%Resavanje sistema AX=B Cramerovim pravilom
function X=Cramer(A,B)
[m,n]=size(A);
if m ~= n,
error('Matrica nije kvadratna'),
end
if det(A)==0,
error('Matrica je singularna'),
end
for j=1:n,
C=A; C(:,j)=B; X(j)=det(C)/det(A);
end
X=X';
- 66 -
PRIMER 8:
Koristei kreirani fajl Cramer reiti sistem jednaina
2x 4 y z = 0
x + 2 y + 2z = 6
3x + 6 y
=6
>> A=[2 4 1 ; 1 2 2 ; 3
6 0]
>> B=[0 ; 6 ; 6]
>> Cramer(A , B)
ans =
2
0
4
PRIMER 9 :
Koristei kreirani fajl Cramer reiti sistem jednaina
2 x + 3 y + z = 1
x + 3y 2z = 1 .
x 6y + z
=3
PRIMER 10 :
Reiti sistem jednaina matrinom metodom
2 x + 3 y + z = 1
x + 3y 2z = 1 .
x 6y + z
=3
B=
1
1
3
>> X=INV(A)*B
X=
-2.5000
-0.5000
-2.5000
- 68 -
PRIMER 11:
Reiti sistem jednaina matrinom metodom i koristei kreirani
fajl Cramer. Uporediti ovako dobijena reenja.
2 x + 3 y + z = 11
3 x + 5 y + 2 z = 19
x + 2 y + 3 z = 14
>> M=[2, 3, 1 ; 3, 5, 2 ; 1, 2, 3]
M=
2 3 1
3 5 2
1 2 3
>> N=[11 ; 19 ; 14]
N=
11
19
14
>> X1=inv(M)*N
X1 =
1.0000
2.0000
3.0000
>> X2=Cramer(M,N)
X2 =
1
2
3
- 69 -
VEBA:
1. Odrediti koeficijente polinoma
y = ( x 1)( x 2 )( x 3) .
2.
Reiti jednainu x 4 2 x 2 + 1 = 0 .
3.
- 70 -
- 71 -
PRIMER 1:
Napisati
15 kao simboliku, a zatim kao numeriku
promenljivu.
> s=sym('15')
s=
15
>> s=15
s=
15
- 72 -
PRIMER 3:
Napisati simboliki izraz f = ax 2 + bx + c .
>> f=a*x^2+b*x+c
f=
a*x^2+b*x+c
> a=sym(3);b=sym(4);
>> c=2/a+sqrt(b)
c=
8/3
>> a=3;b=4;
>> c=2/a+sqrt(b)
c=
2.6667
Napomena: Ako raunamo sa simbolikim promenljivim
rezultat je tana brojna vrednost i vidi se na ekranu bez uvlake,
a u drugom sluaju rezultat je priblina numerika vrednost.
- 73 -
s=solve(jednaina)
s=solve(jednaina, promenljiva )
PRIMER 5:
Reiti jednainu 2 x 5 = 0
> syms x
>> y=solve(2*x-5)
y=
5/2
Jednaina sadri jednu ulaznu simboliku promenljivu x , a
reenje je broj, dat kao simbolika promenljiva.
PRIMER 6:
Reiti jednainu ax 2 + bx + c = 0
>> syms x a b c
>> solve(a*x^2+b*x+c)
ans =
[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
- 74 -
ezplot(S)
ezplot(S,[xmin,xmax,ymin,ymax])
S je simboliki izraz krive koja se crta. U prvoj naredbi
ezplot(S) grafik se crta u domenu ( 2 , 2 ) , a u drugoj sami
zadajemo domen nezavisne promenljive x i zavisno
promenljive y .
- 76 -
PRIMER 10:
Nacrtati grafik funkcije y = x 2 + 2 x + 1 .
>> syms x
>> y=x^2+2*x+1;
>> ezplot(y)
x 2+2 x+1
50
40
30
20
10
0
-6
-4
-2
0
x
VEBA:
5.Reiti jednainu x 2 2 x = 0 .
6.Reiti jednainu ax 2 + 5bx 2 = 0 .
7.Reiti sistem jednaina 2 x y 1 = 0 i x + 2 y + 4 = 0 .
8.Nacrtati funkciju y = e x + 1 .
9. Ispitati uzajamni poloaj kruga x 2 + y 2 = 1 i pravih
a) x + y 4 = 0 ,
b) x + y 1 = 0 ,
c) x + y 2 = 0 .
Zadatak uraditi raunski i grafiki.
- 77 -
- 78 -
limit(f,a)
gde je f funkcija, x nezavisna promenljiva , a vrednost kojoj
tei nezavisno promenljiva x .
PRIMER 1:
Nai graninu vrednost funkcije lim
x 1
>> syms x
>> limit( (x.^2-1)/(x.^2+2*x-3),1)
ans =
1/2
- 79 -
x2 1
.
x + 2x 3
2
PRIMER 2:
x2 1
.
x x 2 + 2 x 3
>> syms x
>> limit( (x.^2-1)/(x.^2+2*x-3),inf)
ans =
1
diff(f)
diff(f,n)
PRIMER 3:
Nai prvi izvod funkcije y = x 3 sin x .
>> y='x.^3*sin(x)';
>> diff(y)
ans =
3*x^2*sin(x)+x^3*cos(x)
>> pretty(ans)
2
3
3 x sin(x) + x cos(x)
- 80 -
PRIMER 4:
Nai drugi izvod zadate funkcije.
>> syms x
>> y=x.^3*sin(x);
>> diff(y,2)
ans =
6*x*sin(x)+6*x^2*cos(x)-x^3*sin(x)
PRIMER 5 :
Odrediti ekstremne vrednosti funkcije
>> syms x
>> y=x/exp(x);
>> d=diff(y)
d=
1/exp(x)-x/exp(x)
>> pretty(d)
1
x
------ - -----exp(x) exp(x)
>> s=solve(d)
s=
1
>> y1=1/exp(1)
y1=
0.3679
- 81 -
y=
x
.
ex
PRIMER 6 :
Odrediti ekstremne vrednosti funkcije
y = e x ( 3x 2 x 2 ) .
>> y=exp(x)*(3*x-2*x.^2)
>> d=diff(y)
d=
exp(x)*(3*x-2*x^2)+exp(x)*(3-4*x)
>> s=solve(d)
s=
1
-3/2
>> y1=exp(1)*(3*1-2*1.^2)
y1 =
2.7183
>> y2=exp(-3/2)*(3*(-3/2)-2*(-3/2).^2)
y2 =
-2.0082
PRIMER 7 :
Nacrtati funkciju y =
x2
i tekstom opisati sliku.
x2
>> syms x
>> y=x.^2/(x-2);
>> limit(y,2)
ans =
NaN
>> limit(y,inf)
ans =
Inf
>> solve(y)
ans =
- 82 -
0
0
>> ezplot(y)
>> grid, hold on
>> gtext('nula(0,0)')
>> d=diff(y)
d=
2*x/(x-2)-x^2/(x-2)^2
>> s=solve(d)
s=
0
4
>> y1=0.^2/(0-2)
y1 =
0
>> y2=4.^2/(4-2)
y2 =
8
>> gtext('max(0,0)')
>> gtext('min(4,8)')
>> xlabel('x osa')
>> ylabel('y osa')
x 2/(x-2)
20
15
10
min(4,8)
y osa
5
max(0,0)
nula(0,0)
-5
-10
-15
-6
-4
-2
0
x osa
- 83 -
VEBA:
x
.
x 1
x
2.Izraunati lim 2
.
x 1 x 1
1.Izraunati lim
x
- 84 -
Opis
Geomean
Geometrijska sredina
Harmmean
Harmonijska sredina
Mean
Aritmetika sredina
Median
Trimmean
- 85 -
1.
PRIMER:
Opis
iqr
Interkvartilna razlika
mad
range
std
Standardna devijacija
var
Varijansa
- 86 -
2.PRIMER:
Nai mere disperzije ( rasprenosti ) vektora x.
>>x = [ 1 5 2 4 7 3 9 6 ]
x=
1 5 2 4 7 3 9 6
stats = [ iqr(x) mad(x) range(x) std(x) var(x) ]
stats =
4.0000 2.1250 8.0000 2.6693 7.1250
- 87 -
- 88 -
Opis
bar(x)
barh(x)
bar3(x)
pie(x)
pie3(x)
- 89 -
2.
PRIMER:
>> barh(x)
- 90 -
>> bar3(x)
8
0
1
2
3
4
5
6
>> pie(x)
4%
13%
9%
22%
35%
17%
- 91 -
l>> pie3(x)
13%
4%
9%
35%
22%
17%
- 92 -
x+ y+ z =6
3 x + y 2 z = 1
odreena jednainom z z + i z z 2 = 0 .
- 93 -
- 94 -
11
1 k
2k
20. Formirati funkcijski fajl pod imenom ime kojim svako unosi svoje
ime i prezime, prebrojava broj slova i ako je taj broj manji od 15
odreuje moduo kompleksnog broja z = 1 + 3i , ako je broj slova
izmeu 15 i 20 definie jedininu matricu 3x3, a ako je vei od 20
izraunava sumu kvadrata prvih 1000 prirodnih brojeva.
- 95 -
21. Formirati funkcijski fajl pod imenom godine kojim svako unosi
svoj datum i godinu roenja ime, prebrojava broj simbola i ako je
taj broj manji od 15 odreuje argument kompleksnog broja z = 1 + i ,
ako je broj slova izmeu 15 i 20 definie je nultu matricu 3x3, a ako
je vei od 20 izraunava sumu prvih 1000 prirodnih brojeva.
22. Formirati funkcijski fajl pod imenom mesto kojim svako unosi
svoje ime mesta roenja i optinu, prebrojava broj slova i ako je taj
broj manji od 15 odreuje konjugovano kompleksni broj, broja
z = 1 + 3i , ako je broj slova izmeu 15 i 30 definie maginu
matricu 3x3, a ako je vei od 20 crta funkciju y = ln x .
23. Formirati funkcijski fajl pod imenom mesto kojim svako unosi
svoje ime mesta roenja i optinu, prebrojava broj slova i ako je taj
broj manji od 15 izraunava moduo kompleksnog broja
1 2
matricu, matrice , A =
, a ako je vei od 20 crta funkciju
2 3
y = ex .
2x
. Tekstom opisati
x +1
2
sliku.
x2 4
. Tekstom opisati
x2 + 4
sliku.
- 96 -
1 x2
. Tekstom opisati
x2
2 x3
. Tekstom opisati
x2 + 1
sliku.
najveu
( 2 x 3) 12 ( 3x 2 )
ln x
. Tekstom opisati sliku.
x
najmanju
vrednost
na intervalu [ 3, 6] . Slika.
funkcije
x 3
+
3 x
na
2x + 6 y + 5z = 2
6x + 5 y + 6z = 1
ima jedinstveno reenje, a zatim reiti sistem matrinom metodom.
- 97 -
2 x 3 y + z = 1
x+ y+z =6
3 x + y 2 z = 1
a zatim reiti sistem primenom Kramerovog pravila.
1 2 0
1 2
A = 1 1 0 , B = 0 2 , C = , D = 6 .
3
3 1 2
0 1
9
41. Izraunati zbir kvadrata prvih 1000 prirodnih brojeva.
- 98 -
help
demo
clc
clear
who
whos
size
format
load
save
delete
home
quit
exit
pause
plus.
minus.
mnoenje.
mnoenje element po element.
stepenovanje.
stepenovanje element po element.
deljenje udesno.
deljenje ulevo.
za pozivanje funkcija i redosled operacija.
definiu vektore i matrice.
decimalni zarez.
nastavlja red.
razmak izmeu elemenata i argumenata funkcije.
>
>=
<=
~=
&
|
~
vee.
vee ili jednako.
manje ili jednako.
nije jednako.
logiko i.
logiko ili.
logiko ne.
rezultat.
= 3.14.....
kompleksna jedinica , 1 .
nije numerika vrednost.
beskonano.
apsolutna vrednost.
kvadratni koren.
sinus.
kosinus.
tangens.
kotangens.
eksponencijalna funkcija osnove e.
prirodni logaritam.
dekadni logaritam.
konjugovano kompleksni broj.
imaginrni deo kompleksnog broja.
realni deo kompleksnog broja.
- 100 -
- 101 -
Simbolika matematika
diff
double
ezplot
pretty
simple
solve
subs
sym
syms
diferenciranje.
pretvara broj simbolikog oblika u numeriki.
crtanje krive koja predstavlja izraz.
prikazuje se izraz u matematikom formatu.
uproavanje izraza.
reavanje jednaina ili sistema jednaina.
promenljive u zadatom izrazu zamenjuje
vrednostima.
formira se simboliki objekat.
formira se simboliki objekat.
- 102 -