Upload
lamtruc
View
254
Download
4
Embed Size (px)
Citation preview
Dragan S. -Doric
MATEMATIKAI MATLAB
Laboratorijske vezbe
Visa elektrotehnicka skolaBeograd, 2003.
Dr Dragan -Doric
M A T E M A T I K A i M A T L A B
Laboratorijske vezbe
Recenzenti
Dr -Durica Jovanov
Ana Savic
Izdavac
Visa elektrotehnicka skola
Beograd, Vojvode Stepe 283
Nastavnicko vece Vise elektrotehnicke skole u Beogradu odobrilo je
izdavanje i koriscenje ovog prirucnika u nastavi.
CIP - Katalogizacija u publikaciji
Narodna biblioteka Srbije, Beograd
004.42MATLAB(075.8)(076)
-Doric, Dragan S.Matematika i MATLAB: Laboratorijske vezbe /
Dragan S. -Doric.- Beograd: Visa elektrotehnicka skola,2003 (Beograd: Akademska stampa).- 79 srt.; 26 cm
Tiraz 700.
ISBN 86 - 82589 - 80 - X
a) Aplikativni program "MATLAB" - Vezbe
COBISS - ID 104397068
Student
Broj indeksa
Skolska godina
Imena fajlova sa vezbama
Broj indeksa je ime svakog od 16 fajlova (za svaki termin po jedan), anjihove ekstenzije su 1,2, . . . ,16. Fajlovi se otvaraju na pocetku svakogtermina naredbom
>> diary imefajla
a zatvaraju na kraju rada naredbom
>> diary off
Parametri za izradu zadataka
a= (broj Vaseg indeksa)
b= (mesec Vaseg ro -denja, na primer b= 2, ako ste ro -deni ufebruaru)
c= (dan Vaseg ro -denja, na primer c= 15, ako ste ro -deni 15.u mesecu)
p= (broj slova Vaseg prezimena)
q = (broj slova Vaseg imena)
Evidencija izrade vezbi
Vezba br. Datum Overa Napomena1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
PREDGOVOR
Laboratorijske vezbe iz matematike sastavni su deo predmeta Numericka mate-
matika koji se slusa na prvoj godini smera Nove racunarske tehnologije, na Visoj
elektrotehnickoj skoli u Beogradu. Kao sto i sam naziv govori, one se odrzavaju u
racunarskoj laboratoriji, a obuhvataju neke teme diferencijalnog i integralnog racuna
i osnovne probleme numericke matematike - resavanje algebarskih i transcendentnih
jednacina i sistema, aproksimaciju i interpolaciju funkcija, kao i numericko resavanje
diferencijalnih jednacina i sistema. Efikasno resavanje ovih problema danas je neza-
mislivo bez mocnih programskih paketa kao sto su MATHEMATICA, MATHCAD,
MAPLE ili MATLAB.
Ove vezbe 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 vece mogucnosti
od onih koje su ovde prikazane. Vodeci univerziteti u svetu ga vec odavno koriste, ne
samo u kursevima numericke analize, nego i u kursevima svih ostalih matematickih
i tehnickih predmeta.
Naravno, za uspesan rad na vezbama potrebno je znanje iz linearne algebre i
diferencijalnog racuna funkcija jedne i vise promenljivih (u obimu koji se izlaze u
prvom semestru), kao i teorijske osnove numerickih metoda. Nadam se da ce se
studenti pre dolaska na vezbe upoznati sa problemom koji se resava, algoritmom,
uslovima konvergencije i nacinima za procenu greski pri numerickim izracunavanjima.
Beograd, 2003. Autor
SADRZAJ
Programski paket MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Laboratorijske vezbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Brojevi i izrazi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2. Matrice i vektori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. Dvodimenziona grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4. Diferencijalni racun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5. Integralni racun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6. Resavanje jednacina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7. Metoda iteracije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
8. Jednacine - 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 jednacine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
16. Sistemi diferencijalnih jednacina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
17. Razni problemi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
M - fajlovi korisceni u vezbama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Spisak naredbi koje su koriscene u vezbama . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Kratak opis nekih MATLAB naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Ispitna pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
PROGRAMSKI PAKET MATLAB
Programski paket MATLAB razvila je softverska kuca Math Works Inc., a sluzi
za slozena numericka izracunavanja i graficko predstavljanje rezultata. Osnovu pro-
grama cine raniji paketi LINPACK i EISPACK i prvenstveno je bio namenjen inze-
njerima koji se bave analizom i sintezom sistema upravljanja. Me -dutim, vremenom
je program dobio veliki broj novih matematickih funkcija, a razvijeni su i posebni
paketi, takozvani Toolboxovi, za razlicite oblasti primene. Tako postoji SYMBOLIC
MATH za simbolicka izracunavanja u matematici, SIMULINK za modeliranje i sim-
ulaciju statickih i dinamickih sistema, ali isto tako i Toolboxovi za parcijalne diferen-
cijalne jednacine, obradu signala, identifikaciju, optimizaciju, statistiku, finansijske
proracune, neuronske mreze, komunikacije i mnoge druge probleme primenjene mate-
matike. Aktuelna verzija (MATLAB 6) ima preko 30 takvih paketa, a i sami korisnici
mogu razvijati sopstvene Toolboxove. Pored toga, program ima i API (Application
Program Interface) koji ostvaruje vezu izme -du MATLAB-a i programa pisanih u
C-u ili Fortranu.
Kao programski jezik, MATLAB je vrlo jednostavan za koriscenje. On ima
mogucnost direktnog izvrsavanja 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:
graficki prozor, prozor za editovanje i help prozor. Na vrhu komandnog prozora su
padajuci meniji, a odmah ispod njih Toolbar. Glavni delovi padajuceg menija su
File, Edit, View, Web, Windows i Help. Standardni prompt je >>.
Za razliku od drugih programskih jezika, osnovni objekat MATLAB-a je matrica
brojeva ili simbola. Cak i brojevi su matrice dimenzija 1×1. Izrazi se u MATLAB-u
unose na prirodan nacin, 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 najveci 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 moze da sadrzi 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), ∗ (mnozenje),
/ (deljenje), (stepenovanje) i ′ (transponovanje). Za razliku od ovih operacija
postoje i takozvane element-by- element operacije koje se pozivaju sa tackom 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 mnozi odgovarajucim elementom matrice
B. Slicno, A.2 znaci da se svaki element matrice A kvadrira. Postoji veliki broj
matematickih funkcija koje su ugra -dene 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
izvrsava. Ako ne zelimo da se rezultat prikaze na ekranu, onda posle naredbe treba
uneti znak ;. U jednoj liniji moze da se navede i vise naredbi, a i jedan izraz moze
da se unosi u vise linija, pri cemu se sa . . . oznacava da je nastavak u sledecoj liniji.
Ovakav nacin rada MATLAB-a podseca 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, moze da se dodeli nekoj promenljivoj. Na primer,
>> x=sin(pi/4)+cos(pi/3);
Ako u komandnoj liniji otkucamo >> x dobicemo vrednost promenljive x.
Unos matrica
Matrice u MATLABmogu da se unesu na vise nacina: navo -denjem svih elemenata
(vrsta po vrsta), pozivanjem naredbi za manipulacije sa matricama i naredbi za
generisanje specijalnih matrica, kreiranjem m-fajlova ili ucitavanjem iz drugih fajlova.
Na primer, matricu
(
1 2 3 45 6 7 8
)
mozemo da unesemo i smestimo u A naredbom
>> A = [1 2 3 4; 5 6 7 8]
ili naredbom
>> A = [ 1 2 3 4
5 6 7 8]
Me -dutim, istu matricu mozemo da unesemo i naredbom
>> A=[1:4; 5:8]
Elementi matrice mogu da se pozovu navo -denjem 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 moze da stekne pocetni utisak o mogucnostima programa, ali i da
se upozna sa osnovnim naredbama i da dobije ideju sta bi mogao i sam da proba.
Za dalja objasnjenja korisnik moze da koristi help ili dokumentaciju koja se u ob-
liku pdf fajlova isporucuje sa programom i koja moze i da se preuzme sa adrese
www.mathworks.com.
LABORATORIJSKE VEZBE
U ovom praktikumu je dato 17 vezbi kroz koje treba, koristeci programski paket
MATLAB, resavati razne probleme iz matematike koji su u okviru sadrzaja pred-
meta Inκzenjerska matematika i Numeriκcka matematika. Neke od tih problema
studenti su vec upoznali u prvom semestru, a neke upoznaju paralelno s vezbama
u toku drugog semestra. Pored ponavljanja i produbljivanja delova diferencijalnog
i integralnog racuna i upoznavanja sa numerickim metodama u linearnoj algebri,
teoriji aproksimacija i teoriji diferencijalnih jednacina, studenti imaju priliku i da
savladaju osnovne naredbe programa MATLAB, kao i neke naredbe za simbolicko
izracunavanje iz Toolboxa SYMBOLIC MATH.
U 1. vezbi 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, col-
lect, expand, simple).
U 2. vezbi daju se naredbe za unos i manipulacije sa matricama i vektorima, kao
i naredbe za operacije sa matricama.
U 3. vezbi koriste se naredbe za crtanje tacaka, 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. vezbi koriste se naredbe diff, int i solve za analiticko nalazenje
izvoda, integrala i resenja jednacina. Pored ranije upoznatih naredbi koristi se i
naredba ezplot.
U vezbama 6-8. numerickim metodama se resavaju algebarske i transcendentne
jednacine, pri cemu se koriste uglavnom vec upoznate naredbe.
Linearni sistemi u vezbama 9 i 10 resavaju se i analiticki i numericki. Dati su
programi za Kramerovo pravilo, Gaus-Zordanovu metodu i za metodu iteracije.
Nelinearni sistemi resavaju se u vezbama 11 i 12, pri cemu se uvode i naredbe za
3D grafiku (mesh, surf, surfl, contour).
U 13. vezbi koriste se naredbe poly i polival za interpolaciju. Dat je i program
za Lagranzov interpolacioni polinom.
U 14. vezbi resava se problem aproksimacije razlicitim funkcijama. Dati su
programi za linearnu i polinomialnu regresiju.
U vezbama 15 i 16 numericki se resavaju diferencijalne jednacine i sistemi dife-
rencijalnih jednacina, pri cemu se koristi naredba ode23.
Poslednja vezba sadrzi razne, slozenije, primere za obnavljanje svih prethodnih
tema.
Za realizaciju svih ovih vezbi korsceno je svega stotinak MATLAB naredbi. Ve-
cina od njih (preko 80) data je kroz primere prvih pet vezbi, a u ostalim vezbama
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 razlicite formate zapisa realnog broja sluze 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 vise naredbi
odvojene znakom , ili ;. U poslednjem slucaju naredba se ispred znaka ; izvrsi, ali serezultat ne prikazuje na ekranu.
(1) pi, a=sqrt(2)
(2) format long, pi, a
(3) format long e, pi, a
(4) format short e, pi, a,
(5) format, pi, a
(6) format rat, pi, a
(7) 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 brojdobijaju 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 pomocu brojeva, znakova za operacije i funkcijskih imena kaosto su:
sqrt, exp, log, log10, sin, cos, tan, asin, atan,...
(1) 2/2*3
(2) 6-8/2+32-2
(3) 322
(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) i12345
(8) sqrt(1+i*sqrt(3))+sqrt(1-i*sqrt(3))
(9) (1+i)6-(1-i)6
(10) log(i), ii
Simbolicki izrazi
Ako u izrazu ucestvuju i promenljive, onda one moraju da se deklarisu kao simbolickepromenljive, sto moze da se uradi naredbom syms. Za rad sa izrazima mogu da se koristei naredbe
collect, expand, factor, simple.
(1) syms x y, factor(x3+y3)
(2) f=expand((x+1)*(x+2)+(x+3)*(x+4)); f
(3) simple((x3-1)/(x-1))
(4) simple(cos(3*acos(x))
(5) simple(tan(2*atan(x))
(6) Izraz
(
x√x− y√y√x−√y
+√xy
)(√x−√yx− y
)2
moze da se uprosti naredbama
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*B2; simple(C)
14
Zadaci
1. Utvrditi sta je vece eπ ili πe.
2. Brojeve 2222, 2222, 222
2, 22
22
, 2222, 2222, 2222 pore -dati po velicini.
3. Uprostiti izraz sin4π8+ sin4
3π8
+ sin45π8
+ sin47π8.
4. Izracunati |z| ako je z =(1+ i)100
(1− i)96 − i(1 + i)98.
5. Izraziti sinnx za n= 2,3,4,5 u funkciji sinx i cosx.
15
2. MATRICE I VEKTORI
Unos matrica
Elementi matrice unose se po vrstama, pri cemu se vrste razdvajaju znakom ; ili pomocutastera 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 nacin. 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
Me -dutim, moze 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, jedinicna matrica i matrica ciji su svielementi 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 slucajni brojevi, sa uniformnom raspodelom naintervalu (0,1) ili normalnom raspodelom sa nultom srednjom vrednoscu i jedinicnomvarijansom, postoje naredbe rand i randn. Postoji i naredba magic za generisanje magicnematrice.
(8) A=rand(5); A
(9) B=randn(5); B
(10) C=magic(10); C
Manipulacije elementima matrica
Elemenat matrice koja je uneta moze da se izdvoji ili promeni navo -denjem odgovarajucihindeksa. Na isti nacin moze da se izdvoji i blok elemenata ili podmatrica i da se dodelinekoj drugoj matrici. Neka su matrica A i vektor x generisani naredbama
A=[1:5; 6:10; 11:15; 16:20]; x=10:-1:1;
Uocite koji su efekti sledecih 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 mogui da se prepakuju u matricu drugih dimenzija naredbom reshape.
(10) B=reshape(A,5,4); C=reshape(A,2,10);
Najmanji i najveci element vektora dobijaju se naredbama min i max, a iste naredbe zamatricu daju vektore najmanjih i najvecih 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 rastucem ili opadajucem redu.
(15) x=randperm(20); y=sort(x); y
(16) z=y(end:-1:1); z
U slucaju matrice A, naredbom sort(A,1) ure -duju se elementi po kolonama, a naredbomsort(A,2) ure -duju 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, mnozenja i stepenovanjamatrica koriste se znaci +, -, ’,*,, inverzna matrica se dobija naredbom inv, a deter-minanta 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 uobicajenog mnozenja matrica, postoji i mnozenje matrica i vektora po principu’element po element’, kao sto je to slucaj kod sabiranja i oduzimanja. U tom slucaju ispredznaka * stavlja se tacka.
(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
Slicno vazi 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)
Ako je f neka od ugra -denih funkcija, onda se f(A) tako -de racuna za svaki element.
(10) x=0:1/10:1; y=sin(x); z=exp(x); y, z
Karakteristicni 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. Izracunati zbir kvadrata prvih hiljadu prirodnih brojeva.
3. Generisati slucajnu matricu reda 10, a zatim odrediti najvece elemente u svakojkoloni i najmanji od njih, kao i najmanje elemente u svakoj koloni i najveci od njih.Uporediti, zatim, tako dobijena dva broja.
4. Generisati slucajnu matricu reda 10 i odrediti njoj inverznu matricu (zapisati samonaredbe kojima ste to dobili).
5. Za matricu A=[a 1 0; 0 a 1; 0 0 a] odrediti njen deseti stepen.
6. Izracunati vrednost determinante
∣
∣
∣
∣
∣
a b+ c 1b c+ a 1c a+ b 1
∣
∣
∣
∣
∣
.
19
3. DVODIMENZIONA GRAFIKA
Naredba plot
Naredba plot sluzi za crtanje linija u ravni. Upoznajte je, najpre, naredbom plotdemo.Sa grafickog displeja prelazi se na komandni pritiskom bilo koje tipke, a naredbom shg
vraca se tekuci graficki displej.
Naredbom plot(y) dobija se izlomljena linija koja spaja susedne tacke 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)=i2; plot(y)
Naredbom plot(x,y) dobija se izlomljena linija koja spaja susedne tacke sa koordinatama(x(i), y(i)) za i = 1,2, . . . , n, gde je n dimenzija vektora x i y. Ova naredba moze da sekoristi za crtanje grafika funkcija jedne promenljive. Izbor i boju linija i markiranje tacakavideti 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 odgovarajuce kolonematrica.
(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
Grafici parametarski datih funkcija tako -de se lako crtaju naredbom plot.
(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 mozemo ekran podeliti na m× n delova i u svakom od njih prikazatineki 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 simbolicki 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 sar = 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)=i3; end; x
(2) x=[]; for i=1:10, x=[x,i3]; 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 opsti oblik
while relacija
naredbe
end
realizuje petlju koja se izvrsava sve dok je tacna navedena relacija. Znacenja relacijskihsimbola <, >, <=, >=, ==, ∼= i logickih operacija &, | i ∼ videti pomocu help naredbe.
(5) Neka je an =12+
13+ · · ·+ 1
n. Resenje nejednacine an < 0.8 (po n) moze da se
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 tacna navedena relacija. Zadavanje vise uslovapostize se naredbama if i elseif, odnosno else.
M - fajlovi
Niz MATLAB naredbi moze da se cuva u fajlu sa datim imenom i estenzijom .m - to suscript fajlovi. Sam fajl sa naredbama moze da se kreira u bilo kom editoru, a izvrsava seu MATLAB-u navo -denjem imena fajla.
(1) Kreirati fajl fibbr.m koji sadrzi naredbe za odre -divanje i crtanje Fibonacijevihbrojeva 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 izvrsava se naredbom fibbr.
Posebna vrsta m - fajlova su funkcijski fajlovi u kojima se definisu nove funkcije saulaznim i izlaznim parametrima. Prva naredba je obavezno function.
(1) Kreirati fajl f1.m u kojem se definise funkcija f : x→ e−x+ sinx. Na primer:
%---- f1.m -----
%
function y=f1(x)
y=exp(-x)+sin(x);
pa naredbom >> f1(pi/2) izracunati 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 elementislucajni brojevi od 0 do 9.
(3) Crtanje fraktala (o fraktalima mozete 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 gra-fiku 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 slucajnibrojevi iz intervala [min{b, c, p, q}, max{b, c, p, q}].
3. Koristeci 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 dase koriste i naredbe pretty i simple. ˇ
(1) f=’sin(x2)’; g=diff(f), h=diff(f,2), v=diff(g), h-v
(2) f=’x5’; 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=’ax’; 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 nared-bama fx=diff(f,’x’) i fy=diff(f,’y’), gde su x i y nezavisne promenljive.
(6) f=’x2*y3’; 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(x2+y2));
a=jacobian(f), b=jacobian(g)
Tejlorova formula
Tejlorov polinom petog reda koji aproksimira funkciju f u okolini tacke x = a dobija senaredbom 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(x2); 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, nulefunkcije 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=’x2*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=a2*log(a); fc=c2*log(c);
plot(a,fa,’y*’,c,fc,’g*’)
Lagranzova teorema
Koriscenjem naredbi koje smo do sada upoznali mozemo da damo geometrijsku ilustracijuLagranzove teoreme po kojoj za diferencijabilnu funkciju f na intervalu [a, b] postoji tackac0 takva da je
f ′(c0) =f(b)− f(a)
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
(1) f(x) = ln
√
(x− 1)3x+1
, (2) f(x) = xtanx, (3) f(x) = xxx
.
2. Odrediti deseti izvod funkcije f ako je
(1) f(x) = xne−x, (2) f(x) = sin(px+ q), (3) f(x) = sin2x.
3. Odrediti parcijalne izvode funkcije f ako je
(1) f(x, y) =x
√
x2 + y2, (2) f(x, y) = arctan
xy√
1+ x2 + y2.
27
4. Odrediti Tejlorov polinom reda 6 koji aproksimira funkciju
(1) f : x 7→ e2x−x2
, (2) f : x 7→ esinx, (3) f : x 7→ ln(cosx)
u okolini tacke x= 0.
5. Nacrtati grafike funkcije f : x 7→ (cosx)sinx i Tejlorovih polinoma T3(x), T6(x) iT7(x) koji aproksimiraju funkciju f u okolini tacke x= 0.
6. Odrediti Tejlorov polinom reda 10 koji aproksimira funkciju f : x 7→ x2 lnx u okolinitacke x= 1.
28
7. Odrediti tacke ekstremuma, tacke prevoja i nacrtati grafike date funkcije i njenaprva dva izvoda.
(1) f(x) = p · x+ x3 − arcsinx, (2) f(x) = psinbx+ q cos cx.
8. Geometrijski ilustrovati Lagranzovu teoremu za funkciju f : x 7→ x3/q na intevalu[0, p].
29
5. INTEGRALNI RACUN
Neodre -deni integrali
Neodre -deni integral funkcije f : R → R dobija se naredbom int(f) ili int(f,’x’). Zabolji zapis mogu da se koriste i naredbe pretty i simple. Na primer, integrale
∫
x2 − x+2x4 − 5x2 +4
dx,
∫
x lnx+1x
dx,
∫
arctan√xdx,
∫
sin10 xdx,
∫
ax+ bcx+ d
dx
dobijamo sledecim naredbama:
(1) syms x; f=(x2-x+2)/(x4-5*x2+4); int(f), pretty(ans)
(2) g=x*log((x+1)/x); h=atan(sqrt(x)); f=[g;h]; a=int(f), pretty(a(1))
(3) syms x y; f=xy; A=int(f), B=int(f,’x’), C=int(f,’y’)
(4) f=sin(x)10; g=int(f), pretty(g), ezplot(g), ezplot(f)
(5) syms a b c d; f=(a*x+b)/(c*x+d); g=int(f), pretty(g)
Odre -deni integrali
Naredbom int(f,a,b) dobija se∫ b
af(x)dx. Na primer, integrale
∫ 1
0
x2 +3x(x+1)(x2 +1)
dx,
∫ π/4
0
cos3 xdx,
∫ 3
0
arcsin
√
x1+ x
dx,
∫ π/2
0
tet sin tdt
dobijamo sledecim naredbama:
(1) syms x; f=(x2+3*x)/((x+1)*(x2+1)); int(f,0,1)
(2) f=cos(x)3; I=int(f,0,pi/4), numeric(I)
(3) h=sqrt(x/(1+x)); g=asin(h); a=0; b=1; A=int(g,a,b), numeric(A)
(4) 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 odre -dene, a oznaka za ∞ je inf.
(1) syms x; f=1/(1+x2); 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), nu-
meric(b)
Duzina luka date krive
Ako je y = f(x) za x ∈ [a, b], onda je l =
∫ b
a
√
1+ y′2(x)dx, ako je x = x(t) i y = y(t)
za t ∈ [t1, t2], onda je l =
∫ t2
t1
√
x′2(t) + y′2(t)dt, a ako je r = r(ϕ) za ϕ ∈ [α,β], onda je
30
l =
∫ β
α
√
r2(ϕ) + r′2(ϕ)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 duzina odgovarajuceg luka dobija sledecim naredbama:
(1) syms x; f=log(x2-1); g=sqrt(1+diff(f)2); l=int(g,2,5)
(2) syms a; f=x2; 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. Izracunati
∫
dxx3 +1
,
∫
x4 +4x3 +11x2 +12x+8(x2 +2x+3)2(x+1)
dx,
∫
x50exdx,
∫
dx(1 + x2)10
.
2. Za realne parametre a, b i c izracunati∫
sin(ax) cos(bx)sin(cx)dx,
∫
ax+ bx2 + x+1
dx,
∫
eax sin(bx) cos(cx)dx.
3. Izracunati
∫ 1
0
ln(1 + x)1 + x2
dx,
∫ π/2
0
sinxsin2xsin3xdx,
∫ 2π
0
dx
sin4 x+ cos4 x.
31
4. Izracunati prvih deset clanova nizova (an) i (bn) ako je
an =
∫ 1
0
xn arcsinxdx, bn =
∫ π/2
0
xn cosxdx.
5. Izracunati∫ ∞
0
arctanx(1 + x)2
dx,
∫
0
∞ x3 lnx(x4 +1)3
dx,
∫ ∞
1
dx
x√x− 1
,
∫ ∞
−∞
dx2x2 − 5x+7
.
6. Izracunati duzinu luka datog sa
(1) y = x
√
x1− x
, x ∈ [0,5/6], (2) r = sin3(ϕ/3), ϕ ∈ [0,3π],
(3) x= t− sin t, y = 1− cos t, t ∈ [0,2π].
32
6. RESAVANJE JEDNACINA
Vezba 1
Primenom programskog paketa MATLAB izolovati korene jednacine lnx= cosx grafickommetodom.
(1) Najpre nacrtati funkcije f : x 7→ lnx i g : x 7→ cosx.
[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→ lnx− cosx i suzavati interval u kome se nalazi koren datejednacine
fplot(’log(x)-cos(x)’,[1,3]),grid
fplot(’log(x)-cos(x)’,[1.2,1.4]),grid
.................
Vezba 2
Koristeci naredbu fzero resiti jednacinu iz prethodne vezbe.
(1) Koristiti dobijene intervale [a, b] iz vezbe 1.
fzero(’log(x)-cos(x)’,[a,b])
(2) Zasto program ne moze da resi jednacinu ako je [a, b] = [3,4] ?
(3) Resiti jednacinu koristeci samo pocetnu 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)
Vezba 3
Neka je funkcija h (iz vezbe 1) definisana u function fajlu h.m
% ------ h.m ------
function y=h(x)
y=log x-cos x;
Kreirati function fajl metpolin.m za resavanje jednacine h(x) = 0 metodom polovljenjaintervala sa tacnoscu 1000eps. Ulazni parametri neka budu funkcija h i pocetna vrednostx0, a izlazni parametar resenje date jednacine. 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 razlicite pocetne vrednosti x0, dobijamo resenje datejednacine.
Zadaci
1. Grafickom metodom locirati korene, a zatim resiti datu jednacinu.
1) x3 − ax+1 = 0, 2) lnx− x+ a= 0.
34
2. Isprobati naredbu solve za resavanje jednacina iz prethodnog zadatka.
3. Isprobati naredbu roots za nalazenje nula polinoma i pomocu nje resiti prvujednacinu.
4. Naredbom line oznaciti na grafiku tacku u kojoj je nula funkcije (videti primer uzerodemo).
5. Metodom polovljenja intervala resiti jednacinu
(1) xx = b+ c, (2) xxx
= p+ q.
6. Modifikovati metodu polovljenja intervala u metodu suzavanja intervala, pri cemuse za novu tacku (umesto sredista datog intervala) uzima slucajna tacka tog intervala.
35
7. METODA ITERACIJE
Vezba
Kreirati m - fajl, na primer mit.m, sa MATLAB naredbama za resavanje date jednacineiterativnom metodom. Ako je data jednacina oblika x= g(x) i ako je funkcija g definisanau m - fajlu fung.m, sadrzaj fajla mit.m moze 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, jednacina4x− 5 = 5 lnx
ima jedno resenje na intervalu (0.5,2], a drugo na intervalu [2,+∞). Ako jednacinunapisemo u obliku
x= 1.25(1+ lnx),
onda jeg(x) = 1.25(1+ ln(x), g′ = 1.25/x,
pa su uslovi konvergencije ispunjeni za x > 1.25, sto znaci da metodom iteracije mozemodobiti drugo resenje. 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 resenje treba jednacinu 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 razlicite pocetne vrednostix0 i razlicitu tacnost e pratiti broj potrebnih iteracija.
Zadaci
1. Grafickom metodom izolovati resenja, a zatim metodom iteracije resiti jednacinu
1) 2arctanx= x+ a
2) ex = x2 + a.
37
2. Metodom iteracije resiti datu jednacinu sa tacnoscu (1) 10−5, (2) 10−8 i nacrtatigrafik vrednosti dobijenih iteracijama.
1) cosx= 3x− a 2) lnx+ (x− a)3 = 0
3) tg x= (2a+1)x 4) (x− a)2 = e−x.
3. Umesto mit.m kreirati function fajl sa naredbom
function [x,xn,gr]= miter(g,x0,e,n),
gde je x0 pocetna vrednost, e zadata tacnost, n maksimalni broj iteracija, xn pribliznoresenje, x vektor vrednosti dobijenih iteracijama, a gr procenjena greska pribliznog resenja.
38
8. JEDNACINE - OBNAVLJANJE
Vezba 1
Kreirati m - fajl, kvkoren.m, sa MATLAB naredbama za izracunavanje kvadratnog korenarealnog broja x Njutnovom metodom. Na primer, sadrzaj fajla kvkoren.m moze da izgledaovako:
% ----- 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
Koristeci kvkoren i naredbu for izracunati kvadratne korene prirodnih brojeva manjih od100.
Vezba 2
Za graficki prikaz iteracija xn = g(xn−1) na intervalu [a, b] (i u slucaju konvergencije i uslucaju divergencije) moze da se koristi function fajl miter.m ciji je sadrzaj sledeci:
% ---- 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 jednacinu x=g(x)’);
grid; hold off;
Koristeci miter i funkciju g(x) = 1+x−x2
y, izracunati kvadratni koren broja y i za razlicite
pocetne vrednosti x0 nacrtati tok iterativnog procesa.
Zadaci
1. Kreirati function fajl u kojem se racuna n - ti koren broja x, gde je n prirodanbroj veci od 1 (ulazni parametri neka budu n i x), a zatim izracunati b+ c - ti koren brojaa+ p+ q.
2. Iterativnom metodom resiti jednacine:
(1) x= (b+ c)e−x (2) x3 − x2 − x− b= 0
40
(3) (x+ p)2 + q sinx= 0
3. Njutnovom metodom resiti jednacine:
(1) x3 − x− b= 0
(2) x4 +2x3 +7x2 − c= 0
4. Numericki i analiticki resiti jednacinu x4 − x− p= 0.
41
5. Odrediti dva resenja jednacine e−bx = sincx.
6. Resiti jednacinu e−x/b+ sin(x/c) = 0 na intervalu [0,20].
7. Odrediti sva resenja jednacine
288x5 − 720x4 +694x3 − 321x2 +71x− 6 = 0.
8. Odrediti lokalne ekstremume funkcije f : x 7→ qx+ p lnx− x3.
42
9. LINEARNI SISTEMI - I
Vezba 1
Kreirati fajl CramerovoPravilo.m ciji je sadrzaj:
% ---- 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 slucajne.
Vezba 2
Kreirati fajl GaussJordanovaMetoda.m ciji je sadrzaj:
% ---- 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
Vezba 3
Naredbama
syms A B m;
A=[m 1 1; 1 m 1; 1 1 m]; B=[1; m; m*m];
X=A\B
resiti 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 slucajne permutacije brojeva1,2, . . . ,10 (videti naredbu randperm). Resiti ovaj sistem
(1) matricnom metodom,
(2) Cramerovim pravilom,
(3) Gauss Jordanovom metodom,
44
2. Resiti sistem
mx+ ny+ z = 1, x+ ny+mz = 1, x+mny+ z = n
za m 6∈ {−2,1} i n 6= 0.
3. Resiti sistem (najpre odrediti rang matrice sistema i odabrati slobodne promenljive)
(1) 3x− 2y+5z+4u= 2, 6x− 4y+4z+3u= 3, 9x− 6y+3z+2u= 4,
(2) 3x− y+4z+4u− v = 0, 6x− 2y+2z+5u+7v = 0, 9x− 3y+4z+8u+9v = 0.
45
10. LINEARNI SISTEMI - II
Vezba 1
Dat je sistem1.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 matricnoj 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 resiti sistem naredbom X=A\B, a zatimnaredbom A*X-B proveriti dobijeno resenje.
Vezba 2
Napisati sistem u oblikuX = 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.
Izracunati norme matrice C, a zatim kreirati m - fajl, na primer linsis.m za resavanjesistema iterativnom metodom. Ako su matrice C i D unete, sadrzaj tog fajla moze daizgleda 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 razlicite vrednosti X0 i e, pratiti broj potrebnih iteracija.
Vezba 3
Napisati sistem u Jakobijevom obliku
xi = −1aii
i−1∑
j=1
ai,jxj +n∑
j=i+1
ai,jxj − bi
.
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. Matricnom metodom resiti dati sistem:
(1)
qx− 1.8y+3.6z = −1.73.1x+2.3y − 1.2z = 3.6
1.8x+2.5y+4.6z = 2.2
(2)
2px+1.2y+2.1z+0.9u=− 7
1.2x+11.2y+1.5z+2.5u=5.3
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 rese Jakobijevom metodom.
3. Ispitati da li prethodni sistemi mogu da se rese izborom matrica C i D kao ulinsis.m.
4. Generisati linearni sistem reda 50 sa slucajnim koeficijentima i ispitati da li mozeda se resi
(1) matricnom, (2) iterativnom
metodom.
48
11. NELINEARNI SISTEMI - I
Vezba 1
Dat je sistemx3 + y3 − 6x+3 =0
x3 − y3 − 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 + y3 − 6x+3, g : (x, y) 7→ x3 − y3 − 6y+2,
a zatim naredbama
contour(x,y,z,[0. 0.]), hold,
contour(x,y,u,[0. 0.])
odrediti njihov presek u ravni Oxy i na osnovu toga lokalizovati resenje datog sistema.Umesto naredbe mesh probati i naredbe surf i surfl.
Vezba 2
Napisati dati sistem u obliku x= ϕ(x, y), y = ψ(x, y), gde je
ϕ : (x, y) 7→ x3 + y3
6+
12
ψ : (x, y) 7→ x3 − y3
6+
13,
a zatim odrediti parcijalne izvode funkcija ϕ i ψ. Kreirati m -fajl, na primer fipsi.m, kojice za date vrednosti x i y da racuna 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
Vezba 3
Kreirati m - fajl, na primer nelsis.m, sa MATLAB naredbama za resavanje nelinearnogsistema od dve jednacine sa dve nepoznate iterativnom metodom
xn+1 = ϕ(xn, yn), yn+1 = ψ(xn, yn),
gde su x0 i y0 pocetne vrednosti i gde se proverava uslov
|ϕ′x|+ |ϕ′y|< 1, |ψ′x|+ |ψ′y|< 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 razlicite 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 vezbi uporediti sa rezultatima dobijenim sa nelsis.
50
2. Iterativnom metodom resiti dati sistem
(1)sin(x− 0.6)− y+ b=1.6
3x− cosy =0.9
(2)2x2 − xy − (5 + c)x= −1
x+3 lnx− y2 = 0.
51
12. NELINEARNI SISTEMI II
Vezba
Sistemx3 + y3 − 6x+3 =0
x3 − y3 − 6y+2 =0
resiti metodom Njutn Kantorovica u 5 iteracija i dobijene vrednosti za x i y u svakojiteraciji 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 izracunavaju vrednosti funkcija f i g, gde je
f(x, y) = x3 + y3 − 6x+3, g(x, y) = x3 − y3 − 6y+2,
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 Kantorovica.
% --------- njutnkantmetoda.m -----------
% Metoda Njutn Kantorovica 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 resenja prethodnog sistema koriscenjem naredbe solve.
2. Metodom Njutn Kantorovica resiti date sisteme (odrediti sva resenja):
(1)x2 + y2 − x=0
x2 − y2 − y =0
53
(2)3x2 − y2 =0
3xy2 − x3 − 1 =0
(3)x+ y3 − 5y2 − 2y =10
x+ y3 + y2 − 14y =29
3. Napisati program za resavanje sistema od tri jednacine sa tri nepoznate metodomNjutn Kantorovica, a zatim resiti sistem
x2 − x+ y2 + z2 = 5, x2 + y2 − y+ z2 = 4, x2 + y2 + z2 = 6.
54
13. INTERPOLACIJA
Vezba 1
Polinom Pn(x), gde je
Pn(x) = a0xn+ a1x
n−1 + · · ·+ an−1x+ 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 izracunaju iz sistema
A · p= y′,
gde je A Vandermondova matrica, a y vektor (vrsta) datih podataka. U fajlu interp-
pol.m definisan je function koji ima kao ulazne parametre vektore (vrste) x i y, a izlazniparametar 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→ sinx generisemo 10 tacaka, na primer,
x=1:10; y=sin(x),
onda pozivomp=intrppol(x,y)
dobijamo koeficijente interpolacionog polinoma, a na grafiku vidimo da polinom sadrzidate tacke. Nacrtati na istom grafiku i funkciju x 7→ sinx, a zatim na drugom grafikurazliku polinoma i funkcije x 7→ sin. Postupak ponoviti sa manjim i vecim brojem datihtacaka.
55
Vezba 2
U fajlu lagintpol.m programiran je Lagranzov oblik interpolacionog polinoma. Ulaznevelicine su vektori podataka xz i yz i argument xt za koji se trazi vrednost polinoma.Izlazne velicine su: vrednost polinoma u xt, koeficijenti polinoma, kao i simbolicki zapissamog 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 vezbe ponoviti sa lagintpol.
Zadaci
1. Generisati podatke (najmanje 10) datom funkcijom f , a zatim odrediti odgovarajuciLagranzov interpolacioni polinom.
(1) f(x) = b lnx
56
(2) f(x) = c/(1 + x2)
(3) f(x) = pxe−x − qex
2. Modifikovati lagintpol.m tako da se u Lagranzovom obliku polinoma stampaju ipolinomi L0(x), L1(x), . . . Ln(x). Rezultat prikazati na jednom od prethodnih primera.
57
14. APROKSIMACIJA
Vezba 1
Ako je aproksimaciona funkcija f linearna,
f(x) = ax+ b,
onda metodom najmanjih kvadrata dobijamo sistem za nepoznate parametre a i b
an∑
i=0
xi+ (n+1)b=n∑
i=0
yi, an∑
i=0
x2i + bn∑
i=0
=n∑
i=0
xiyi,
pa je
a=
∑ni=0(xi − x)(yi − y)∑ni=0(xi − x)
2, x=
1n+1
n∑
x=0
xi, y =1
n+1
n∑
i=0
yi.
Ovakva aproksimaciona funkcija naziva se linearnom regresijom. U fajlu linreg.m sunaredbe za izracunavanje 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 re-gresije.
Vezba 2
Sistem iz prethodne vezbe moze da se napise i u obliku
ATA[a b]T = AT y,
gde je
AT =
(
x0 x1 · · · xn1 1 · · · 1
)
.
Ako je aproksimaciona funkcija f polinom stepena m, odnosno
f(x) = a0xm+ a1x
m−1 + · · ·+ am−1x+ am,
58
onda metodom najmanjih kvadrata dobijamo sistem oblika
ATAa= AT y,
gde je
A=
xm0 xm−10 · · · x0 1xm1 xm−11 · · · x1 1· · · · · · · · · · · · · · ·xmn xm−1n · · · xn 1
, a= [a0 a1 . . . an]
′, y = [y0 y1 . . . yn]′.
Iz ovog sistema sledi da jea= (ATA)−1AT y.
U fajlu polreg.m date su naredbe kojima se racuna 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 vezbe aproksimirati polinomima reda 1,2,3,...,10.
59
2. Prouciti MATLAB maredbu polyfit i pomocu nje uraditi prethodne primere.
3. Prouciti 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 jef(x) = a0f0(x) + a1f1(x) + · · ·+ anfn(x),
onda je
A=[f0(x) f0(x) ... fn(x)] i p=A\ y’.
Na primer, uzeti f(x) = a0 + a1x+ a2 sin(x), i
A=[ones(size(x’)) x’ sin(x’)].
60
5. Prouciti MATLAB naredbu nlinfit za aproksimaciju nelinearnim funkcijama (ponepoznatim parametrima) i isprobati za:
(1) f(x) = a1ea2x+ a3ea4x
(2) f(x) =a1 + a2x+ a3x2
a4 + a5x+ a6x2.
61
15. DIFERENCIJALNE JEDNACINE
Vezba
Data je diferencijalna jednacina prvog reda
y′ = 1+ xsin(xy).
Kreirati m - fajl, na primer difjed.m (tipa function fajla), gde ce za date vrednosti x iy da se izracunava vrednost y′.
% ------ 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 razlicite pocetne vrednosti y0 graficki prikazati resenje date jednacine na intervalu[x0,x1].
Zadaci
1. Numericki odrediti partikularno resenje jednacine
y′x= 2y+ x3ex, y(1) = 0
na intervalu [1, p] i graficki uporediti sa tacim resenjem koje je dato funkcijom
y : x 7→ x2(ex − e).
62
2. Resiti numericki i analiticki jednacinu
y′ = cosx− sinx− y, y(0) = q
i graficki uporediti dobijena resenja na intervalu [0,10].
3. Na istom grafiku prikazati bar 10 razlicitih partikularnih resenja date jednacine naintervalu [0, b/c+ c/b].
(1) y′ = x3 − y3,
63
(2) y′ = xy+ e−y,
(3) y′ =1+ y2
1+ x2.
(4) y′ =y2
x2+yx.
64
4. Napisati MATLAB program za resavanje diferencijalne jednacine Ojlerovom me-todom i testirati na prethodnim primerima, a zatim uporediti sa rezultatima dobijenimnaredbom ode23.
5. Napisati MATLAB program za resavanje diferencijalne jednacine modifikovanomOjlerovom metodom i metodom Runge Kuta i testirati na prethodnim primerima, a zatimuporediti sa rezultatima dobijenim naredbom ode45.
65
16. SISTEMI DIFERENCIJALNIH JEDNACINA
Vezba 1
Dat je sistem diferencijalnih jednacina
y′ = y cosx− z sinxz′ = y sinx+ z cosx
, 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 izracunavaju vrednosti izvoda y′ i z′.
% ----- 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))
graficki prikazati numericka resenja datog sistema i zavisnost promenljivih y i z u faznojravni.
Vezba 2
Dat je sistem diferencijalnih jednacina
y′ = − 2y+5u
z′ = y sinx− y − z+3u
u′ = − 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 izracunavaju vrednosti izvoda y′, z′ i u′
% ------ 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)
graficki prikazati numericka resenja.
Zadaci
1. Resiti numericki dati sistem na intervalu [0, p] za razlicite pocetne vrednosti
(1) y′ = xy+ z, z′ = y − z.
(2) y′ = x+ z2, z′ = xy.
(3) y′ = u− xz+1, z′ = x+uxy, u′ = 3(y2 + z).
67
2. Za nekoliko razlicitih pocetnih vrednosti prikazati u faznoj ravni zavisnost nepoz-natih promenljivih datog sistema
(1) y′ = 2y+ z2 − 1, z′ = 6y − z2 +1,
(2) y′ = 1− y2 − z2, z′ = 2yz,
(3) y′ =zx, z′ = −xy.
68
17. RAZNI PROBLEMI
1. Resiti datu jednacinu
(1) cx5 − bx3 + a= 0
(2) bx2 − a ln(x+1) = c.
2. Resiti 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. Resiti sistem
x+ y2 + z3 = 3p, x2 + y3 + z = p, x3 + y+ z2 = 3p/2.
69
4. Resenja jednacine me−2x−3x= 0, za 100 vrednosti parametra m u intervalu [0,10],nacrtati u zavisnosti od m. Isprobati sledece 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 + a2x+ a3 sinx.
6. Funkciju f : x 7→ b sinx na [0, π] aproksimirati funkcijom g : x 7→ a1ea2x+ c3ea4x.
70
7. Funkcijom x 7→ a1 sin(a2x) 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 Lagranzov interpolacioni polinom koji sadrzi tacke (x, sinx), gde je
x ∈ {0, π/36, π/18, π/12, pi/9, 5π/36, π/6},
a zatim pomocu njega izracunati vrednosti sinusa uglova od 1◦ do 30◦ sa korakom od 1◦.
9. Resiti jednacinu x3 − nx+ p = 0 za n ∈ {1,2,3,4,5}, a zatim odrediti Lagranzovinterpolacioni polinom koji sadrzi tacke (n,xn), gde je xn najvece resenje odgovarajucejednacine.
10. Objasniti rezultat sledecih 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 odre -duje Njutnov oblik interpolacionog polinoma injegov rad prikazati na primerima koji su ura -deni u temi 11.
12. Ojlerovom metodom resiti jednacinu
y′′+ (y2 − 1)y′+ y = 0
na intervalu [0, p] za nekoliko razlicitih pocetnih uslova.
72
M - FAJLOVI KORISCENI U VEZBAMA
CramerovoPravilo resavanje linearnog sistema
Fibbr Fibonacijevi brojevi
fractali crtanje fraktala
GaussJordanovaMetoda resavanje linearnog sistema
interpol interpolacija
kvkoren kvadratni koren
LagranzovaTeorema graficki prikaz teoreme
Lagintpol Lagranzov interpolacioni polinom
linsis resavanje linearnog sistema
linreg linearna regresija
metpolint metoda polovljenja intervala
mit metoda iteracije
miter metoda iteracije
nelsis resavanje nelinearnog sistema
NjutnKantmetoda resavanje nelinearnog sistema
polreg polinomialna regresija
slucmat slucajna matrica
73
SPISAK NAREDBI KORISCENIH 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 opste namene
help pomocdemo demonstracija programaexit izlazak iz programaquit isto sto i prethodnawho tekuce promenljivewhat spisak m - fajlova
Matematicke funkcije
abs apsolutna vrednostsin sinuscos cosinustan tangensasin arcussinusacos arcuscosinusatan arcustangensexp eksponencijalna fukcijalog logaritamska funkcija sa osnovom elog10 logaritamska funkcija sa osnovom 10
Polinomi
poly karakteristicni polinom matriceroots nule polinomapolyval vrednost polinomaconv proizvod dva polinomadeconv kolicnik dva polinomapolyfit interpolacioni polinom
Matrice
det determinanta matriceinv inverzna matricarank rang matricenorm norma matricediag dijagonalna matricaeye jedinicna matricamagic magicna matricazeros nulta matricarand slucajna matrica
76
Diferencijalne jednacine
ode23 metoda Runge Kuta drugog/treceg redaode45 metoda Runge Kuta cetvrtog/petog redadsolve analiticko resenje
2D grafika
plot 2D grafikfplot 2D grafiksubplot podela grafickog prozorafigure prozor za crteztitle naslov crtezatext tekst na crtezugtext tekst pozicioniran misemaxis skaliranje osaxlabel oznacavanje x oseylabel oznacavanje y osehold zadrzavanje grafika na ekranugrid crtanje mreze
3D grafika
meshgrid domen za 3D crtezmesh 3D crtez povrsisurf 3D crtez povrsisurfl 3D crtez povrsisurfc 3D crtez povrsiaxis skaliranje osazlabel oznacavanje z osecontour nivo linijecontour3 3D kontureview pogled iz izabrane tacke
Upravljanje tokom programa
if uslovno izvrsavanje naredbielsif koristi se sa if
else koristi se sa if
end zavrsavanje if, for ili whilefor ponavljanje bloka naredbiwhile izvrsavanje dok je ispunjen uslovbreak izlazak iz petljireturn izlazak iz funkcijepause pauza do pritiska na neki taster
77
Specijalne vrednosti
eps preciznost sa pokretnim zarezompi πi imaginarna jedinicaj imaginarna jedinicainf ∞NaN nije brojclock casovnikdate datumflops broj operacijanargin broj ulaznih parametara funkcijenargout broj izlaznih parametara funkcije
Izvodi
diff izvod funkcijejacobian parcijalni izvoditaylor Tejlorova formula
Resavanje jednacina
fzero nule funkcijesolve resavanje sistema jednacina
78