- ori´c
Dragan S. D
MATEMATIKA
I MATLAB
Laboratorijske veˇzbe
Viˇsa elektrotehniˇcka ˇskola
Beograd, 2003.
- ori´c
Dr Dragan D
MATEMATIKA i
MATLAB
Laboratorijske veˇ
zbe
Recenzenti
- urica Jovanov
Dr D
Ana Savi´c
Izdavaˇc
Viˇsa elektrotehniˇcka ˇskola
Beograd, Vojvode Stepe 283
Nastavniˇcko ve´ce Viˇse elektrotehniˇcke ˇskole u Beogradu odobrilo je
izdavanje i koriˇs´cenje ovog priruˇcnika u nastavi.
CIP - Katalogizacija u publikaciji
Narodna biblioteka Srbije, Beograd
004.42MATLAB(075.8)(076)
- ori´c, Dragan S.
D
Matematika i MATLAB: Laboratorijske veˇzbe /
- ori´c.- Beograd: Viˇsa elektrotehniˇcka ˇskola,
Dragan S. D
2003 (Beograd: Akademska ˇstampa).- 79 srt.; 26 cm
Tiraˇz 700.
ISBN 86 - 82589 - 80 - X
a) Aplikativni program "MATLAB" - Veˇzbe
COBISS - ID 104397068
Student
Broj indeksa
ˇ
Skolska
godina
Imena fajlova sa veˇ
zbama
Broj indeksa je ime svakog od 16 fajlova (za svaki termin po jedan), a
njihove ekstenzije su 1, 2, . . . , 16. Fajlovi se otvaraju na poˇcetku svakog
termina naredbom
>> diary imefajla
a zatvaraju na kraju rada naredbom
>> diary off
Parametri za izradu zadataka
a=
b=
c=
p=
q=
(broj Vaˇseg indeksa)
(mesec Vaˇseg rodenja,
na primer b = 2, ako ste rodeni
u
februaru)
(dan Vaˇseg rodenja,
na primer c = 15, ako ste rodeni
15.
u mesecu)
(broj slova Vaˇseg prezimena)
(broj slova Vaˇseg imena)
Evidencija izrade veˇ
zbi
Veˇzba br.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Datum
Overa
Napomena
PREDGOVOR
Laboratorijske veˇzbe iz matematike sastavni su deo predmeta Numeriˇcka matematika koji se sluˇsa na prvoj godini smera Nove raˇcunarske tehnologije, na Viˇsoj
elektrotehniˇckoj ˇskoli u Beogradu. Kao ˇsto i sam naziv govori, one se odrˇzavaju u
raˇcunarskoj laboratoriji, a obuhvataju neke teme diferencijalnog i integralnog raˇcuna
i osnovne probleme numeriˇcke matematike - reˇsavanje algebarskih i transcendentnih
jednaˇcina i sistema, aproksimaciju i interpolaciju funkcija, kao i numeriˇcko reˇsavanje
diferencijalnih jednaˇcina i sistema. Efikasno reˇsavanje ovih problema danas je nezamislivo bez mo´cnih programskih paketa kao ˇsto su MATHEMATICA, MATHCAD,
MAPLE ili MATLAB.
Ove veˇzbe pripremljene su za rad sa programom MATLAB. Zbog toga su u prvih
nekoliko tema dati primeri za upoznavanje sa programskim naredbama, uglavnom
onim koje su dovoljne za dalji rad. MATLAB, naravno, ima mnogo ve´ce mogu´cnosti
od onih koje su ovde prikazane. Vode´ci univerziteti u svetu ga ve´c odavno koriste, ne
samo u kursevima numeriˇcke analize, nego i u kursevima svih ostalih matematiˇckih
i tehniˇckih predmeta.
Naravno, za uspeˇsan rad na veˇzbama potrebno je znanje iz linearne algebre i
diferencijalnog raˇcuna funkcija jedne i viˇse promenljivih (u obimu koji se izlaˇze u
prvom semestru), kao i teorijske osnove numeriˇckih metoda. Nadam se da ´ce se
studenti pre dolaska na veˇzbe upoznati sa problemom koji se reˇsava, algoritmom,
uslovima konvergencije i naˇcinima za procenu greˇski pri numeriˇckim izraˇcunavanjima.
Beograd, 2003.
Autor
ˇ
SADRZAJ
Programski paket MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Laboratorijske veˇ
zbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Brojevi i izrazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2. Matrice i vektori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. Dvodimenziona grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4. Diferencijalni raˇcun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5. Integralni raˇcun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6. Reˇsavanje jednaˇcina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7. Metoda iteracije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8. Jednaˇcine - obnavljanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9. Linearni sistemi - I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
10. Linearni sistemi - II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
11. Nelinearni sistemi - I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
12. Nelinearni sistemi - II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
13. Interpolacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
14. Aproksimacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15. Diferencijalne jednaˇcine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
16. Sistemi diferencijalnih jednaˇcina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
17. Razni problemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
M - fajlovi koriˇ
s´
ceni u veˇ
zbama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Spisak naredbi koje su koriˇ
s´
cene u veˇ
zbama . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Kratak opis nekih MATLAB naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Ispitna pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
PROGRAMSKI PAKET MATLAB
Programski paket MATLAB razvila je softverska ku´ca Math Works Inc., a sluˇzi
za sloˇzena numeriˇcka izraˇcunavanja i grafiˇcko predstavljanje rezultata. Osnovu programa ˇcine raniji paketi LINPACK i EISPACK i prvenstveno je bio namenjen inˇzenjerima koji se bave analizom i sintezom sistema upravljanja. Medutim,
vremenom
je program dobio veliki broj novih matematiˇckih funkcija, a razvijeni su i posebni
paketi, takozvani Toolboxovi, za razliˇcite oblasti primene. Tako postoji SYMBOLIC
MATH za simboliˇcka izraˇcunavanja u matematici, SIMULINK za modeliranje i simulaciju statiˇckih i dinamiˇckih sistema, ali isto tako i Toolboxovi za parcijalne diferencijalne jednaˇcine, obradu signala, identifikaciju, optimizaciju, statistiku, finansijske
proraˇcune, neuronske mreˇze, komunikacije i mnoge druge probleme primenjene matematike. Aktuelna verzija (MATLAB 6) ima preko 30 takvih paketa, a i sami korisnici
mogu razvijati sopstvene Toolboxove. Pored toga, program ima i API (Application
- MATLAB-a i programa pisanih u
Program Interface) koji ostvaruje vezu izmedu
C-u ili Fortranu.
Kao programski jezik, MATLAB je vrlo jednostavan za koriˇs´cenje. On ima
mogu´cnost direktnog izvrˇsavanja jedne naredbe (interaktivno) ili bloka naredbi smeˇstenih u script fajl. Nakon startovanja programa pojavljuje se komandni prozor u
kojem se ostvaruje komunikacija korisnika i programa. Dodatno se mogu otvoriti:
grafiˇcki prozor, prozor za editovanje i help prozor. Na vrhu komandnog prozora su
padaju´ci meniji, a odmah ispod njih Toolbar. Glavni delovi padaju´ceg menija su
File, Edit, View, Web, Windows i Help. Standardni prompt je >>.
Za razliku od drugih programskih jezika, osnovni objekat MATLAB-a je matrica
ˇ i brojevi su matrice dimenzija 1 × 1. Izrazi se u MATLAB-u
brojeva ili simbola. Cak
unose na prirodan naˇcin, odnosno kao i prilikom pisanja na papiru, a osnovni elementi
izraza su brojevi, promenljive, znaci operacija i imena funkcija. Najmanji MATLAB
broj je 2−1022 , a najve´ci 21023 . Oznaka za imaginarnu jedinicu je i ili j, za π je oznaka
pi, a za ∞ je inf. Format zapisa brojeva bira se naredbom format. Promenljive u
MATLAB-u nije potrebno deklarisati, a ime promenljive moˇze da sadrˇzi 31 karakter,
pri ˇcemu prvi mora biti slovo (malo ili veliko) a ostali su slova, brojevi ili znak
. Znaci za operacije su standardni: + (sabiranje), − (oduzimanje), ∗ (mnoˇzenje),
/ (deljenje), b (stepenovanje) i 0 (transponovanje). Za razliku od ovih operacija
postoje i takozvane element-by- element operacije koje se pozivaju sa taˇckom ispred
znaka operacije. Na primer, za matrice A i B istih dimenzija A.*B je matrica koja se
dobija tako ˇsto se svaki element matrice A mnoˇzi odgovaraju´cim elementom matrice
B. Sliˇcno, A.b 2 znaˇci da se svaki element matrice A kvadrira. Postoji veliki broj
matematiˇckih funkcija koje su ugradene
u MATLAB, kao ˇsto su apsolutna vrednost
(abs), koren (sqrt), trigonometrijske (sin, cos, tan), inverznetrigonometrijske
(asin, acos, atan) i druge.
MATLAB kao kalkulator
Kada se u komandnom prozoru otkuca naredba i pritisne Enter, ona se odmah
izvrˇsava. Ako ne ˇzelimo da se rezultat prikaˇze na ekranu, onda posle naredbe treba
uneti znak ;. U jednoj liniji moˇze da se navede i viˇse naredbi, a i jedan izraz moˇze
da se unosi u viˇse linija, pri ˇcemu se sa . . . oznaˇcava da je nastavak u slede´coj liniji.
Ovakav naˇcin rada MATLAB-a podse´ca na kalkulator. Na primer, naredbom
>> 1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9
dobijamo
ans=
1.9290
Rezultat, naravno, moˇze da se dodeli nekoj promenljivoj. Na primer,
>> x=sin(pi/4)+cos(pi/3);
Ako u komandnoj liniji otkucamo >> x dobi´cemo vrednost promenljive x.
Unos matrica
Matrice u MATLAB mogu da se unesu na viˇse naˇcina: navodenjem
svih elemenata
(vrsta po vrsta), pozivanjem naredbi za manipulacije sa matricama i naredbi za
generisanje specijalnih
m-fajlova ili uˇcitavanjem iz drugih fajlova.
matrica, kreiranjem
Na primer, matricu 1 2 3 4 moˇzemo da unesemo i smestimo u A naredbom
5 6 7 8
>> A = [1 2 3 4; 5 6 7 8]
ili naredbom
>> A = [ 1 2 3 4
5 6 7 8]
Medutim,
istu matricu moˇzemo da unesemo i naredbom
>> A=[1:4; 5:8]
Elementi matrice mogu da se pozovu navodenjem
imena matrice i indeksa elemenata.
Na primer, A(2,2) ´ce dati element 6 matrice A.
Dokumentacija
MATLAB ima sasvim dobar demo i tour iz kojih korisnik pri prvom susretu
sa programom moˇze da stekne poˇcetni utisak o mogu´cnostima programa, ali i da
se upozna sa osnovnim naredbama i da dobije ideju ˇsta bi mogao i sam da proba.
Za dalja objaˇsnjenja korisnik moˇze da koristi help ili dokumentaciju koja se u obliku pdf fajlova isporuˇcuje sa programom i koja moˇze i da se preuzme sa adrese
www.mathworks.com.
ˇ
LABORATORIJSKE VEZBE
U ovom praktikumu je dato 17 veˇzbi kroz koje treba, koriste´ci programski paket
MATLAB, reˇsavati razne probleme iz matematike koji su u okviru sadrˇzaja predmeta Inκ
zenjerska matematika i Numeriκ
cka matematika. Neke od tih problema
studenti su ve´c upoznali u prvom semestru, a neke upoznaju paralelno s veˇzbama
u toku drugog semestra. Pored ponavljanja i produbljivanja delova diferencijalnog
i integralnog raˇcuna i upoznavanja sa numeriˇckim metodama u linearnoj algebri,
teoriji aproksimacija i teoriji diferencijalnih jednaˇcina, studenti imaju priliku i da
savladaju osnovne naredbe programa MATLAB, kao i neke naredbe za simboliˇcko
izraˇcunavanje iz Toolboxa SYMBOLIC MATH.
U 1. veˇzbi kroz operacije sa brojevima i izrazima uvode se MATLAB naredbe
za te operacije, naredbe za formate zapisa brojeva (format, format long, format
short, format rat, vpa), kao i naredbe za transformacije izraza (factor, collect, expand, simple).
U 2. veˇzbi daju se naredbe za unos i manipulacije sa matricama i vektorima, kao
i naredbe za operacije sa matricama.
U 3. veˇzbi koriste se naredbe za crtanje taˇcaka, linija i grafika funkcija. Osnovne
naredbe za to su plot, fplot i polar. Pored toga uvode se i naredbe kojima se
realizuju petlje u programu (for, while i if), kao script fajlovi.
U 4. i 5. veˇzbi koriste se naredbe diff, int i solve za analitiˇcko nalaˇzenje
izvoda, integrala i reˇsenja jednaˇcina. Pored ranije upoznatih naredbi koristi se i
naredba ezplot.
U veˇzbama 6-8. numeriˇckim metodama se reˇsavaju algebarske i transcendentne
jednaˇcine, pri ˇcemu se koriste uglavnom ve´c upoznate naredbe.
Linearni sistemi u veˇzbama 9 i 10 reˇsavaju se i analitiˇcki i numeriˇcki. Dati su
ˇ
programi za Kramerovo pravilo, Gaus-Zordanovu
metodu i za metodu iteracije.
Nelinearni sistemi reˇsavaju se u veˇzbama 11 i 12, pri ˇcemu se uvode i naredbe za
3D grafiku (mesh, surf, surfl, contour).
U 13. veˇzbi koriste se naredbe poly i polival za interpolaciju. Dat je i program
za Lagranˇzov interpolacioni polinom.
U 14. veˇzbi reˇsava se problem aproksimacije razliˇcitim funkcijama. Dati su
programi za linearnu i polinomialnu regresiju.
U veˇzbama 15 i 16 numeriˇcki se reˇsavaju diferencijalne jednaˇcine i sistemi diferencijalnih jednaˇcina, pri ˇcemu se koristi naredba ode23.
Poslednja veˇzba sadrˇzi razne, sloˇzenije, primere za obnavljanje svih prethodnih
tema.
Za realizaciju svih ovih veˇzbi korˇs´ceno je svega stotinak MATLAB naredbi. Ve´cina od njih (preko 80) data je kroz primere prvih pet veˇzbi, a u ostalim veˇzbama
uvode se samo po jedna ili dve nove naredbe.
1. BROJEVI I IZRAZI
Naredbe demo, help, exit, ...
Za prvo upoznavanje sa MATLAB - om postoje naredbe demo i tour, a naredbom
help naredba
dobijamo kratak opis pojedinih naredbi. Iz programa se izlazi naredbom exit ili quit.
Isprobajte, na primer,
(1) help demo
(2) help *
(3) help sqrt
(4) help pi
(5) help eps
(6) help NaN
(7) help inf
(8) help i
(9) help ans
Brojevi i brojevni izrazi
Za razliˇcite formate zapisa realnog broja sluˇze naredbe
format, format long, format long e, format short e, format rat, vpa.
√
Upoznajte ih na primeru brojeva π i 2. U jednoj liniji mogu da se unesu i viˇse naredbi
odvojene znakom , ili ;. U poslednjem sluˇcaju naredba se ispred znaka ; izvrˇsi, ali se
rezultat ne prikazuje na ekranu.
(1)
(2)
(3)
(4)
(5)
(6)
(7)
pi, a=sqrt(2)
format long, pi, a
format long e, pi, a
format short e, pi, a,
format, pi, a
format rat, pi, a
vpa pi 50, vpa(a,100)
Kompleksni brojevi z = x + iy i w = reiϕ unose se naredbama
z=x+y*i, w=r*exp(i*fi),
13
pri ˇcemu se moduo, argument, realni i imaginarni deo i konjugovano kompleksni broj
dobijaju naredbama
abs, angle, real, imag, conj.
Na primer:
(1) z=1+i, abs(z), angle(z), conj(z)
(2) w=2*exp(i*pi/6), real(w), imag(w), conj(w),
Brojevni izrazi dobijaju se pomo´cu brojeva, znakova za operacije i funkcijskih imena kao
ˇsto su:
sqrt, exp, log, log10, sin, cos, tan, asin, atan,...
(1) 2/2*3
(2) 6-8/2+3
2-2
(3) 3
2
2
(4) sin(log(sqrt(3)))
(5) a=1/2+2/3+3/4+5/6+7/8+8/9; a, rat(a)
(6) cos(2*pi/5)+cos(4*pi/5)
(7) i
12345
(8) sqrt(1+i*sqrt(3))+sqrt(1-i*sqrt(3))
(9) (1+i)
6-(1-i)
6
(10) log(i), i
i
Simboliˇ
cki izrazi
Ako u izrazu uˇcestvuju i promenljive, onda one moraju da se deklariˇsu kao simboliˇcke
promenljive, ˇsto moˇze da se uradi naredbom syms. Za rad sa izrazima mogu da se koriste
i naredbe
collect, expand, factor, simple.
(1) syms x y, factor(x
3+y
3)
(2) f=expand((x+1)*(x+2)+(x+3)*(x+4)); f
(3) simple((x
3-1)/(x-1))
(4) simple(cos(3*acos(x))
(5) simple(tan(2*atan(x))
√
√
√
√ 2
x− y
x x−y y √
√
moˇze da se uprosti naredbama
+ xy
(6) Izraz
√
x−y
x− y
syms x y; a=sqrt(x); b=sqrt(y);
A=(x*a-y*b)/(a-b)+sqrt(x*y); B=(a-b)/(x-y);
C=A*B
2; simple(C)
14
Zadaci
1. Utvrditi ˇsta je ve´ce eπ ili π e .
22
po veliˇcini.
2. Brojeve 2222 , 22 , 222 , 22 , 2222 , 222 , 2222 poredati
22
3. Uprostiti izraz sin4
2
2
π
3π
5π
7π
+ sin4
+ sin4
+ sin4 .
8
8
8
8
4. Izraˇcunati |z | ako je z =
(1 + i)100
.
(1 − i)96 − i(1 + i)98
5. Izraziti sin nx za n = 2, 3, 4, 5 u funkciji sin x i cos x.
15
2. MATRICE I VEKTORI
Unos matrica
Elementi matrice unose se po vrstama, pri ˇcemu se vrste razdvajaju znakom ; ili pomo´cu
tastera enter. Na primer:
(1) A=[1 2 3 4; 5 6 7 8; 9 10 11 12]; A
(2) syms a b; B=[a b; -b a]; B
Vektori su matrice kolone ili matrice vrste, pa se unose na isti naˇcin. Na primer:
(3) a=[1 2 3 4 5]; a
(4) b=[1; 2; 3; 4; 5]; b
(5) c=[1+i 1 -i 1-i]; c
Medutim,
moˇze i
(6) x=1:10, x
(7) y=3:2:15;, y
(8) z=linspace(0,1,10); z
(9) u=logspace(0,2,11); u
(10) v=0:pi/10:2*pi; v
Informacije o dimenzijama vektora i matrica daju naredbe length, size i numel.
Specijalne matrice
Za specijalne matrice, kao ˇsto su nula matrica, jediniˇcna matrica i matrica ˇciji su svi
elementi jedinice, postoje naredbe zeros, eye i ones.
(1) a=zeros(2,3); a
(2) b=zeros(5); b
(3) c=eye(4); c
(4) d=ones(2,5); d
(5) e=ones(3); e
Jedna od funkcija naredbe diag je formiranje dijagonalne matrice.
(6) D=diag([1 2 2]); D
(7) a=1:5; A=diag(a); A
16
Za generisanje matrice ˇciji su elementi sluˇcajni brojevi, sa uniformnom raspodelom na
intervalu (0, 1) ili normalnom raspodelom sa nultom srednjom vrednoˇs´cu i jediniˇcnom
varijansom, postoje naredbe rand i randn. Postoji i naredba magic za generisanje magiˇcne
matrice.
(8) A=rand(5); A
(9) B=randn(5); B
(10) C=magic(10); C
Manipulacije elementima matrica
Elemenat matrice koja je uneta moˇze da se izdvoji ili promeni navodenjem
odgovaraju´cih
indeksa. Na isti naˇcin moˇze da se izdvoji i blok elemenata ili podmatrica i da se dodeli
nekoj drugoj matrici. Neka su matrica A i vektor x generisani naredbama
A=[1:5; 6:10; 11:15; 16:20]; x=10:-1:1;
Uoˇcite koji su efekti slede´cih naredbi:
(1) x(3); x(2:5); x(5:end); x(2:2:8); x(6:-1:3);
(2) x([ 2 8 3 5]);
(3) A(3,2); B=A; B(3,2)=1; B(:,2)=5; B(;,2)=[];
(4) A(1:3,4); A(3,:); A(2:4,1:3);
(5) B=A([2 3],[1 4]); C=A(:,2:4);
(6) B=zeros(4,5); B(:,[1 3 5])=A(:,2:4);
(7) B=A; B(1,[1 3])=pi; B([1 3],:)=pi/2;
(8) a=[1 3]; B=A(a,a);
(9) B=A; B=A(:,3:-1:1);
Naredbom a=A(:) od kolona matrice A formira se vektor a. Elementi date matrice mogu
i da se prepakuju u matricu drugih dimenzija naredbom reshape.
(10) B=reshape(A,5,4); C=reshape(A,2,10);
Najmanji i najve´ci element vektora dobijaju se naredbama min i max, a iste naredbe za
matricu daju vektore najmanjih i najve´cih vrednosti po kolonama.
(11) x=randperm(10); min(x), max(x)
(12) A=[x; x; x; x]; min(A), max(A)
(13) [minA,i]=min(A); [maxA,j]=max(A); minA, i, maxA, j
(14) min(min(A)), max(max(A)), min(max(A)), max(min(A))
17
Naredbom sort elementi vektora mogu se urediti po rastu´cem ili opadaju´cem redu.
(15) x=randperm(20); y=sort(x); y
(16) z=y(end:-1:1); z
U sluˇcaju matrice A, naredbom sort(A,1) ureduju
se elementi po kolonama, a naredbom
sort(A,2) ureduju se elementi po vrstama.
Rang matrice dobija se naredbom rank.
(17) A=[2 -4 3 1 0; 1 -2 1 -4 2; 0 1 -1 3 1; 4 -7 3 -4 5]; rank(A)
Operacije sa matricama
Za standardne operacije sabiranja, oduzimanja, transponovanja, mnoˇzenja i stepenovanja
matrica koriste se znaci +, -, ’,*,
, inverzna matrica se dobija naredbom inv, a determinanta naredbom det.
(1) A=[1 4 -1; 2 0 1]; B=[-2 1 -1; 0 3 1]; C=A+B; C
(2) D=2*A-3*B; D
(3) E=A*B’; E
(4) A=[2 2 3; 1 -1 0; -1 2 1]; a=det(A); B=inv(A); a, B
Pored uobiˇcajenog mnoˇzenja matrica, postoji i mnoˇzenje matrica i vektora po principu
’element po element’, kao ˇsto je to sluˇcaj kod sabiranja i oduzimanja. U tom sluˇcaju ispred
znaka * stavlja se taˇcka.
(5) x=[1:5]; y=[2:6]; z=x.*y; z
(6) A=2*ones(3,4); B=3*ones(3,4); C=A.*B; C
Sliˇcno vaˇzi i za operacije deljenja i stepenovanja ’element po element’.
(7) y=1:10; [y y.
2 y.
3 y.
4]
(8) A=[1 2; 3 4]; B=[2 3; 4 5]; C=A./B; C
(9) A.
2, 2.
A, A.
A, A.
(A-1)
- raˇcuna za svaki element.
Ako je f neka od ugradenih
funkcija, onda se f(A) takode
(10) x=0:1/10:1; y=sin(x); z=exp(x); y, z
Karakteristiˇcni polinom i sopstvene vrednosti matrice dobijaju se naredbama poly i eig.
(11) A=[1 1 2; 3 2 3; 1 -1 0]; eig(A)
(12) syms a; A=[1 2 -1; 1 2 1; 1 2 a]; eig(A)
18
Zadaci
1. Formirati matricu dimenzija 50 × 100 ˇciji su svi elementi jednaki π.
2. Izraˇcunati zbir kvadrata prvih hiljadu prirodnih brojeva.
3. Generisati sluˇcajnu matricu reda 10, a zatim odrediti najve´ce elemente u svakoj
koloni i najmanji od njih, kao i najmanje elemente u svakoj koloni i najve´ci od njih.
Uporediti, zatim, tako dobijena dva broja.
4. Generisati sluˇcajnu matricu reda 10 i odrediti njoj inverznu matricu (zapisati samo
naredbe kojima ste to dobili).
5. Za matricu A=[a 1 0; 0 a 1; 0 0 a] odrediti njen deseti stepen.
a b + c 1
6. Izraˇcunati vrednost determinante b c + a 1 .
c a + b 1
19
3. DVODIMENZIONA GRAFIKA
Naredba plot
Naredba plot sluˇzi za crtanje linija u ravni. Upoznajte je, najpre, naredbom plotdemo.
Sa grafiˇckog displeja prelazi se na komandni pritiskom bilo koje tipke, a naredbom shg
vra´ca se teku´ci grafiˇcki displej.
Naredbom plot(y) dobija se izlomljena linija koja spaja susedne taˇcke sa koordinatama
(i, y(i)) za i = 1, 2, . . . , n gde je n dimenzija vektora y.
(1) y=[1 -1 1 -1 1 -1 1 -1 1]; plot(y)
(2) i=1:1:8, y(i)=i
2; plot(y)
Naredbom plot(x,y) dobija se izlomljena linija koja spaja susedne taˇcke sa koordinatama
(x(i), y(i)) za i = 1, 2, . . . , n, gde je n dimenzija vektora x i y. Ova naredba moˇze da se
koristi za crtanje grafika funkcija jedne promenljive. Izbor i boju linija i markiranje taˇcaka
videti sa help plot.
(3) plot([2 3],[3 5]), plot([2 3],[3 5],’ro’), plot([2 3], [3 5],’r-’)
(4) x=0:pi/100:2*pi; y=sin(xpppppnnnn); plot(x,y)
(5) hold on, plot(y,x)
(6) t=0:pi/100:pi/2; x=sin(t); plot(t,x), y=sin(x);
hold on, plot(t,y), z=sin(y); plot(t,z),
u=sin(z); plot(t,u), v=sin(u); plot(t,v)
(7) hold off, plot(t,x,t,y,t,z,t,u,t,v)
(8) a=sin(t+.25); b=sin(t+.5); plot(x,a,’r-’,x,b,’g--’)
Argumenti naredbe plot mogu da budu i matrice, pri ˇcemu se crtaju odgovaraju´ce kolone
matrica.
(9) w=[x;y;z;u;v]’; plot(t,w)
(10) a=rand(10); plot(a), plot(a(:,1)), plot(a(1,:))
(11) b=rand(10); plot(a,b)
(12) plot(eig(rand(10)),’o’)
(13) t=1:.02:1; A=(1:10)’*pi*t; plot(t,sin(A))
Ako je z vektor kompleksnih brojeva, onda je plot(z) isto ˇsto i plot(real(z),imag(z)).
(14) t=0:pi/8:2*pi; z=exp(i*t); plot(z), axis(’square’)
(15) t=0:pi/50:2*pi; z=exp(i*t); plot(z), axis(’square’)
20
- se lako crtaju naredbom plot.
Grafici parametarski datih funkcija takode
(16) t=-1:0.01:1; x=t.
2; y=t.
3; plot(x,y)
(17) t=0:0.001:2*pi; x=cos(2*t); y=sin(t); plot(x,y)
Naredba subplot
Naredbom subplot moˇzemo ekran podeliti na m × n delova i u svakom od njih prikazati
neki grafik.
(1) subplot(2,1,1), plot(u), subplot(2,1,1), plot(v)
(2) subplot(1,2,1), plot(u), subplot(1,2,1), plot(v)
(3) t=0:.01:2*pi; y=[sin(t)’; sin(2*t)’; sin(3*t)’; sin(4*t)’]
subplot(2,2,1), plot(y(:,1), subplot(2,2,2), plot(:,2),
subplot(2,2,3), plot(y(:,3), subplot(2,2,4), plot(:,4)
Naredba fplot
Naredbom fplot crta se grafik simboliˇcki date funkcije.
(1) f=’sin(x)’; fplot(f,[0 2*pi])
(2) fplot(’sin(cos(t))’,[0 2*pi]), grid
(3) [u,v]=fplot(’cos(sin(x))’,[0 2*pi]); plot(u,v), plot(v,u)
Naredba polar
Naredbom polar(phi, r) crta se funkcija zadata u polarnom koordinatnom sistemu sa
r = r(φ).
(1) phi=0:.01:2*pi; r=1+cos(phi); polar(phi,r)
(2) phi=0:.01:2*pi; r=sin(4*phi); polar(phi,r)
(3) phi=0:.01:6*pi; r=phi; polar(phi,r)
Naredbe for, while i if
Naredba for realizuje petlju, odnosno ponavljanje dela programa.
(1) for i=1:10, x(i)=i
3; end; x
(2) x=[]; for i=1:10, x=[x,i
3]; end; x
21
(3) for i=10:-2:0, x(i)=i; end; x
(4) for i=1:6
for j=1:4, x(i,j)=(-1)
(i+j); end
end
x
Naredba while ˇciji je opˇsti oblik
while relacija
naredbe
end
realizuje petlju koja se izvrˇsava sve dok je taˇcna navedena relacija. Znaˇcenja relacijskih
simbola <, >, <=, >=, ==, ∼= i logiˇckih operacija &, | i ∼ videti pomo´cu help naredbe.
1 1
1
(5) Neka je an = + + · · · + . Reˇsenje nejednaˇcine an < 0.8 (po n) moˇze da se
n
2 3
dobije naredbama:
s=0; n=1;
while s<0.8
n=n+1; s=s+1/n;
end;
n
Naredba if ˇciji je oblik
if relacija
naredbe
end
realizuje deo programa naredbe ako je taˇcna navedena relacija. Zadavanje viˇse uslova
postiˇze se naredbama if i elseif, odnosno else.
M - fajlovi
Niz MATLAB naredbi moˇze da se ˇcuva u fajlu sa datim imenom i estenzijom .m - to su
script fajlovi. Sam fajl sa naredbama moˇze da se kreira u bilo kom editoru, a izvrˇsava se
u MATLAB-u navodenjem
imena fajla.
(1) Kreirati fajl fibbr.m koji sadrˇzi naredbe za odredivanje
i crtanje Fibonaˇcijevih
brojeva manjih od 1000. Na primer:
fb=[1 1]; i=1;
while fb(i)+fb(i+1)<1000
22
fb(i+2)=fb(i)+fb(i+1); i=i+1;
end
size(fb), fb(size(fb)), plot(fb)
Ovaj program izvrˇsava se naredbom fibbr.
Posebna vrsta m - fajlova su funkcijski fajlovi u kojima se definiˇsu nove funkcije sa
ulaznim i izlaznim parametrima. Prva naredba je obavezno function.
(1) Kreirati fajl f1.m u kojem se definiˇse funkcija f : x → e−x + sin x. Na primer:
%---- f1.m ----%
function y=f1(x)
y=exp(-x)+sin(x);
pa naredbom >> f1(pi/2) izraˇcunati vrednost funkcije za x = π/2.
(2) Ako u fajlu slucmat.m imamo naredbe
% ----- slucmat.m -----%
function x=slucmat(m,n)
x=floor(10*rand(m,n));
onda naredbom >> A=slucmat(5,10) dobijamo matricu A dimenzija 5 × 10 ˇciji su elementi
sluˇcajni brojevi od 0 do 9.
(3) Crtanje fraktala (o fraktalima moˇzete pogledati na www.fractals.com.)
% ------ fraktali.m -----%
% --- Crtanje fraktala --%
function fraktali(n)
%
x=[1 3 2 1]; y=[1 1 1+sqrt(3) 1];
xp=1; yp=1; hold on; axis(’equal’); axis(’off’); plot(x,y)
for i=1:n
d=round(rand*6+1);
if (d == 1| d==2)
xp=(xp+x(1))/2; yp=(yp+y(1))/2;
elseif (d ==3 | d ==4)
xp=(xp+x(2))/2; yp=(yp+y(2))/2;
elseif (d==5 | d==6)
xp=(xp+x(3))/2; yp=(yp+y(3))/2;
end;
plot(xp,yp,’r.’);
end
23
Probajte >> fraktali(3), fraktali(10), fraktali(100)
Zadaci.
1. Upoznati naredbe title, xlabel, ylabel, text, gtext i upotrebiti ih na grafiku funkcije f : x 7→ p · sinq (bx + c) za x ∈ [0, 5 + a/10].
2. Formirati funkcijski fajl za generisanje matrice reda m × n ˇciji su elementi sluˇcajni
brojevi iz intervala [min{b, c, p, q }, max{b, c, p, q }].
3. Koriste´ci naredbe
for n=[3 4 5 6 8 10 12 18 30]
k=k+1;
subplot(3,3,k)
nacrtati pravilne mnogouglove sa 3,4,5,6,8,10,12,18 i 30 stranica.
24
ˇ
4. DIFERENCIJALNI RACUN
Izvodi
Izvod reda n funkcije f : R → R dobija se naredbom diff(f,n). Za bolji zapis mogu da
se koriste i naredbe pretty i simple. ˇ
(1) f=’sin(x
2)’; g=diff(f), h=diff(f,2), v=diff(g), h-v
(2) f=’x
5’; f1=diff(f), f2=diff(f,2), f3=diff(f,3),
f4=diff(f,4), f5=diff(f,5), f6=diff(f,6)
(3) f=’atan((1-x)/(1+x))’; g=diff(f), h=diff(g),
f2=simple(h), pretty(f2)
(4) f=’a
x’; g=diff(f,100),
(5) f=’log(x)’; g=diff(f,10)
Parcijalni izvodi funkcije f : R2 → R dobijaju se naredbom jacobian(f,[x y]) ili naredbama fx=diff(f,’x’) i fy=diff(f,’y’), gde su x i y nezavisne promenljive.
(6) f=’x
2*y
3’; fx=diff(f,’x’), fy=diff(f,’y’)
(7) syms x y; jacobian(f,[x y])
(8) f=atan((x+y)/(1+x*y)); g=log(sqrt(x
2+y
2));
a=jacobian(f), b=jacobian(g)
Tejlorova formula
Tejlorov polinom petog reda koji aproksimira funkciju f u okolini taˇcke x = a dobija se
naredbom taylor(f,a), a polinom reda n dobija se naredbom taylor(f,n,a).
(1) f=sin(x); taylor(f), p9=taylor(f,9), p=taylor(f,pi/2), simple(p),
taylor(f,7,pi/2)
(2) f=sin(x
2); taylor(f), taylor(f,11), p=taylor(f,21), pretty(p)
(3) f=sin(sin(x)); p=taylor(f,20), pretty(p)
Ispitivanje funkcija
Naredbama diff, solve, fmin, ezplot mogu da se odrede izvodi date funkcije, nule
funkcije i njenih izvoda, minimum funkcije, i da se nacrtaju grafici funkcije i njenih izvoda.
25
Za funkciju f : x 7→ x2 log(x) imamo:
f=’x
2*log(x)’;
ezplot(f), hold on,
g=diff(f), ezplot(g),
a=solve(g), a=numeric(a), plot(a,0,’ro’),
b=fmin(f,0,10),
h=diff(g), ezplot(h),
c=solve(h), c=numeric(c), plot(c,0,’r*’),
hold off, ezplot(f,[0,1]),
hold on, fa=a
2*log(a); fc=c
2*log(c);
plot(a,fa,’y*’,c,fc,’g*’)
Lagranˇ
zova teorema
Koriˇs´cenjem naredbi koje smo do sada upoznali moˇzemo da damo geometrijsku ilustraciju
Lagranˇzove teoreme po kojoj za diferencijabilnu funkciju f na intervalu [a, b] postoji taˇcka
c0 takva da je
f (b) − f (a)
.
f 0 (c0 ) =
b−a
% ----- LagranzovaTeorema.m ---%
%------ Data funkcija i interval [0.1,2.1]
f=’sin(x)’;
%------ Nalazenje tacke c0
k=(sin(2.1)-sin(0.1))/(2.1-0.1);
df=diff(f);
solve(’cos(x)=0.382’,’x’);
c0=1.179; x=c0;
y0=eval(f);
%------ Priprema za crtanje
x1=0.1; x=x1; y1=eval(f);
x2=2.1; x=x2; y2=eval(f);
a=0; b=2.2; c=0; d=1.4;
F=’sin(X)’;
h=(b-a)/100;
X=a:h:b; Y=eval(F);
%------ Crtanje
plot([a b], [0 0], ’b’,[0 0], [c d],’b’);
axis([a b c d]); axis(axis);
hold on;
title(’f‘(c)=k’);
plot(X,Y,’-b’);
plot([x1 x2],[y1 y2],’or’);
plot([x1 x2],[y1 y2],’-r’);
plot(c0,y0,’or’);
26
plot([x1 x2],[y0-(c0-x1)*k y0+(x2-c0)*k],’-r’);
plot(c0,0,’or’);
plot([c0 c0],[0 y0],’--r’);
xlabel(’x’); ylabel(’y’); grid;
Zadaci
1. Odrediti prvi izvod funkcije f ako je
r
(x − 1)3
(1) f (x) = ln
,
(2) f (x) = xtan x ,
x+1
x
(3) f (x) = xx .
2. Odrediti deseti izvod funkcije f ako je
(1) f (x) = xn e−x ,
(2) f (x) = sin(px + q),
(3) f (x) = sin2 x.
3. Odrediti parcijalne izvode funkcije f ako je
x
(1) f (x, y) = p
,
x2 + y 2
xy
.
1 + x2 + y 2
(2) f (x, y) = arctan p
27
4. Odrediti Tejlorov polinom reda 6 koji aproksimira funkciju
2
(1) f : x 7→ e2x−x ,
(2) f : x 7→ esin x ,
(3) f : x 7→ ln(cos x)
u okolini taˇcke x = 0.
5. Nacrtati grafike funkcije f : x 7→ (cos x)sin x i Tejlorovih polinoma T3 (x), T6 (x) i
T7 (x) koji aproksimiraju funkciju f u okolini taˇcke x = 0.
6. Odrediti Tejlorov polinom reda 10 koji aproksimira funkciju f : x 7→ x2 ln x u okolini
taˇcke x = 1.
28
7. Odrediti taˇcke ekstremuma, taˇcke prevoja i nacrtati grafike date funkcije i njena
prva dva izvoda.
(1) f (x) = p · x + x3 − arcsin x,
(2) f (x) = p sin bx + q cos cx.
8. Geometrijski ilustrovati Lagranˇzovu teoremu za funkciju f : x 7→ x3 /q na intevalu
[0, p].
29
ˇ
5. INTEGRALNI RACUN
Neodredeni
integrali
Neodredeni
integral funkcije f : R → R dobija se naredbom int(f) ili int(f,’x’). Za
bolji zapis mogu da se koriste i naredbe pretty i simple. Na primer, integrale
Z
Z
Z
Z
Z
√
x2 − x + 2
x+1
ax + b
10
dx
dx,
x ln
dx,
arctan xdx,
sin xdx,
4
2
x
x − 5x + 4
cx + d
dobijamo slede´cim naredbama:
(1)
(2)
(3)
(4)
(5)
syms x; f=(x
2-x+2)/(x
4-5*x
2+4); int(f), pretty(ans)
g=x*log((x+1)/x); h=atan(sqrt(x)); f=[g;h]; a=int(f), pretty(a(1))
syms x y; f=x
y; A=int(f), B=int(f,’x’), C=int(f,’y’)
f=sin(x)
10; g=int(f), pretty(g), ezplot(g), ezplot(f)
syms a b c d; f=(a*x+b)/(c*x+d); g=int(f), pretty(g)
Odredeni
integrali
Rb
Naredbom int(f,a,b) dobija se a f (x)dx. Na primer, integrale
r
Z π/4
Z 3
Z π/2
Z 1
x2 + 3x
x
3
dx,
cos xdx,
arcsin
dx,
tet sin tdt
2 + 1)
1
+
x
(x
+
1)(x
0
0
0
0
dobijamo slede´cim naredbama:
(1)
(2)
(3)
(4)
syms x; f=(x
2+3*x)/((x+1)*(x
2+1)); int(f,0,1)
f=cos(x)
3; I=int(f,0,pi/4), numeric(I)
h=sqrt(x/(1+x)); g=asin(h); a=0; b=1; A=int(g,a,b), numeric(A)
syms t; a=int(t*exp(t)*sin(t),0,pi/2), b=numeric(a)
Nesvojstveni integrali
Naredba za nesvojstvene integrale ista je kao i za odredene,
a oznaka za ∞ je inf.
(1) syms x; f=1/(1+x
2); int(f,-inf,inf)
(2) f=1/sqrt(x); g=1/(sqrt(x)*log(x)); a=int(f,0,1), b=int(g,0,1/2), numeric(b)
Duˇ
zina luka date krive
Z bp
Ako je y = f (x) za x ∈ [a, b], onda je l =
1 + y 02 (x)dx, ako je x = x(t) i y = y(t)
a
Z t2 p
x02 (t) + y 02 (t)dt, a ako je r = r(ϕ) za ϕ ∈ [α, β], onda je
za t ∈ [t1 , t2 ], onda je l =
t1
30
l=
Z
β
α
p
r2 (ϕ) + r02 (ϕ)dϕ. Na primer, ako je
(1) y = ln(x2 −1), x ∈ [2, 5],
(2) y = x2 , x ∈ [0, a],
(3) x = et sin t, y = et cos t, t ∈ [0, π/2],
onda se duˇzina odgovaraju´ceg luka dobija slede´cim naredbama:
(1) syms x; f=log(x
2-1); g=sqrt(1+diff(f)
2); l=int(g,2,5)
(2) syms a; f=x
2; l=int(sqrt(1+diff(f)
2),0,a), pretty(l),
ezplot(l,[0,5])
(3) syms t; x=exp(t)*sin(t); y=exp(t)*cos(t);
f=sqrt(diff(x)
2+diff(y)
2; pretty(f), l=int(f,0,pi/2), numeric(l)
Zadaci
1. Izraˇcunati
Z
dx
,
3
x +1
Z
x4 + 4x3 + 11x2 + 12x + 8
dx,
(x2 + 2x + 3)2 (x + 1)
2. Za realne parametre a, b i c izraˇcunati
Z
Z
ax + b
sin(ax) cos(bx) sin(cx)dx,
dx,
2
x +x+1
3. Izraˇcunati
1
Z
0
ln(1 + x)
dx,
1 + x2
Z
Z
sin x sin 2x sin 3xdx,
0
2π
Z
0
31
Z
dx
.
(1 + x2 )10
eax sin(bx) cos(cx)dx.
π/2
Z
x50 ex dx,
dx
.
sin x + cos4 x
4
4. Izraˇcunati prvih deset ˇclanova nizova (an ) i (bn ) ako je
an =
1
Z
xn arcsin xdx,
bn =
0
5. Izraˇcunati
Z ∞
arctan x
dx,
(1 + x)2
0
π/2
Z
xn cos xdx.
0
Z
Z
x3 ln x
∞
dx,
(x4 + 1)3
0
6. Izraˇcunati duˇzinu luka datog sa
r
x
, x ∈ [0, 5/6],
(1) y = x
1−x
1
∞
dx
√
,
x x−1
Z
∞
dx
2x2 − 5x + 7
−∞
(2) r = sin3 (ϕ/3), ϕ ∈ [0, 3π],
(3) x = t − sin t, y = 1 − cos t, t ∈ [0, 2π].
32
.
ˇ
ˇ
6. RESAVANJE
JEDNACINA
Veˇ
zba 1
Primenom programskog paketa MATLAB izolovati korene jednaˇcine ln x = cos x grafiˇckom
metodom.
(1) Najpre nacrtati funkcije f : x 7→ ln x i g : x 7→ cos x.
[x1,y1]=fplot(’log(x)’,[0.1,10]);
[x2,y2]=fplot(’cos(x)’,[0.1,10]);
plot(x1,y1,’r’,x2,y2,’b’),grid
(2) Nacrtati funkciju h : x 7→ ln x − cos x i suˇzavati interval u kome se nalazi koren date
jednaˇcine
fplot(’log(x)-cos(x)’,[1,3]),grid
fplot(’log(x)-cos(x)’,[1.2,1.4]),grid
.................
Veˇ
zba 2
Koriste´ci naredbu fzero reˇsiti jednaˇcinu iz prethodne veˇzbe.
(1) Koristiti dobijene intervale [a, b] iz veˇzbe 1.
fzero(’log(x)-cos(x)’,[a,b])
(2) Zaˇsto program ne moˇze da reˇsi jednaˇcinu ako je [a, b] = [3, 4] ?
(3) Reˇsiti jednaˇcinu koriste´ci samo poˇcetnu vrednost x0
fzero(’log(x)-cos(x)’,x0 )
pri ˇcemu za x0 uzeti vrednosti: 0.6, 0.7, 1, 5, 13, 14,...
(4) Pratiti iteracije naredbom
fzero(’log(x)-cos(x)’,[a,b],[],1)
Veˇ
zba 3
Neka je funkcija h (iz veˇzbe 1) definisana u function fajlu h.m
% ------ h.m -----function y=h(x)
y=log x-cos x;
Kreirati function fajl metpolin.m za reˇsavanje jednaˇcine h(x) = 0 metodom polovljenja
intervala sa taˇcnoˇs´cu 1000eps. Ulazni parametri neka budu funkcija h i poˇcetna vrednost
x0, a izlazni parametar reˇsenje date jednaˇcine. Na primer:
33
% ---- mrtpolin.m ------%
function x=metpolint(fun,x0)
%
if x0˜=0, dx=x0/20; else, dx=1/20; end
a=x0-dx; fa=feval(fun,a);
b=x0+dx; fb=feval(fun,b);
% ------- Promena znaka
while (fa>0) == (fb>0)
dx=2*dx;
a=x0-dx; fa=feval(fun,a);
if(fa>0) ˜= (fb>0), break, end
b=x0+dx; fb=feval(fun,b);
end
%-------- Glavna petlja
while abs(b-a) > 1000*eps
c=a+0.5*(b-a); fc=feval(fun,c);
if (fb>0) == (fc>0)
b=c; fb=fc;
else a=c; fa=fc;
end
end
x=b
Naredbom >> metpolin(’h’,x0), za razliˇcite poˇcetne vrednosti x0 , dobijamo reˇsenje date
jednaˇcine.
Zadaci
1. Grafiˇckom metodom locirati korene, a zatim reˇsiti datu jednaˇcinu.
1) x3 − ax + 1 = 0,
2) ln x − x + a = 0.
34
2. Isprobati naredbu solve za reˇsavanje jednaˇcina iz prethodnog zadatka.
3. Isprobati naredbu roots za nalaˇzenje nula polinoma i pomo´cu nje reˇsiti prvu
jednaˇcinu.
4. Naredbom line oznaˇciti na grafiku taˇcku u kojoj je nula funkcije (videti primer u
zerodemo).
5. Metodom polovljenja intervala reˇsiti jednaˇcinu
x
(1) xx = b + c,
(2) xx = p + q.
6. Modifikovati metodu polovljenja intervala u metodu suˇzavanja intervala, pri ˇcemu
se za novu taˇcku (umesto srediˇsta datog intervala) uzima sluˇcajna taˇcka tog intervala.
35
7. METODA ITERACIJE
Veˇ
zba
Kreirati m - fajl, na primer mit.m, sa MATLAB naredbama za reˇsavanje date jednaˇcine
iterativnom metodom. Ako je data jednaˇcina oblika x = g(x) i ako je funkcija g definisana
u m - fajlu fung.m, sadrˇzaj fajla mit.m moˇze da izgleda ovako:
% ---- mit.m -------%
x0=input(’Uneti x0: ’);
e=input(’uneti tacnost e: ’);
n=0; [x1,gp]=fung(x0);
if abs(gp)>1
error(’Nije dobra pocetna vrednost’)
end
while abs(x1-x0)>e
n=n+1; x0=x1;
[x1,gp]=fung(x0);
end
disp([’Resenje je x=’,num2str(x1)])
disp([’Broj iteracija: ’,int2str(n)])
Na primer, jednaˇcina
4x − 5 = 5 ln x
ima jedno reˇsenje na intervalu (0.5, 2], a drugo na intervalu [2, +∞).
napiˇsemo u obliku
x = 1.25(1 + ln x),
Ako jednaˇcinu
onda je
g(x) = 1.25(1 + ln(x),
g 0 = 1.25/x,
pa su uslovi konvergencije ispunjeni za x > 1.25, ˇsto znaˇci da metodom iteracije moˇzemo
dobiti drugo reˇsenje. U fajl fung.m treba uneti
% ----- fung.m -------%
function [g,izvodg]=fung(x)
g=1.25*(1+log(x));
izvodg=1.25/x;
Za prvo reˇsenje treba jednaˇcinu napisati u obliku
x = e0.8x−1 ,
a u fajl fung.m treba uneti
36
% ----- fung.m -------%
function [g,izvodg]=fung(x)
g=exp(0.8*x-1);
izvodg=0.8*g;

U komandnu liniju treba uneti >> mit i otkucati Enter.
Za razliˇcite poˇcetne vrednosti
x0 i razliˇcitu taˇcnost e pratiti broj potrebnih iteracija.
Zadaci
1. Grafiˇckom metodom izolovati reˇsenja, a zatim metodom iteracije reˇsiti jednaˇcinu
1) 2 arctan x = x + a
2) ex = x2 + a.
37
2. Metodom iteracije reˇsiti datu jednaˇcinu sa taˇcnoˇs´cu (1) 10−5 , (2) 10−8 i nacrtati
grafik vrednosti dobijenih iteracijama.
2) ln x + (x − a)3 = 0
1) cos x = 3x − a
4) (x − a)2 = e−x .
3) tg x = (2a + 1)x
3. Umesto mit.m kreirati function fajl sa naredbom
function [x,xn,gr]= miter(g,x0,e,n),
gde je x0 poˇcetna vrednost, e zadata taˇcnost, n maksimalni broj iteracija, xn pribliˇzno
reˇsenje, x vektor vrednosti dobijenih iteracijama, a gr procenjena greˇska pribliˇznog reˇsenja.
38
ˇ
8. JEDNACINE
- OBNAVLJANJE
Veˇ
zba 1
Kreirati m - fajl, kvkoren.m, sa MATLAB naredbama za izraˇcunavanje kvadratnog korena
realnog broja x Njutnovom metodom. Na primer, sadrˇzaj fajla kvkoren.m moˇze da izgleda
ovako:
% ----- kvkoren.m -------% Kvadratni koren broja x (Njutnova metoda)
%
function y=kvkoren(x)
if x<0 error(’x je negativan broj!’); end
x0=x/2;
for i=1:100
y=(x0+x/x0)/2;
if abs(y-x0)<eps,
break,
end;
x0=y;
end
Koriste´ci kvkoren i naredbu for izraˇcunati kvadratne korene prirodnih brojeva manjih od
100.
Veˇ
zba 2
Za grafiˇcki prikaz iteracija xn = g(xn−1 ) na intervalu [a, b] (i u sluˇcaju konvergencije i u
sluˇcaju divergencije) moˇze da se koristi function fajl miter.m ˇciji je sadrˇzaj slede´ci:
% ---- miter.m -------%
function [x1,gr]=miter(g,x0,epsilon,nmax,a,b)
%
h=(b-a)/100; X=a:h:b; Y=feval(g,X);
x(1)=x0; gr=1; x1=x0;
for i=1:nmax
x1=feval(g,x0); gr=abs(x1-x0);
if(gr<epsilon) break; end
x0=x1; x(i+1)=x1;
end
nmax=length(x);
for i=1:nmax-1
k1=2*i-1; k2=2*i;
ax(k1)=x(i); ax(k2)=x(i);
39
ay(k1)=x(i); ay(k2)=x(i+1);
end
ay(1)=0; y0=zeros(1,nmax);
plot([a b],[0 0],’b’,[0 0],[a b],’b’);
axis([a b a b]); axis(axis); hold on;
plot([a b],[a b],’-g’,X,Y,’-g’,ax,ay,’-r’,x,y0,’or’);
title(’Metoda iteracije za jednaˇ
cinu x=g(x)’);
grid; hold off;
x2
, izraˇcunati kvadratni koren broja y i za razliˇcite
y
poˇcetne vrednosti x0 nacrtati tok iterativnog procesa.
Koriste´ci miter i funkciju g(x) = 1+x −
Zadaci
1. Kreirati function fajl u kojem se raˇcuna n - ti koren broja x, gde je n prirodan
broj ve´ci od 1 (ulazni parametri neka budu n i x), a zatim izraˇcunati b + c - ti koren broja
a + p + q.
2. Iterativnom metodom reˇsiti jednaˇcine:
(2) x3 − x2 − x − b = 0
(1) x = (b + c)e−x
40
(3) (x + p)2 + q sin x = 0
3. Njutnovom metodom reˇsiti jednaˇcine:
(1) x3 − x − b = 0
(2) x4 + 2x3 + 7x2 − c = 0
4. Numeriˇcki i analitiˇcki reˇsiti jednaˇcinu x4 − x − p = 0.
41
5. Odrediti dva reˇsenja jednaˇcine e−bx = sin cx.
6. Reˇsiti jednaˇcinu e−x/b + sin(x/c) = 0 na intervalu [0, 20].
7. Odrediti sva reˇsenja jednaˇcine
288x5 − 720x4 + 694x3 − 321x2 + 71x − 6 = 0.
8. Odrediti lokalne ekstremume funkcije f : x 7→ qx + p ln x − x3 .
42
9. LINEARNI SISTEMI - I
Veˇ
zba 1
Kreirati fajl CramerovoPravilo.m ˇciji je sadrˇzaj:
% ---- CramerovoPravilo.m -----------% Resavanje sistema AX=B Cramerovim pravilom
%
function X=CramerovoPravilo(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’;
i testirati sistemom reda 100 ˇcije su matrice sluˇcajne.
Veˇ
zba 2
Kreirati fajl GaussJordanovaMetoda.m ˇciji je sadrˇzaj:
% ---- GaussJordanovaMetoda.m -----------% Resavanje linearnog sistema Gauss Jordan - ovom metodom
%
function X=GaussJordanovaMetoda(A,B)
[n n]=size(A); A=[A’;B’]’; X=zeros(n,1);
for i=1:n,
for j=[1:i-1,i+1:n],
if A(i,i) == 0,
break,
end
m = A(j,i)/A(i,i);
A(j,:)=A(j,:)- m*A(i,:);
end
end
X=A(:,n+1)./diag(A)
i testirati nekim sistemom reda 500.
43
Veˇ
zba 3
Naredbama
syms A B m;
A=[m 1 1; 1 m 1; 1 1 m]; B=[1; m; m*m];
X=A\B
reˇsiti sistem (za m 6∈ {−2, 1})
mx + y + z = 1,
x + my + z = m,
x + y + mz = m2
Zadaci
1. Matrica B i kolone matrice A sistema AX = B su sluˇcajne permutacije brojeva
1, 2, . . . , 10 (videti naredbu randperm). Reˇsiti ovaj sistem
(1) matriˇcnom metodom,
(2) Cramerovim pravilom,
(3) Gauss Jordanovom metodom,
44
2. Reˇsiti sistem
mx + ny + z = 1,
x + ny + mz = 1,
x + mny + z = n
za m 6∈ {−2, 1} i n 6= 0.
3. Reˇsiti sistem (najpre odrediti rang matrice sistema i odabrati slobodne promenljive)
(1) 3x − 2y + 5z + 4u = 2,
(2) 3x − y + 4z + 4u − v = 0,
6x − 4y + 4z + 3u = 3,
9x − 6y + 3z + 2u = 4,
6x − 2y + 2z + 5u + 7v = 0,
45
9x − 3y + 4z + 8u + 9v = 0.
10. LINEARNI SISTEMI - II
Veˇ
zba 1
Dat je sistem
1.02x − 0.05y − 0.10z =0.795
−0.11x + 1.03y − 0.05z =0.849
−0.11x − 0.12y + 1.04z =1.398
Napisati sistem u matriˇcnoj formi AX = B, a zatim MATLAB naredbom
A=[1.02 -0.05 -0.1; -0.11 1.03 -0.05; -0.11 -0.12 1.04]
uneti matricu A i naredbama
norm(A), norm(A,1), norm(A,inf), norm(A,’fro’)
odrediti norme matrice A. Uneti, zatim, matricu B i reˇsiti sistem naredbom X=A\B, a zatim
naredbom A*X-B proveriti dobijeno reˇsenje.
Veˇ
zba 2
Napisati sistem u obliku
X = CX + D,
gde je C = I − A i D = B. Matrice C i D mogu da se dobiju naredbama
C=eye(size(A))-A, D=B.
Izraˇcunati norme matrice C, a zatim kreirati m - fajl, na primer linsis.m za reˇsavanje
sistema iterativnom metodom. Ako su matrice C i D unete, sadrˇzaj tog fajla moˇze da
izgleda ovako:
% ------- linsis.m -----% Sistem linearnih jednacina X=CX+D - prosta iteracija
%
disp(’Matrice sistema ’), C, D
if(norm(C)>=1)
error(’Norma matrice C nije manja od 1’),
end
X0=input(’Uneti X0: ’);
e=input(’Uneti tacnost e: ’);
n=0; X=C*X0+D;
while norm(X-X0)>e
n=n+1; X0=X; X=C*X0+D;
end
disp(’Resenje je:’) ,X
disp(’Broj iteracija: ’),n
46
Naredbom linsis, za razliˇcite vrednosti X0 i e, pratiti broj potrebnih iteracija.
Veˇ
zba 3
Napisati sistem u Jakobijevom obliku


n
i−1
X
X
1
xi = − 
ai,j xj +
ai,j xj − bi  .
aii
j=1
j=i+1
Ako je
X = CX + D,
onda Jakobijeva matrica C i matrica D mogu da se dobiju naredbama:
E=zeros(size(A));
for i=1:size(A);
E(i,i)=1/A(i,i);
end
A1=E*A; C=eye(size(A))-A1, D=E*B
Zadaci
1. Matriˇcnom metodom reˇsiti dati sistem:
qx − 1.8y + 3.6z = −1.7
(1) 3.1x + 2.3y − 1.2z = 3.6
1.8x + 2.5y + 4.6z = 2.2
2px + 1.2y + 2.1z + 0.9u = − 7
1.2x + 11.2y + 1.5z + 2.5u =5.3
(2)
2.1x + 1.5y + 9.8z + 1.3u =10.3
0.9x + 2.5y + 1.3z + 12.1u =24.6
47
2. Ispitati da li prethodni sistemi mogu da se reˇse Jakobijevom metodom.
3. Ispitati da li prethodni sistemi mogu da se reˇse izborom matrica C i D kao u
linsis.m.
4. Generisati linearni sistem reda 50 sa sluˇcajnim koeficijentima i ispitati da li moˇze
da se reˇsi
(1) matriˇcnom,
(2) iterativnom
metodom.
48
11. NELINEARNI SISTEMI - I
Veˇ
zba 1
Dat je sistem
x3 + y 3 − 6x + 3 =0
x3 − y 3 − 6y + 2 =0
MATLAB naredbama
x=0:0.1:1; y=0:0.1:1;
[x,y]=meshgrid(x,y);
z=x.
3+y.
3-6*x+3;
u=x.
3-y.
3-6*y+2;
mesh(x,y,z),hold
mesh(x,y,u)
nacrtati 3D grafike funkcija
f : (x, y) 7→ x3 + y 3 − 6x + 3,
g : (x, y) 7→ x3 − y 3 − 6y + 2,
a zatim naredbama
contour(x,y,z,[0.
contour(x,y,u,[0.
0.]), hold,
0.])
odrediti njihov presek u ravni Oxy i na osnovu toga lokalizovati reˇsenje datog sistema.
Umesto naredbe mesh probati i naredbe surf i surfl.
Veˇ
zba 2
Napisati dati sistem u obliku x = ϕ(x, y), y = ψ(x, y), gde je
ϕ : (x, y) 7→
x3 + y 3 1
+
6
2
ψ : (x, y) 7→
x3 − y 3 1
+ ,
6
3
a zatim odrediti parcijalne izvode funkcija ϕ i ψ. Kreirati m -fajl, na primer fipsi.m, koji
´ce za date vrednosti x i y da raˇcuna vrednosti funkcija ϕ i ψ i njihovih parcijalnih izvoda.
% ------- fipsi.m -------% Vrednosti funkcija ϕ, ψ
% i njihovih parcijalnih izvoda
%
function [fi,psi,fix,fiy,psix,psiy]=fipsi(x,y)
fi=(x.
3+y.
3)/6+1/2;
psi=(x.
3-y.
3)/6+1/3;
fix=x.
2/2; fiy=y.
2/2;
psix=x.
2/2; psiy=-y.
2/2;
49
Veˇ
zba 3
Kreirati m - fajl, na primer nelsis.m, sa MATLAB naredbama za reˇsavanje nelinearnog
sistema od dve jednaˇcine sa dve nepoznate iterativnom metodom
xn+1 = ϕ(xn , yn ),
yn+1 = ψ(xn , yn ),
gde su x0 i y0 poˇcetne vrednosti i gde se proverava uslov
|ϕ0x | + |ϕ0y | < 1,
0
|ψ x
| + |ψy0 | < 1.
% --------- nelsis.m ----------%
x0=input(’Uneti pocetnu vrednost za x: ’);
y0=input(’Uneti pocetnu vrednost za y: ’);
e=input(’Uneti tacnost e: ’);
n=input(’Uneti maksimalni broj iteracija: ’);
i=0; [x,y,fix,fiy,psix,psiy]=fipsi(x0,y0);
if max(abs(fix)+abs(fiy),abs(psix)+abs(psiy))>1
error(’Nije dobar izbor funkcija fi i psi’),
end
while abs(x-x0)>e
if i>n
error(’Nije postignuta tacnost’),
end
i=i+1; x0=x; y0=y;
[x,y,fix,fiy,psix,psiy]=fipsi(x0,y0);
end
disp(x),disp(y)
Naredbom nelsis, za razliˇcite vrednosti x0,y0 i e pratiti broj potrebnih iteracija.
Zadaci
1. Modifikovati nelsis za iterativni algoritam tipa Zajdela
xn+1 = ϕ(xn , yn ),
yn+1 = ψ(xn+1 , yn )
i na primeru iz prethodnih veˇzbi uporediti sa rezultatima dobijenim sa nelsis.
50
2. Iterativnom metodom reˇsiti dati sistem
(1)
sin(x − 0.6) − y + b =1.6
3x − cos y =0.9
(2)
2x2 − xy − (5 + c)x = −1
x + 3 ln x − y 2 = 0.
51
12. NELINEARNI SISTEMI II
Veˇ
zba
Sistem
x3 + y 3 − 6x + 3 =0
x3 − y 3 − 6y + 2 =0
reˇsiti metodom Njutn Kantoroviˇca u 5 iteracija i dobijene vrednosti za x i y u svakoj
iteraciji nacrtati na istom dijagramu. Potrebno je formirati m - fajlove, na primer f.m,
g.m i jacfg.m
%--- function fajl f.m koji definise funkciju f
%
function z=f(x,y)
z=x
3+y
3-6*x+3;
%--- function fajl g.m koji definise funkciju g
%
function z=g(x,y)
z=x
3-y
3-6*y+2;
%--- function fajl jacfg.m koji definise jacobijan
%
function z=jacfg(x,y)
z=[3*x
2-6 3*y
2; 3*x
2 -3*y
2-6];
u kojima se izraˇcunavaju vrednosti funkcija f i g, gde je
g(x, y) = x3 − y 3 − 6y + 2,
f (x, y) = x3 + y 3 − 6x + 3,
kao i matrica jacfg parcijalnih izvoda funkcija f i g. Zatim se kreira m - fajl, na primer
njutnkantmetoda.m,
gde se MATLAB naredbama realizuje algoritam metode Njutn Kantoroviˇca.
% --------- njutnkantmetoda.m ----------% Metoda Njutn Kantoroviˇ
ca za nelinearne sisteme
%
p0 = input(’Uneti pocetnu vrednost [x0;y0]= ’);
x = p0(1); y = p0(2);
disp(’br. it.
x
y f(x,y) g(x,y) ’)
disp(’ ’)
ff = f(x,y); gg = g(x,y);
fprintf(’ %d %0.5f %0.5f %0.5f %0.5f’,0,x,y,ff,gg)
plot([x], [y], ’*’)
hold on
52
pause
for n = 1:5
p1 = jacfg(x,y)\(jacfg(x,y)*p0 - [f(x,y); g(x,y)]);
x = p1(1); y = p1(2);
ff = f(x,y); gg = g(x,y);
fprintf(’ % d %0.5f %0.5f %0.5f %0.5f’,n,x,y,ff,gg)
plot([x], [y], ’*’)
p0=p1;
if n < 5, pause, end
end
hold off
Zadaci
1. Odrediti sva reˇsenja prethodnog sistema koriˇs´cenjem naredbe solve.
2. Metodom Njutn Kantoroviˇca reˇsiti date sisteme (odrediti sva reˇsenja):
(1)
x2 + y 2 − x =0
x2 − y 2 − y =0
53
(2)
3x2 − y 2 =0
3xy 2 − x3 − 1 =0
(3)
x + y 3 − 5y 2 − 2y =10
x + y 3 + y 2 − 14y =29
3. Napisati program za reˇsavanje sistema od tri jednaˇcine sa tri nepoznate metodom
Njutn Kantoroviˇca, a zatim reˇsiti sistem
x2 − x + y 2 + z 2 = 5,
x2 + y 2 − y + z 2 = 4,
54
x2 + y 2 + z 2 = 6.
13. INTERPOLACIJA
Veˇ
zba 1
Polinom Pn (x), gde je
Pn (x) = a0 xn + a1 xn−1 + · · · + an−1 x + an ,
u MATLAB - u je predstavljen vektorom p koeficijenata a0 , a1 , . . . , an−1 , an ,
p=[a0 a1 . . . an ],
a vrednost polinoma za x = a dobija se naredbom
polyval(p,a).
Koeficijenti interpolacionog polinoma mogu da se izraˇcunaju iz sistema
A · p = y0,
gde je A Vandermondova matrica, a y vektor (vrsta) datih podataka. U fajlu interppol.m definisan je function koji ima kao ulazne parametre vektore (vrste) x i y, a izlazni
parametar je vektor p.
% ------- interpol.m -------%
function p=interppol(x,y)
[m n]=size(x); A=zeros(n); x=x’;
for j=1:n
A(:,j)=x.
(n-j);
end
p=A\y’;
xx=x(1)-1:0.01:x(n)+1;
px=polyval(p,xx);
plot(x,y,’*’,xx,px), pause(1)
Ako funkcijom x 7→ sin x generiˇsemo 10 taˇcaka, na primer,
x=1:10; y=sin(x),
onda pozivom
p=intrppol(x,y)
dobijamo koeficijente interpolacionog polinoma, a na grafiku vidimo da polinom sadrˇzi
date taˇcke. Nacrtati na istom grafiku i funkciju x 7→ sin x, a zatim na drugom grafiku
razliku polinoma i funkcije x 7→ sin. Postupak ponoviti sa manjim i ve´cim brojem datih
taˇcaka.
55
Veˇ
zba 2
U fajlu lagintpol.m programiran je Lagranˇzov oblik interpolacionog polinoma. Ulazne
veliˇcine su vektori podataka xz i yz i argument xt za koji se traˇzi vrednost polinoma.
Izlazne veliˇcine su: vrednost polinoma u xt, koeficijenti polinoma, kao i simboliˇcki zapis
samog polinoma.
%------- lagintpol.m -------%
function [px,polinom,pkoef]=lagintpol(xz,yz,xt)
%
% Lagranzov interpolacioni polinom i njegova vrednost za xt
%
px=0; syms x; n=length(xz); polinom=0; pkoef=0;
for j=1:n
p=1; q=1; ps=1; kor=[];
for i=1:n
if i˜=j,
p=p*(xt-xz(i));
q=q*(xz(j)-xz(i));
ps=ps*(x-xz(i));
kor=[kor xz(i)];
end
end
px=px+yz(j)*p/q;
ps=expand(ps);
polinom=polinom+yz(j)*ps/q;
pkoef=pkoef+poly(kor)*yz(j)/q;
end
polinom=vpa(polinom,4);
%
xx=xz(1)-2:0.01:xz(n)+2;
yy=polyval(pkoef,xx);
plot(xz,yz,’*’,xx,yy), pause(1)
Primer iz prethodne veˇzbe ponoviti sa lagintpol.
Zadaci
1. Generisati podatke (najmanje 10) datom funkcijom f , a zatim odrediti odgovaraju´ci
Lagranˇzov interpolacioni polinom.
(1) f (x) = b ln x
56
(2) f (x) = c/(1 + x2 )
(3) f (x) = pxe−x − qex
2. Modifikovati lagintpol.m tako da se u Lagranˇzovom obliku polinoma ˇstampaju i
polinomi L0 (x), L1 (x), . . . Ln (x). Rezultat prikazati na jednom od prethodnih primera.
57
14. APROKSIMACIJA
Veˇ
zba 1
Ako je aproksimaciona funkcija f linearna,
f (x) = ax + b,
onda metodom najmanjih kvadrata dobijamo sistem za nepoznate parametre a i b
a
n
X
xi + (n + 1)b =
i=0
n
X
yi ,
a
i=0
n
X
x2i + b
i=0
pa je
n
X
=
i=0
n
Pn
(xi − x)(yi − y)
,
a = i=0
Pn
2
(x
−
x)
i
i=0
x=
n
X
xi yi ,
i=0
n
1 X
xi ,
n+1
y=
x=0
1 X
yi .
n+1
i=0
Ovakva aproksimaciona funkcija naziva se linearnom regresijom. U fajlu linreg.m su
naredbe za izraˇcunavanje parametara a i b za date vektore x i y.
% ----- linreg.m -----%
function [a,b]=linreg(x,y)
%
% Linearna regresija
%
xmean=mean(x); ymean=mean(y);
A=(y-ymean)*(x-xmean)’;
B=(x-xmean)*(x-xmean)’;
a=A/B; b=ymean-a*xmean;
xt=min(x)-0.5:0.01:max(x)+0.5;
yt=a*xt+b;
plot(xt,yt,x,y,’*’)
Na primer, neka je x=1:10 i y=x+0.5*randn(size(x)). Odrediti parametre linearne regresije.
Veˇ
zba 2
Sistem iz prethodne veˇzbe moˇze da se napiˇse i u obliku
AT A[a b]T = AT y,
gde je
AT
=
x0
1
x1
1
···
···
xn
1
.
Ako je aproksimaciona funkcija f polinom stepena m, odnosno
f (x) = a0 xm + a1 xm−1 + · · · + am−1 x + am ,
58
onda metodom najmanjih kvadrata dobijamo sistem oblika
AT Aa = AT y,
gde je

xm
0
 xm
A= 1
···
xm
n
x0m−1
−1
xm
1
···
−1
xm
n
···
···
···
···
x0
x1

1
1
,
···
···
xn
1
a = [a0 a1 . . . an ]0 ,
y = [y0 y1 . . . yn ]0 .
Iz ovog sistema sledi da je
a = (AT A)−1 AT y.
U fajlu polreg.m date su naredbe kojima se raˇcuna a za date vektore x i y.
% ------ polreg.m ------%
function p=polreg(x,y,m)
%
% Polinomialna regresija
%
n=length(x);
b=zeros(1:m+1);
f=zeros(n,m+1);
for k=1:m+1,
f(:,k)=x’.
(m+1-k);
end,
a=f’*f; b=f’*y’;
p=a\b;
xt=min(x)-0.5:0.01:max(x)+0.5;
yt=polyval(p,xt);
plot(xt,yt,x,y,’*’)
Zadaci
1. Primer iz prve veˇzbe aproksimirati polinomima reda 1,2,3,...,10.
59
2. Prouˇciti MATLAB maredbu polyfit i pomo´cu nje uraditi prethodne primere.
3. Prouˇciti MATLAB naredbu \ i uporediti rezultat dobijen sa polreg i sa
n=length(x);
A=zeros(n,m+1);
for k=1:m+1,
A(:,k)=x’.
(m+1-k);
end,
p=A\y’
4. Ako je
f (x) = a0 f0 (x) + a1 f1 (x) + · · · + an fn (x),
onda je
A=[f0 (x) f0 (x) ...
fn (x)] i p=A\ y’.
Na primer, uzeti f (x) = a0 + a1 x + a2 sin(x), i
A=[ones(size(x’)) x’ sin(x’)].
60
5. Prouˇciti MATLAB naredbu nlinfit za aproksimaciju nelinearnim funkcijama (po
nepoznatim parametrima) i isprobati za:
(1) f (x) = a1 ea2 x + a3 ea4 x
(2) f (x) =
a1 + a2 x + a3 x2
.
a4 + a5 x + a6 x2
61
ˇ
15. DIFERENCIJALNE JEDNACINE
Veˇ
zba
Data je diferencijalna jednaˇcina prvog reda
y 0 = 1 + x sin(xy).
Kreirati m - fajl, na primer difjed.m (tipa function fajla), gde ´ce za date vrednosti x i
y da se izraˇcunava vrednost y 0 .
% ------ difjed.m ----%
function yp=difjed(x,y)
yp=1+x*sin(x*y);
MATLAB naredbama
[x,y]=ode23(’difjed’,[x0 x1], y0);
plot(x,y)
za razliˇcite poˇcetne vrednosti y0 grafiˇcki prikazati reˇsenje date jednaˇcine na intervalu
[x0,x1].
Zadaci
1. Numeriˇcki odrediti partikularno reˇsenje jednaˇcine
y 0 x = 2y + x3 ex ,
y(1) = 0
na intervalu [1, p] i grafiˇcki uporediti sa taˇcim reˇsenjem koje je dato funkcijom
y : x 7→ x2 (ex − e).
62
2. Reˇsiti numeriˇcki i analitiˇcki jednaˇcinu
y 0 = cos x − sin x − y,
y(0) = q
i grafiˇcki uporediti dobijena reˇsenja na intervalu [0, 10].
3. Na istom grafiku prikazati bar 10 razliˇcitih partikularnih reˇsenja date jednaˇcine na
intervalu [0, b/c + c/b].
(1) y 0 = x3 − y 3 ,
63
(2) y 0 = xy + e−y ,
(3) y 0 =
1 + y2
.
1 + x2
(4) y 0 =
y2 y
+ .
x2 x
64
4. Napisati MATLAB program za reˇsavanje diferencijalne jednaˇcine Ojlerovom metodom i testirati na prethodnim primerima, a zatim uporediti sa rezultatima dobijenim
naredbom ode23.
5. Napisati MATLAB program za reˇsavanje diferencijalne jednaˇcine modifikovanom
Ojlerovom metodom i metodom Runge Kuta i testirati na prethodnim primerima, a zatim
uporediti sa rezultatima dobijenim naredbom ode45.
65
ˇ
16. SISTEMI DIFERENCIJALNIH JEDNACINA
Veˇ
zba 1
Dat je sistem diferencijalnih jednaˇcina
y 0 = y cos x − z sin x
,
z 0 = y sin x + z cos x
y(0) = 1, z(0) = 0.
Kreirati m - fajl, na primer sdj.m, sa function naredbom kojom ´ce za date vrednosti x,
y i z da se izraˇcunavaju vrednosti izvoda y 0 i z 0 .
% ----- sdj.m ---------%
function yp=sdj(x,y)
yp=zero(2,1);
yp(1)=y(1)*cos(x)-y(2)*sin(x);
yp(2)=y(1)*sin(x)+y(2)*cos(x);
a zatim naredbama
[x,y]=ode23(’sdj’,[0 5], [1 0]);
plot(x,y),pause
plot(y(:,1),y(:,2))
grafiˇcki prikazati numeriˇcka reˇsenja datog sistema i zavisnost promenljivih y i z u faznoj
ravni.
Veˇ
zba 2
Dat je sistem diferencijalnih jednaˇcina
y 0 = − 2y + 5u
z 0 = y sin x − y − z + 3u ,
u0 = − y + 2u
y(0) = 2, z(0) = 1, u(0) = 1.
Kreirati m - fajl, na primer sdj3.m, sa function naredbom kojom ´ce za date vrednosti x,
y, z i u da se izraˇcunavaju vrednosti izvoda y 0 , z 0 i u0
% ------ sdj3.m ------%
function yp=sdj3(x,y)
yp=zeros(3,1);
yp(1)=-2*y(1)+5*y(3);
yp(2)=-(1-sin(x))*y(1)-y(2)+3*y(3);
yp(3)=-y(1)+2*y(3);
a zatim naredbama
66
[x,y]=ode23(’sdj3’,[0 3],[2 1 1]);
plot(x,y)
grafiˇcki prikazati numeriˇcka reˇsenja.
Zadaci
1. Reˇsiti numeriˇcki dati sistem na intervalu [0, p] za razliˇcite poˇcetne vrednosti
(1) y 0 = xy + z,
z 0 = y − z.
(2) y 0 = x + z 2 ,
z 0 = xy.
(3) y 0 = u − xz + 1,
z0 = x +
u
,
xy
u0 = 3(y 2 + z).
67
2. Za nekoliko razliˇcitih poˇcetnih vrednosti prikazati u faznoj ravni zavisnost nepoznatih promenljivih datog sistema
(1) y 0 = 2y + z 2 − 1,
z 0 = 6y − z 2 + 1,
(2) y 0 = 1 − y 2 − z 2 ,
z 0 = 2yz,
(3) y 0 =
z
,
x
z 0 = −xy.
68
17. RAZNI PROBLEMI
1. Reˇsiti datu jednaˇcinu
(1) cx5 − bx3 + a = 0
(2) bx2 − a ln(x + 1) = c.
2. Reˇsiti sistem AX = B ako je A = (ai,j ) i B = (bi ), pri ˇcemu je
ai,j = sin(a ∗ i + p ∗ j),
bi = cos(b ∗ q ∗ i),
i, j = 1, 2, 3, 4, 5.
3. Reˇsiti sistem
x + y 2 + z 3 = 3p,
x2 + y 3 + z = p,
69
x3 + y + z 2 = 3p/2.
4. Reˇsenja jednaˇcine me−2x − 3x = 0, za 100 vrednosti parametra m u intervalu [0, 10],
nacrtati u zavisnosti od m. Isprobati slede´ce naredbe:
y=[]; x=[];
for m=0:0.1:10
f=fzero(’funkcija1’,[0 10],1e-10,[],m);
y=[y f]; x=[x m];
end
plot(x,y)
gde je
% ------ funkcija1.m
%
function y=funkcija1(x,m)
y=m*exp(-2*x)-3*x;
5. Funkciju f : x 7→ cx2 na [0, 1] aproksimirati funkcijom g : x 7→ a1 + a2 x + a3 sin x.
6. Funkciju f : x 7→ b sin x na [0, π] aproksimirati funkcijom g : x 7→ a1 ea2 x + c3 ea4 x .
70
7. Funkcijom x 7→ a1 sin(a2 x) aproksimirati funkciju f ako je f (1) = 0.2, f (2) = 0.74,
f (3) = 0.6), f (4) = 0.1, f (5) = −0.3, f (6) = −0.9, f (7) = −0.5, f (8) = −0.1
8. Odrediti Lagranˇzov interpolacioni polinom koji sadrˇzi taˇcke (x, sin x), gde je
x ∈ {0, π/36, π/18, π/12, pi/9, 5π/36, π/6},
a zatim pomo´cu njega izraˇcunati vrednosti sinusa uglova od 1◦ do 30◦ sa korakom od 1◦ .
9. Reˇsiti jednaˇcinu x3 − nx + p = 0 za n ∈ {1, 2, 3, 4, 5}, a zatim odrediti Lagranˇzov
interpolacioni polinom koji sadrˇzi taˇcke (n, xn ), gde je xn najve´ce reˇsenje odgovaraju´ce
jednaˇcine.
10. Objasniti rezultat slede´cih naredbi:
p=[1 -6 11 -6];
x=0:.25:4;
y=polyval(p,x);
z=y+rand(size(x));
q=polyfit(x,z,3);
u=polyval(q,x);
plot(x,u,x,y,x,z,’o’)
71
11. Napisati MATLAB program koji odreduje
Njutnov oblik interpolacionog polinoma i
njegov rad prikazati na primerima koji su uradeni
u temi 11.
12. Ojlerovom metodom reˇsiti jednaˇcinu
y 00 + (y 2 − 1)y 0 + y = 0
na intervalu [0, p] za nekoliko razliˇcitih poˇcetnih uslova.
72
ˇ CENI
´
ˇ
M - FAJLOVI KORIS
U VEZBAMA
CramerovoPravilo
reˇsavanje linearnog sistema
Fibbr
Fibonaˇcijevi brojevi
fractali
crtanje fraktala
GaussJordanovaMetoda
reˇsavanje linearnog sistema
interpol
interpolacija
kvkoren
kvadratni koren
LagranzovaTeorema
grafiˇcki prikaz teoreme
Lagintpol
Lagranˇzov interpolacioni polinom
linsis
reˇsavanje linearnog sistema
linreg
linearna regresija
metpolint
metoda polovljenja intervala
mit
metoda iteracije
miter
metoda iteracije
nelsis
reˇsavanje nelinearnog sistema
NjutnKantmetoda
reˇsavanje nelinearnog sistema
polreg
polinomialna regresija
slucmat
sluˇcajna matrica
73
ˇ CENIH
´
ˇ
SPISAK NAREDBI KORIS
U VEZBAMA
abs, 1.
angle, 1.
asin, 1.
atan, 1.
axis, 3.
break, 6.
collect, 1.
conj, 1.
contour, 11.
cos, 1.
demo, 1.
det, 2.
diff, 4.
disp, 12.
eig, 1.
else, 3.
elsif, 3.
end, 3.
eps, 6.
eval, 4.
exit, 1.
exp, 1.
expand, 1.
eye, 1.
ezplot, 4.
factor, 1.
floor, 3.
fmin, 4.
for, 3.
format, 1.
format long, 1.
format long e, 1.
format short, 1.
format short e, 1.
format rat, 1.
fplot, 3.
fprintf, 12.
function, 3.
fzero, 6.
grid, 3.
gtext, 3.
help, 1.
hold off, 3.
hold on, 3.
if, 3.
imag, 1.
inf, 1.
input, 7.
inv, 1.
jacobian, 4.
length, 14.
log, 1.
log10, 1.
magic, 1.
max, 1.
mean, 1.
mesh, 11.
meshgrid, 11.
min, 1.
nlinfit, 13.
norm, 10.
numeric, 4.
ones, 1.
pause, 12.
pi, 1.
plot, 3.
plotdemo, 3.
poly, 1.
polyfit, 14.
polyval, 13.
pretty, 4.
prod, 1.
rand, 1.
randn, 14.
rank, 1.
real, 1.
round, 3.
simple, 1.
sin, 1.
size, 1.
solve, 4.
sqrt, 1.
sqrtm, 1.
subplot, 3.
sum, 1.
syms, 1.
tan, 1.
taylor, 4.
text, 3.
title, 3.
vpa, 1.
while, 3.
xlabel, 1.
ylabel, 3.
zeros, 1.
KRATAK OPIS NEKIH MATLAB NAREDBI
Naredbe opˇ
ste namene
help
demo
exit
quit
who
what
pomo´c
demonstracija programa
izlazak iz programa
isto ˇsto i prethodna
teku´ce promenljive
spisak m - fajlova
Matematiˇ
cke funkcije
abs
sin
cos
tan
asin
acos
atan
exp
log
log10
apsolutna vrednost
sinus
cosinus
tangens
arcussinus
arcuscosinus
arcustangens
eksponencijalna fukcija
logaritamska funkcija sa osnovom e
logaritamska funkcija sa osnovom 10
Polinomi
poly
roots
polyval
conv
deconv
polyfit
karakteristiˇcni polinom matrice
nule polinoma
vrednost polinoma
proizvod dva polinoma
koliˇcnik dva polinoma
interpolacioni polinom
Matrice
det
inv
rank
norm
diag
eye
magic
zeros
rand
determinanta matrice
inverzna matrica
rang matrice
norma matrice
dijagonalna matrica
jediniˇcna matrica
magiˇcna matrica
nulta matrica
sluˇcajna matrica
76
Diferencijalne jednaˇ
cine
ode23
ode45
dsolve
metoda Runge Kuta drugog/tre´ceg reda
metoda Runge Kuta ˇcetvrtog/petog reda
analitiˇcko reˇsenje
2D grafika
plot
fplot
subplot
figure
title
text
gtext
axis
xlabel
ylabel
hold
grid
2D grafik
2D grafik
podela grafiˇckog prozora
prozor za crteˇz
naslov crteˇza
tekst na crteˇzu
tekst pozicioniran miˇsem
skaliranje osa
oznaˇcavanje x ose
oznaˇcavanje y ose
zadrˇzavanje grafika na ekranu
crtanje mreˇze
3D grafika
meshgrid
mesh
surf
surfl
surfc
axis
zlabel
contour
contour3
view
domen za 3D crteˇz
3D crteˇz povrˇsi
3D crteˇz povrˇsi
3D crteˇz povrˇsi
3D crteˇz povrˇsi
skaliranje osa
oznaˇcavanje z ose
nivo linije
3D konture
pogled iz izabrane taˇcke
Upravljanje tokom programa
if
elsif
else
end
for
while
break
return
pause
uslovno izvrˇsavanje naredbi
koristi se sa if
koristi se sa if
zavrˇsavanje if, for ili while
ponavljanje bloka naredbi
izvrˇsavanje dok je ispunjen uslov
izlazak iz petlji
izlazak iz funkcije
pauza do pritiska na neki taster
77
Specijalne vrednosti
eps
pi
i
j
inf
NaN
clock
date
flops
nargin
nargout
preciznost sa pokretnim zarezom
π
imaginarna jedinica
imaginarna jedinica
∞
nije broj
ˇcasovnik
datum
broj operacija
broj ulaznih parametara funkcije
broj izlaznih parametara funkcije
Izvodi
izvod funkcije
parcijalni izvodi
Tejlorova formula
diff
jacobian
taylor
Reˇ
savanje jednaˇ
cina
fzero
solve
nule funkcije
reˇsavanje sistema jednaˇcina
78
Download

MATEMATIKA I MATLAB