Sie sind auf Seite 1von 72

PRAKTIKUM SOFTVERA MATHEMATICA

Skripta 2016/2017

SADRZAJ
SADRZAJ

Sadrzaj
1 Osnovi paketa Mathematica 1
1.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Rjeavanje problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Racunske operacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Promjenljive i simbolicko racunanje . . . . . . . . . . . . . . . . . . . . . 5
1.5 Operacije sa izrazima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Koritenje uslova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Numericke velicine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.8 Rijeeni primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.9 Rjeenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.10 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Liste, matrice 15
2.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Kreiranje liste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Pristupanje elementima liste . . . . . . . . . . . . . . . . . . . . . 15
2.1.3 Skupovne operacije . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.4 Rad sa clanovima jedne liste . . . . . . . . . . . . . . . . . . . . . 16
2.1.5 Racunske operacije unutar liste . . . . . . . . . . . . . . . . . . . 16
2.1.6 Racunske operacije sa vie lista . . . . . . . . . . . . . . . . . . . 17
2.2 Tabele, nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Tabele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2 Nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1 Kreiranje matrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2 Transformisanje matrica . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3 Racunske operacije sa matricama . . . . . . . . . . . . . . . . . . 20
2.3.4 Manipulacije sa matricama . . . . . . . . . . . . . . . . . . . . . . 21
2.3.5 Sopstvene vrijednosti i sopstveni vektori . . . . . . . . . . . . . . 22
2.4 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.5 Rjeenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3 Jednacine i nejednacine 27
3.1 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Rjeenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 Sume, proizvodi, korisnicke funkcije 33


4.1 Sume, proizvodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Korisnicke funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Rijeeni primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1 Sume, proizvodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.2 Korisnicke funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Praktikum Mathematica i A.G. 2016/2017, Radni materijal



SADRZAJ
SADRZAJ

5 Diferencijalni racun 41
5.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.2 Granicne vrijednosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3 Izvodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Ekstremi funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5 Stepeni redovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.6 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.7 Rjeenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.8 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6 Integralni racun 47
6.1 Neodreeni i odreeni integral . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

7 Gracki prikaz funkcija 50


7.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2 2D gracki prikaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.2.1 Tipovi denicija grakona . . . . . . . . . . . . . . . . . . . . . . 50
7.2.2 Opcije 2D grackog prikaza . . . . . . . . . . . . . . . . . . . . . 51
7.2.3 2D grakoni posebnog tipa . . . . . . . . . . . . . . . . . . . . . . 52
7.3 3D gracki prikaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3.1 Tipovi denicija grakona . . . . . . . . . . . . . . . . . . . . . . 53
7.3.2 Opcije 3D prikaza . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.3.3 3D grakoni posebnog tipa . . . . . . . . . . . . . . . . . . . . . . 55
7.4 Liste i tabele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.4.1 Tacke u ravni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.4.2 Stubovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.4.3 Kruzni dijagrami . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.5 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.6 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

8 Animacije i manipulacije 61
8.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

9 Osnove programiranja 63
9.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.2 Osnovne naredbe kontrole toka . . . . . . . . . . . . . . . . . . . . . . . 63
9.3 Moduli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.4 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.5 Rjeenja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9.6 Zadaci za vjezbu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

10 Datoteke i zvuk 67
10.1 Rad sa datotekama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
10.2 Rijeeni zadaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

11 Literatura 69

Praktikum Mathematica ii A.G. 2016/2017, Radni materijal


1 OSNOVI PAKETA MATHEMATICA

1 Osnovi paketa Mathematica


1.1 Uvod
Osnovni radni prostor u paketu Mathematica je Notebook.

Komande se izvravaju u celijama, redovima u kojima se navodi komanda ili denicija,


kombinacijom Shift+Enter.

Komentar se unosi izmeu kombinacije (* na pocetku i *) na kraju. Stavljanje komentara


spada u dobre prakse rada, posebno ako su u pitanju kompleksna izracunavanja ili bitne
izmjene.

Zagrade koje se koriste su:

Zagrade Opis
() Grupisanje brojeva i promjenljivih u izrazima
[] Argumenti funkcija
{} Liste, nizovi, matrice
[[]]
Clanovi nizova, matrica

Svaki unos, potvren sa Shift-Enter, je oznacen sa In[%#] gdje je # redni broj unosa.
Rezultat operacija je oznacen znakom Out[%#], gdje je # redni broj rezultata. Ovo
omogucava da se prethodni rezultati mogu koristiti kao argumenti u racunanju.

Zagrade Opis
% Posljednji rezultat
%% Pretposljednji rezultat
%%...% (k puta) k-ti prethodni rezultat
%k Rezultat na liniji k

Broj znakova % oznacava redni broj rezultata prije reda u kojem se unosi naredba. Tako,
Sin[%%] oznacava da se kao argument koristi rezultat dobijen u pretposljednjem racu-
nanju (2 rezultata ranije).

Sintaksa pisanja izraza i funkcija je propisana kombinacija malih i velikih slova. Tako,
Sin[x] se razlikuje od sin[x].

Radi lakeg unosa, posebno ako se radi o komplikovanijim izrazima, na raspolaganju


su palete, pregled nacina unosa. Mogu se naci na alatnoj traci pod nazivom Pallettes.
Za pocetnike su najvaznije Basic Math Assistant, Basic Math Input, Basic Typesetting,
Algebraic Manipulation. Nadnoenjem mia nad bilo koji element palete dobija se prikaz
kombinacije koja se moze koristiti za unos.

Desni klik na celiju daje mogucnost izmjene oblika prikaza sadrzaja, pod stavkom Convert
to.... Pored varijante TraditionalForm, na raspolaganju su InputForm, RawInputForm, Out-
putForm, StandardForm. Svaka od njih moze biti koritena kao u prethodnom primjeru
ili kao produzetak pisanja, nakon dvije kose crte sa desne strane:
-3+2x+x2 //TraditionalForm

Na raspolaganju je Help sistem u alatnoj traci, pod opcijom Find Selected Function (F1).

Praktikum Mathematica 1 A.G. 2016/2017, Radni materijal


1.2 Rjeavanje problema 1 OSNOVI PAKETA MATHEMATICA

Moze se raditi istovremeno sa vie notebookova. Ako se koristi samo jedan kernel, izm-
jene u simbolima u jednom notebooku imaju uticaj na identicne simbole u drugim note-
bookovima.

Informacije o svakoj funkciji se mogu dobiti na dva nacina. Prvi nacin je da se unese
jedan upitnik i iza njega naziv funkcije, npr. ?Sin. Dobija se osnovna informacija o
sintaksi funkcije. Drugi nacin je da se unese dva upitnika i iza njega naziv funkcije, npr.
??Sin. Dobija se detaljna informacija o opcijama funkcije.

Ako tacan naziv nije poznat mogu se koristiti zamjenski znakovi, tzv. dzokeri, u obliku
zvjezdice. Tako, unosom ?Fa* se dobija spisak svih funkcija ciji naziv pocinje sa Fa. Znak
zvjezdice se moze kombinovati.

Primjer 1.1 Unos ?*olv* daje listu funkcija koje u nazivu imaju tekst olv.

Lijep nacin je koritenje funkcije Information[...]. Rezultat je opis sintakse funkcije


sa mogucim opcijama. Druga mogucnost je koritenje funkcije Options[...].

Mathematica ima veliki broj funkcija koje se zavravaju slovom Q. Ove logicke funkcije se
koriste za testiranje uslova i vracaju vrijednost True ili False. Precizna sintaksa se moze
dobiti koritenjem Help mehanizma ili koritenjem ?*Q kao oblika upita.

1.2 Rjeavanje problema


Tokom rada se moze desiti slucaj da izvrenje instrukcije uzima jako puno vremena ili
je kreirana beskonacna petlja. Za prekid kalkulacije se koristi opcija Evaluation)Abort
Evaluation. Alternativno, moze se koristiti kombinacija Alt+. (tacka). Ako se ne uspije
na ovaj nacin, to se rijetko deava, kernel se moze prekinuti opcijom Evaluation)Quit
Kernel)Local. Meutim, na ovaj nacin se gube svi denisani simboli i vrijednosti, ali se
ne gubi tekuci notebook.

Vrijeme koje ce Mathematica potroiti na racunanje nekog izraza se moze ograniciti nared-
bom TimeConstrained. Ovo moze uraditi u slucaju da smatrate da racunanje moze
trajati duze vrijeme. U nekim slucajevima moze biti korisna funkcija Timing[izr], koja
daje vrijeme racunanja vrijednosti izr u sekundama, zajedno sa rezultatom racunanja.

Kao i sa drugim programima, moze se desiti da Mathematica potpuno otkaze (engl.


crash). Jedino rjeenje je da se Mathematica ponovo pokrene. U rijetkim slucajevima
mora se restartati racunar. U tom slucaju se gube izmjene u notebook-u. Stoga je iznimno
vazno da se cesto prave zatitne kopije notebookova.

Memorijski prostor je najceci ogranicavajuci faktor racunanja. Vrijeme moze, takoer,


biti ogranicavajuci faktor. Rijetko se ceka duze od jednog minuta.

Klasa racunanja u kojoj je vrijeme cesto ogranicavajuci faktor je ona u kojoj su ukljucena
trazenja ili testiranja velikog broja mogucnosti. Faktorizacija prirodnih brojeva je klasican
takav slucaj. Tako, na primjer, naredba FactorInteger[k] ce dati rezultat gotovo odmah
ako k ima manje od 25 cifara. Meutim, ako k ima 50 i vie cifara FactorInteger[k]
ce cesto trebati veoma mnogo vremena.

Praktikum Mathematica 2 A.G. 2016/2017, Radni materijal


1.3 Racunske operacije 1 OSNOVI PAKETA MATHEMATICA

1.3 Racunske operacije


Za formiranje izraza se koriste znakovi racunskih operacija, zagrade, znakovi stepeno-
vanja.

Sintaksa Operacija Opis


Plus[...] x+y Sabiranje
Subtract[...] x-y Oduzimanje
Divide[x,y] x/y Dijeljenje
Times[...] x*y ili x y Mnozenje
Power[x,y,...] x^y Stepenovanje
Minus[x ] Daje vrijednost x

Funkcija FullForm daje ispis stvarnog nacina racunanja.

Primjer 1.2 Rezultat formulacije : FullForm[(a*b)^c] je ispis Power[Times[a, b], c].

Dvije korisne operacije iz grupe *Hold* su HoldForm i ReleaseHold. Operacija HoldForm


daje ispis unesenog izraza bez njegove evaluacije. Operacija ReleaseHold oslobaa izraz
za potrebu njegove evaluacije.

Za unoenje matematickih izraza se koriste olakice u vidu kombinacija tastera. Najvazniji


primjeri su u narednoj tabeli.

Operacija Opis
Ctrl+/ Razlomak
Ctrl+6 Stepenovanje
Ctrl+- Indeks
p
Ctrl+2 Korijen ( )
Ctrl+l Ponavljanje posljednjeg unosa (malo slovo L)

Znak + u ovoj tabeli je iz tehnickih razloga, u praksi se ne unosi.

Polinomi koji su rezultat bilo kakvih operacija se prikazuju rastucim redom stepena ar-
gumenata slijeva na desno. Ako se zeli prikaz u obratnom redoslijedu koristi se izraz
TraditionalForm.

Primjer 1.3 Polinom x2 + 2x 3 se prikazuje kao 3 + 2x + x2 . Formulacija:


TraditionalForm[-3+2x+x2 ]
daje rezultat x2 +2x-3.

U paketu Mathematica je predenisan jedan broj konstanti. Neke vaznije su u narednoj


tabeli.
Konstanta Unos Opis
Pi Esc+pi+Esc Odnos obima i precnika kruga ( )
E Esc+ee+Esc Eulerova konstanta e (Baza prirodnog logaritma)
I Esc+ii+Esc Imaginarna jedinica
Degree Stepen, dobijen
p kao Pi/180
GoldenRatio Velicina 1 + 5 =2
Infinity Esc+inf+Esc Konstanta sa posebnim svojstvima 1 (beskonacno)
EulerGamma Eulerova konstanta, priblizno 0:577216

Praktikum Mathematica 3 A.G. 2016/2017, Radni materijal


1.3 Racunske operacije 1 OSNOVI PAKETA MATHEMATICA

Imaginarna jedinica (i) se u izrazima pie kao veliko slovo I a u rezultatu je oznacena
podebljanim malim slovom i. Ostale konstante se mogu naci u Help sistemu paketa,
Help/Find Selected Function ili F1.

Numericka racunanja se provode na nacin da se unese izraz i zatim pritisne kombinacija


Shift-Enter. Brojevi se unose sa decimalnom tackom a ne decimalnim zarezom.

Primjer 1.4 :
17.2 * 16.3 + 4.7
Rezultat : 285.06

Ako se zeli izracunavanje samo dijela izraza tada se taj dio izraza osjenci miem i pritisne
kombinacija Ctrl-Shift-Enter.

Ako se osjenci podvuceni dio narednog izraza i pritisne kombinacija Ctrl-Shift-Enter:


17.2 * 16.3 + 4.7
rezultat je 280.36 + 4.7

Ako se osjenci podvuceni dio narednog izraza i pritisne kombinacija Ctrl-Shift-Enter:


17.2 * 16.3 + 4.7
rezultat je 17.2*21.

Koritenje decimalne tacke u pisanju izraza ima uticaja na rezultat.

Primjer 1.5 Ako se unese izraz


1 1 1
+ -
2 3 5
...rezultat je
19
30
Ako se u istom izrazu stavi decimalna tacka iza broja 5 u posljednjem razlomku:
1 1 1
+ -
2 3 5:
...rezultat je 0.633333.

Ako je denisan izraz i vrijednost neke konstante tada se vrijednost racuna prostim
navoenjem funkcije i argumenta.

Vazan mehanizam obrade izraza je racunanje vrijednosti sa tzv. privremenim, jed-


nokratnim zamjenama vrijednostima.

Primjer 1.6 Neka je dat izraz:


t=1+x^2 // denicija izraza
t/.x->2 // Izracunava se vrijednost izraza za x = 2

Generalno, ovo racunanje se vri po sljedecoj emi :

Funkcija Opis
expr/.x->val Racuna se vrijednost za expr za x=val
expr/.{x->xval,y->yval} Racunanje sa datim zamjenama
expr/.{x->{xval1,xval2,...}} Racunanje sa zamjenama u listi

Strelica se u ovim izrazima naziva pravilo.

Praktikum Mathematica 4 A.G. 2016/2017, Radni materijal


1.4 Promjenljive i simbolicko racunanje 1 OSNOVI PAKETA MATHEMATICA

1.4 Promjenljive i simbolicko racunanje


Promjenljive, slicno promjenljivim u matematici, predstavljaju imena kojima su dodijel-
jene vrijednosti. U matematici su imena promjenljivih obicno ogranicena na jedno slovo,
dok se u paketu Mathematica (kao i u klasicnim programskim jezicima) imena prom-
jenljivih mogu sastojati od vie znakova. U paketu Mathematica imena promjenljivih
mogu se sastojati od slova engleskog alfabeta i cifara, pri cemu prvi znak ne smije biti
cifra.

Dodjela vrijednosti promjenljivoj se vri na vie nacina.

Operacija Opis
= Trenutna (Immediate) dodjela
:= Odgoena (Delayed) dodjela
Set[x,izr] Promjenljivoj x dodjeljuje vrijednost izr
UnSet[x,izr] Uklanjanje dodijeljene vrijednosti
x=. Uklanjanje vrijednosti promjenljive x

U pravilu, Delayed dodjela se vri za funkcije a Immedate za tekuce vrijednosti prom-


jenljivih. Informacija o bilo kojoj promjenljivoj, bez obzira na nacin denicije, dobija se
unosom upitnika iza cega se upisuje naziv promjenljive.

Sadrzaj promjenljive se moze ispitati naredbom OwnValues.

Nacin unosa naredbi je bitan sa stanovita njihovog izvrenja. Ako se unos naredbe
zavri znakom tacka-zarez (;) rezultat nece biti prikazan. Na ovaj nacin se deniu
konstante (dodjeljuju vrijednosti) i funkcije. Ako se unos naredbe zavri bez znaka tacka-
zarez, kombinacijom Shift-Enter se prikazuje rezultat.

Niz naredbi se moze unijeti u jednom redu tako da se odvoje znakom tacka-zarez (;). Ako
se taj znak stavi na kraj niza naredbi sve naredbe se izvre ali se ne prikazuje rezultat.
Ako se izostavi znak tacka-zarez na kraju dobija se krajnji rezultat niza naredbi.

Ako nam promjenljiva nije potrebna moze se ukloniti na jedan od sljedeca dva nacina:

Komanda Opis
Clear[...] Uklanjanje vrijednosti promljenljive
Remove[...] Trajno uklanjanje promjenljive

U ovim komandama je moguce koristiti dzokere. Tako, Remove["*"] uklanja sve ak-
tivne denisane objekte. Radi provjere da li je ostalo denisanih promjenljivih (odnosno
objekata) treba ukucati : ?*. Ako se izostavi apostrof dobije se spisak svih objekata u
paketu.

Matematicke funkcije su bitne u prakticnom radu. Mathematica ima izuzetno bogat


set matematickih funkcija. Najcece koritene funkcije su u narednoj tabeli.

Praktikum Mathematica 5 A.G. 2016/2017, Radni materijal


1.5 Operacije sa izrazima 1 OSNOVI PAKETA MATHEMATICA

Funkcija Opis p
Sqrt[x] Kvadratni korijen ( x)
Exp[x] Eksponencijalna funkcija (ex )
Log[x] Prirodni logaritam (ln x)
Log10[x] Logaritam po bazi 10 (log10 x)
Log[b,x] Logaritam po bazi b (logb x)
Sin[x], Cos[x], Tan[x] Trigonometrijske funkcije (argumenti u radijanima)
ArcSin[x], ArcCos[x], ArcTan[x] Inverzne trigonometrijske funkcije
n! Faktorijel
n!! Dvostruki faktorijel
Abs[x] Apsolutna vrijednost
Round[x] Najblizi cijeli broj broju x
Mod[n,m] Ostatak dijeljenja broja n sa m
Max[x,y,...], Min[x,y,...] Maksimum i minimum brojeva iz liste
Prime[n] n-ti po redu prosti broj
Factorial[n] Faktorijel cijelog broja n

Prilikom pisanja treba obratiti paznju na stepenovanje. U matematickoj notaciji se koristi


pisanje npr. sin2 x. U paketu Mathematica to se pie sa Sin[x]2 . Promjenljive se koriste
kao argumenti funkcija.

Sa prakticnog stanovita je zanimljiva funkcija Random, kojom se generiu pseudoslucajni


brojevi.

Funkcija Opis
Random[] Pseudoslucajni broj iz intervala [0; 1]
Random[tip] Tip moze biti Integer, Real, Complex
Random[tip, opseg] Pseudoslucajni broj u opsegu fa; bg ili fa + bI; c + dIg
Random[tip, opseg,n] Pseudoslucajni broj sa n znacajnih cifara
RandomPrime[] Slucajno odabrani prost broj

Druge zanimljive funkcije ovog tipa su RandomReal, RandomInteger, RandomSample,


SeedRandom. Funkcija RandomPrime ima vie opcija.

Promjenljive tekstualnog tipa se obrauju funkcijama grupe String*.

1.5 Operacije sa izrazima


Paket Mathematica ima bogat set funkcija za obradu izraza, u smislu njihovog reduci-
ranja, skracivanja, rastavljanja na faktore i slicno. Najvaznije operacije ovog tipa su u
narednoj tabeli.

Praktikum Mathematica 6 A.G. 2016/2017, Radni materijal


1.6 Koritenje uslova 1 OSNOVI PAKETA MATHEMATICA

Funkcija Opis
Simplify Formira najjednostavniji oblik izraza
Expand Razvijanje izraza u najiroj formi
ExpandAll Koritenje za racionalne izraze
ExpandNumerator Razvijanje brojioca
ExpandDenominator Razvijanje imenioca
Together Svoenje na zajednicki imenilac
Apart Rastavljanje racionalnog izraza na sumu
Factor Rastavljanje izraza na proste faktore
FactorTerms[izraz,x ] Rastavljanje izraza na proste faktore po promjenljivoj x
Cancel Skracuje algebarske razlomke
Collect[izraz,x ] Grupie komponente sa istim stepenom promjenljive x

Za trigonometrijske funkcije su razvijene analogne funkcije.

Funkcija Opis
TrigExpand Razvijanje izraza u najiroj formi
TrigReduce Koritenje za racionalne izraze
TrigFactor Rastavljanje izraza na proste faktore
TrigToExp Konvertovanje trigonometrijskih funkcija u eksponencijalni oblik
ExpToTrig Konvertovanje eksponencijalnih funkcija u trigonometrijski oblik

Trigonometrijske funkcije se mogu koristiti ako se koriste funkcije za algebarske izraze,


opcijom Trig->True.

Sa stanovita prakticne upotrebe, zanimljive su funkcije tipa Expand. U sljedecoj tabeli


je pregled nekih funkcija ovog tipa.

Funkcija Opis
FunctionExpand Razvijanje izraza pomocu osnovnih funkcija
ComplexExpand Razvijanje izraza pomocu velicina koje su realne (ne kompleksne)
PowerExpand Razvijanje stepena i proizvoda stepena
LogicalExpand Razvijanje logickih kombinacija jednacina, nejednacina, ...

U rijeenim primjerima su opisani nacini koritenja ovih funkcija.

1.6 Koritenje uslova


U nekim slucajevima moramo koristiti uslove za transformaciju izraza. Na sljedecoj tabeli
je sintaksa nekih naredbi za ove namjene.

Funkcija Opis
Simplify[izraz,uslov] Formira najjednostavniji oblik izraza
Elements[x,dom] Ispitivanje da li je x iz datog domena
Elements[{x1,x2,...},dom] Ispitivanje da li je niz vrijednosti iz datog domena

Domeni u navedenoj tabeli mogu biti Reals, Integers, Primes. Za simbol 2 u paketu
Mathematica koristi se sekvenca Esc+el+Esc.

Operatori poreenja, koji se koriste u denisanju uslova, nabrojani su u sljedecoj


tabeli.

Praktikum Mathematica 7 A.G. 2016/2017, Radni materijal


1.7 Numericke velicine 1 OSNOVI PAKETA MATHEMATICA

Operator Pisanje Opis


Equal[x,y] x==y Da li su x i y jednaki
x===y Da li su x i y identicni
Unequal[x,y] x6=y,x!=y Da li su x i y nejednaki
Less[x,y] x<y Da li je x manje od y
Greater[x,y] x>y Da li je x vece od y
LessEqual[x,y] x<=y,x y Da li je x manje ili jednako y
GreaterEqual[x,y] x>=y,x y Da li je x vece ili jednako y
Navedeni operatori se mogu koristiti u oba oblika navedena u koloni Operator i Pisanje.

Ovi operatori kao rezultat daju vrijednosti True (tacno) ili False (netacno), kad god je to
moguce. Operatori Equal i Unequal se mogu koristiti za razlicite tipove podataka. Ostali
operatori se mogu koristiti samo za numericke podatke.

Logicki operatori koji se mogu koristiti su u sljedecoj tabeli.


Operator Pisanje Opis
And[p,q] p&&q,p^y Konjukcija
Or[p,q] pjjq,p_q Disjunkcija
Xor[p,q] Ekskluzivna disjunkcija
Not[p ] !p Negacija
Implies[p,q] p)q Implikacija

Znak implikacije ()) u paketu Mathematica se dobija sekvencom Esc+=+>+Esc.

Logicki izrazi se mogu porediti koritenjem funkcije LogicalExpand.

Primjer 1.7 Pokazati da je ((p ^ q) _ (p ^ :q) _ (:p _ q) _ (:p _ :q)) tautologija.


LogicalExpand[((p&&q)jj(p&&!q))jj((!p&&q)jj(!p&&!q))]]
Rezultat : True

Uslovi se u transformacijama koriste na nacin da se uslov ispie nakon zareza, unutar


uglastih zagrada sintakse funkcije. Mogu se koristiti za deniciju funkcije, na nacin da se
na kraju denicije funkcije unesu znakovi /; a nakon toga uslov.

Primjer 1.8 Denicija funkcije x2 :


g[x_]:=x2 /; x 0
g[x_]:=-x2 /; x<0

1.7 Numericke velicine


Konverzija realnih u cijele brojeve se vri koritenjem funkcija koje su navedene u
sljedecoj tabeli.
Funkcija Opis
Floor[x ] Najveci cijeli broj koji nije veci od x
Ceiling[x ] Najveci cijeli broj koji nije manji od x
Round[x ] Najblizi cijeli broj
IntegerPart[x ] Cjelobrojni dio realnog broja, bez decimalne tacke
FractionalPart[x ] Decimalni dio realnog broja, sa decimalnom tackom
AccountForm[x ] Predstavljanje realnog broja

Praktikum Mathematica 8 A.G. 2016/2017, Radni materijal


1.8 Rijeeni primjeri 1 OSNOVI PAKETA MATHEMATICA

Ako broj x lezi tacno izmeu dva cijela broja funkcija Round vraca parni cijeli broj.

Rezultat numerickih operacija se prikazuje u razlicitim formama. Jedna od njih je oblik


pokretnog zareza:

x = S (x) 10k

poznat kao tzv. inzinjerska notacija, nekada u oznaci x = S (x) Ek. Dosadanji uobicajeni
naziv za S (x), koji je bio mantisa, novim standardima je zamijenjen terminom signikand,
radi razlikovanja od decimalnog dijela logaritma. Ako nam je potrebna obicna forma
koristimo funkciju AccountForm, sa opcijama.

Primjer 1.9 Neka je rezultat neke operacije broj x = 1:073741824 107 , sa 10 znacajnih
cifara. Mozemo napraviti sljedece transformacije.
AccountForm[x] //Rezultat : 10737418:24
AccountForm[x,DigitBlock->3] //Rezultat : 10; 737; 418:24

Za rad sa cijelim brojevima od interesa su funkcije navedene u sljedecoj tabeli.

Funkcija Opis
Quotient[m,n] Kolicnik dijeljenja m sa n
Mod[m,n] Ostatak dijeljenja m sa n
GCD[m,n] Najveci zajednicki djelilac
LCM[m,n] Najmanji zajednicki sadrzalac
FactorInteger[n] Prosti faktori broja n

Funkcije GCD i LCM mogu imati vie faktora.

1.8 Rijeeni primjeri


Zad. 01.01. Izracunati na 25 decimala vrijednost sljedeceg izraza:
p
3 + tg4
log3 p
1 + ln 2
Zad. 01.02. Izracunati tacnu a zatim pribliznu vrijednost izraza, prvo na obicnu tacnost
a zatim na 20 znacajnih cifara.
2
4+
7+3 + 2
1 11 7
1
3
2+
5
Zad. 01.03. Izracunati vrijednost izraza:
r q
p
+ +

Zad. 01.04. Izracunati vrijednost izraza (i je imaginarna jedinica):


" #
2 2 2
2 + 3i 1 2i
+
1 2i 2 + 3i

Praktikum Mathematica 9 A.G. 2016/2017, Radni materijal


1.8 Rijeeni primjeri 1 OSNOVI PAKETA MATHEMATICA

Zad. 01.05. Izracunati sljedeci verizni razlomak:


1
1+
1
2+
1
3+
1
4+
5
Zad. 01.06. Pojednostaviti sljedeci izraz:
p !2 p !2
3+ 5 3 5
p + p
3 5 3+ 5

Zad. 01.07. Pojednostaviti sljedeci izraz:


q q 2
p p
3+ + 3

Zad. 01.08. Osloboditi se svih proizvoda i stepena u izrazu:


2
3 (x + y)2 (y + z) + (y + z)3

Zad. 01.09. Racionalni izraz:


3 (x + y) (x z)2
(x y)2 (x + z)
transformisati na nacin da su i brojilac i imenilac osloboeni svih proizvoda i njihovih
stepena.

Zad. 01.10. Racionalni izraz:


x+y x y
2+ +
a 3 b a+3 b
svesti na zajednicki imenilac. U novom izrazu izmnoziti faktore koji se javljaju u ime-
niocu.

Zad. 01.11. Sljedece racionalne izraze rastaviti na zbir razlomaka.


1
x2 y xy 2 x2 z + 2xyz y2z xz 2 + yz 2
x + 3x2 2y 3xy 4 (m2 3n2 )
x3 + 2y 3 2x2 y xy 2 m4 n4
Zad. 01.12. Sljedeci polinom rastaviti na faktore. Izvriti faktorizaciju po svakoj od
promjenljivih.
2pqr + q p2 + r2 pq 2 + p2 r + q 2 r + pr2
Zad. 01.13. Ukloniti eventualne zajednicke faktore brojioca i imenioca (skratiti razlo-
mak):
x4 + 3x3 + 4x2 + 3x + 1
x5 + 2x4 + x3 + x2 + 2x + 1
Zad. 01.14. Primijeniti Trig* funkcije na sljedece izraze:

Praktikum Mathematica 10 A.G. 2016/2017, Radni materijal


1.9 Rjeenja 1 OSNOVI PAKETA MATHEMATICA

sin (x + y z) sin (6x) sin (2x 3y)

Zad. 01.15. U sljedecim primjerima koristiti funkcije za algebarske izraze sa Trig->True


opcijom.
1 sin x
+
sin x + cos x cos 2x
Zad. 01.16. U sljedecim izrazima grupisati izraze po stepenima svake od promjenljivih.
Isprobati sve opcije naredbe Collect.
2pqr + q (p2 + r2 ) (pq 2 + p2 r + q 2 r + pr2 )
2
3 (x + y)2 (y + z) + (y + z)3
Zad. 01.17. Izvriti konverziju izmeu trigonometrijskih i eksponencijalnih funkcija.
sin (6x)
ln (1 + x) ln (1 x)
Zad. 01.18. Koritenjem funkcija iz grupe *Expand razviti sljedece izraze

sin
24
Zad. 01.19. U sljedecim izrazima izvriti naznacene zamjene.
3
(x3 + 3x2 y 2 + y 3 ) : kubove zamijeniti kvadratima
2
(x2 + 2xyz) + y 2 z2
: kvadrate zamijeniti kubovima
x2 + z 3
2
x3 + 3x + 1 : promjenljivu x zamijeniti sa (y 2 + 1) ; osloboditi se svih produkata i
stepena
Zad. 01.20. Pojednostaviti sljedece izraze, sa datim uslovima:
p 2
x2 2x + 1
1 , pod uslovom da je x < 1 i x > 1
x2 1
2
(2x x2 )
p , prvo da je x realan broj a zatim, dodatno, da je x > 2
4 (1 x) + x2

1.9 Rjeenja
Zad. 01.03. Zadatak se moze rijeiti koritenjem prethodnih rezultata:
Sqrt[Pi]
Sqrt[Pi+%]
Sqrt[Pi+%]

1.10 Zadaci za vjezbu


Zad. V.01.01. Unijeti sljedece izraze i izracunati njihovu vrijednost, najprije na obicnu
tacnost a zatim na odabrani broj decimala koji nije manji od 15. Prilikom rjeavanja
pokuati koristiti prethodnerezultate (znak %) gdje god je to moguce.

Praktikum Mathematica 11 A.G. 2016/2017, Radni materijal


1.10 Zadaci za vjezbu 1 OSNOVI PAKETA MATHEMATICA

r r 3
5 + log 3 p 5 + log2 3
2 ln 3 + arctg p 3
15 1 + tan
5 log 3 5 log2 3
p
3 + tg5 4:25 2
log3 p
1 + 3 tg5 +
4 1
2 32 1 11
p 3 2:6
42 + log 3 + arctan 4 5
2
p3 5 1
sin 3 1 + ln 2 2 6 + 0:5
7 4 2
r 3:15 +
5 + log2 3 1
3 + tan +2 1+
5 log2 3 3
s
1 r cot +4
2 + ln 1 + arctan p 3
3
sin 3
3 + ln 12
p
5 log2 3 5 3
e
0 0 11
0 1
B B CC
B 5 C B B 1 CC
B B CC
5 B1 + @2 6
3A B 2 C C
2+
B B CC
@ 7 @ 3+
2 1 A
A
1+
3
v
r u
cot +4 u5:4 + arctan r log3 2
3
sin 3
3 + ln 12
p u
5 3
e t
12
3
2 + cos2
4

Zad. V.01.02. Pojednostaviti sljedece izraze.


pp p pp p
7 3+ 7+ 3 m! + n!
(m + n)!
Zad. V.01.03. Transformisati izraze na nacin da su imenilac i brojilac osloboeni
proizvoda clanova i njihovih stepena.

cos [(x + y) (x y)] sin (x y)2 cos [(x + y) (x y)] + sin (x y)2

(x 3)2 (2 + x) (2 x)
+
(x + 1) (x 5) (x + 1) (x2 + 1)

Zad. V.01.04. Svesti na zajednicki imenilac. Nakon toga razviti imenilac / brojilac u
maksimalnu formu.
1 1 1 2 9
+ 4 +
x3 + x + 1 x + 2x + 1 (x + 1)2 x 2 x

Zad. V.01.05. Sljedece polinome i izraze rastaviti na faktore.

x4 + y 4 + z 4 2 (x2 y 2 + x2 z 2 + y 2 z 2 ) 2 15 18
+
x+1 x 1 x 4
x2 + 5x + 2
x6 +7x5 +12x4 +6x3 25x2 30x 25 x20 y 20

Praktikum Mathematica 12 A.G. 2016/2017, Radni materijal


1.10 Zadaci za vjezbu 1 OSNOVI PAKETA MATHEMATICA

Zad. V.01.06. Izracunati sumu i proizvod sljedecih izraza. Proizvod razviti u najiri
oblik. Nakon toga izracunati sumu inverznih vrijednosti ovih izraza.

a = 2x + 3y + 4z; b = x + 2y + 5z; c = 3x + y + z

Zad. V.01.07. Sljedece racionalne izraze rastaviti na zbir razlomaka.


5x5 + x4 + 10x3 + 7x2 + 6x + 4 18 31x 3x2 + 7x3
2x6 + x5 + 4x4 + 4x3 + 3x2 + 3x + 1 (x 2) x (x + 1)2
x + 3x2 2y 3xy
x3 + 2y 3 2x2 y xy 2
Zad. V.01.08. Ukloniti eventualne zajednicke faktore brojioca i imenioca (skratiti
razlomak)

x3 + 11x2 + 38x + 40
x3 + 6x2 + 11x + 6
Zad. V.01.09. Primijeniti Trig* funkcije na sljedece izraze. Izvriti konverziju u
eksponencijalni oblik ili obratno. Primijeniti i druge funkcije za transformacije izraza.

sin x + sin y exp fxg + exp f xg


sin x cos y
sin 3 cos 2
cos x cos y sin x sin y
cos 2x sin2 3x 4 sin x cos x cos2 x sin2 x

cos x cos z cos2 z 3 sin2 z + sin x sin z 3 cos2 z sin2 z

cos [(x y) (x + y)] cos (z 2 + 2z + 1) sin [(x y) (x + y)] sin (z 2 + 2z + 1)


p
Zad. V.01.10. Ispitati da li je izraz x2 y + x + y polinom po x ili y.

Zad. V.01.11. Deniciju binomnog koecijenta:


n!
Cnk =
k! (n k)!
4
iskoristiti za racunanje vrijednosti C10 . U paketu Mathematica se koristi funkcija C(n,k).

Zad. V.01.12. U izrazima iz prethodnih zadataka, po izboru, izvriti grupisanje po


stepenima svake od promjenljivih. Isprobati sve opcije naredbe Collect.

Zad. V.01.13. Koritenjem funkcija iz grupe *Expand razviti sljedece izraze


3 sin [x]
tan 17 sin arccos
8 2
Zad. V.01.14. U sljedecim izrazima izvriti naznacene zamjene.

x2 + y 2 + z 2 + u2 + v 2 + w2 : sve promjenljive zamijeniti njihovim reciprocnim


vrijednostima

Praktikum Mathematica 13 A.G. 2016/2017, Radni materijal


1.10 Zadaci za vjezbu 1 OSNOVI PAKETA MATHEMATICA

sin 2x 2 sin (x + 1) : funkciju sinus zamijeniti sa kosinus


1
2x4 x2 + x : promjenljivu x zamijeniti sa ; dobijeni izraz svesti na zajed-
(y 2 + 1)2
nicki imenilac
1 1 1 p p
2 + 2 + 2 2
: broj x zamijeniti sa t a y sa 4 3 u; novi izraz svesti
(x y) (x + y) x y
na zajednicki imenilac; izmnoziti faktore u brojiocu novog izraza

Zad. V.01.15. Pojednostaviti sljedece izraze, sa datim uslovima:


p p
1 + cos2 n 1 cos2 n , ako je n cijeli broj

Praktikum Mathematica 14 A.G. 2016/2017, Radni materijal


2 LISTE, MATRICE

2 Liste, matrice
2.1 Uvod
Liste su objekti opteg tipa koji sadrze skupove drugih objekata i koriste se za raznolike
aplikacije. Stoga Mathematica nudi bogat skup komandi za kreiranje i manipulaciju sa
listama. Alternativni naziv za listu je vektor.

Operacije sa listama se mogu podijeliti na :

kreiranje liste

pristup elementima liste

skupovne operacije sa listama

rad sa clanovima jedne liste (kreiranje, pristup, dodavanje, brisanje, ...)

racunske operacije unutar liste

racunske operacije sa vie lista

2.1.1 Kreiranje liste


Bitnije komande za kreiranje i denisanje lista je u sljedecoj tabeli.

Funkcija Opis
List[elementi] Denisanje liste
{e1,e2,...} Denisanje liste nabrajanjem
Range[n] Kreiranje liste sa n uzastopnih brojeva
Range[m,n] Kreiranje liste sa brojevima od m do n sa korakom 1
Range[m,n,d] Kreiranje liste sa brojevima od m do n sa korakom d

Prilikom denisanja listi se moze pridruziti ime. Lista bez elemenata se denie samo
nazivom i zagradama {}. Korak d moze biti negativan.

Mathematica koristi apsolutno indeksiranje, u kojem prvi element liste ima indeks 1.

2.1.2 Pristupanje elementima liste


Komande za pristup elementima liste su u sljedecoj tabeli.

Komanda Opis
Part[lista,i] Pristup i-tom elementu liste
lista[[i]] Pristup i-tom elementu
Part[lista,{i,j,...}] Pristup elementima liste
lista[[{i,j,...}]] Pristup elementima
First[lista] Prvi element liste
Last[lista] Posljednji element liste
Rest[lista]
Clanovi liste nakon odbacivanja prvog clana
Length[lista] Duzina (broj clanova) jednodimenzone liste
Dimensions[lista] Dimenzije liste odnosno tablice

Praktikum Mathematica 15 A.G. 2016/2017, Radni materijal


2.1 Uvod 2 LISTE, MATRICE

U ovoj tabeli termin lista oznacava imenovanu ili neimenovanu listu sa kojom se radi.
Primjeri su u nastavku.

Primjer 2.1 Pristup elementima liste.


{a,b,c,d}[[2]] // Rezultat : b
L1={a,b,c,d} // denicija liste
L1[[3]] // Rezultat : c
m1={{2,6,4},{1,0,2}} // Denisanje dvodimenzinalnog niza (matrice)
m1[[2,3]] // Pristup elementu (2,3); rezultat : 2
L1[[2]]=3 // Drugi element liste dobija vrijednost 2

2.1.3 Skupovne operacije


Osnovne skupovne operacije sa clanovima jedne liste su u sljedecoj tabeli.

Operacija Opis
Join[l1, l2, ...] Objedinjavanje vie lista u jednu (ponavljanja se ne iskljucuju)
Union[l1, l2, ...] Unija dvije liste (ponavljanja se iskljucuju)
Intersection[l1, l2, ...] Presjek vie lista
Complement[l1, l2, ...] Komplement dijela liste
Subsets[lista] Podskupovi skupa lista

2.1.4 Rad sa clanovima jedne liste


Osnovne operacije sa clanovima jedne liste su u narednoj tabeli.

Operacija Opis
Reverse[lista] Obratni redoslijed clanova liste
Sort[lista] Sortiranje liste u rastucem redoslijedu
Drop[lista,n] Odbacivanje prvih n clanova
Drop[lista,-n] Odbacivanje posljednjih n clanova
Drop[lista,{n}] Odbacivanje n-tog clana
Drop[lista,{m,n}] Odbacivanje clanova od m do n
Drop[lista,{m,n,d}] Odbacivanje clanova od m do n sa korakom d
Reverse[lista] Obratni redoslijed clanova liste
Append Dodavanje clanova na kraj liste
Prepend Dodavanje clanova na pocetak liste
Take Uzimanje clanova liste
Insert Umetanje clanova u niz
Delete Brisanje clanova ali bez izmjene redoslijeda clanova

Operacije Take, Insert, Delete se izvode sa istim opcijama kao Drop.

2.1.5 Racunske operacije unutar liste


Racunske operacije sa svim clanovima imenovane liste se obavljaju tako da se ime liste
navede kao argument operacije.

Osnovne racunske operacije sa svim clanovima jedne liste su u narednoj tabeli.

Praktikum Mathematica 16 A.G. 2016/2017, Radni materijal


2.2 Tabele, nizovi 2 LISTE, MATRICE

Funkcija Opis
Total[lista] Suma svih clanova liste
Accumulate[lista] Lista sa sumama clanova

Primjer 2.2 Neka je data lista f2; 3; 6; 1; 5; 4g. Funkcija Accumulate daje novu listu sa
clanovima f2; 5; 11; 12; 17; 21g. Svaki clan je dobijen kao suma svih prethodnih clanova i
tog clana. Tako je cetvrti clan dobijen kao suma 2 + 3 + 6 + 1.

Na isti nacin kako se pristupa elementima liste, mogu se mijenjati / denisati / dodjeljivati
nove vrijednosti clanova.

2.1.6 Racunske operacije sa vie lista


Racunske operacije koje se mogu izvoditi sa vie lista su u narednoj tabeli.

Operacija Oznaka Opis


Dot[l1, l2, ...] ili razmak Skalarni proizvod dva vektora
Cross[l1, l2, ...] Vektorski proizvod dva vektora

Ovo su ujedno i matricne operacije. Za mnozenje lista se ne smije koristiti znak *.

2.2 Tabele, nizovi


2.2.1 Tabele
Tabele su neto komplikovanije strukture. Osnovne operacije za rad sa obicnim tabelama
su u sljedecoj tabeli.

OperacijaOpis
Tabela u kojoj se
Table[izr,{n}] vrijednost izr ponavlja n puta
Vrijednosti za izr
Table[izr,{k,n}] kad se k mijenja od 1 do n
Vrijednosti za izr
Table[izr,{k,m,n}] kad se k mijenja od m do n
Vrijednosti za izr
Table[izr,{k,m,n,d}] kad se k mijenja od m do n
sa korakom d
Table[izr,{m},{n}] Ugnjezdena lista
Table[izr,{k1,m1,n1},{k2,m2,n2}] Ugnjezdena lista

Tabele mogu imati kolone razlicitih vrsta podataka, to daje niz mogucnosti njihovog
koritenja. Osnova za kreiranje tabela su liste. U prilozenom notebooku su razliciti
primjeri kreiranja tabela.

Osnovni nacin prikaza liste u obliku tabele je da se navede funkcija TableForm desno od
denicije liste, nakon dvije kose crte. Puno vie mogucnosti daje opta forma funkcije:
TableForm[lista,opcije].

Opcija Moguce vrijednosti


TableAlignemnts Automatic, Left, Center, Right
TableHeadings Automatic, {redovi, zaglavlje}
TableDirections Column, Row
TableSpacing {red,kolona}

Praktikum Mathematica 17 A.G. 2016/2017, Radni materijal


2.2 Tabele, nizovi 2 LISTE, MATRICE

Za svaku opciju se moze koristiti jedna vrijednost iz desne kolone. Kao i za svaku drugu
funkciju, opcije se navode sa nazivom iza kojeg slijedi strelica i vrijednost opcije. Ako se
ne navede vrijednost opcije, podrazumijeva se Automatic.

TableAlignments odreuje nacin poravnanja vrijednosti u tabeli. Npr.

TableAlignments!Right

oznacava desno poravnanje vrijednosti u tabeli.

TableHeadings formira nazive kolona i redova tabele. Vrijednosti redovi i zaglavlje su


liste sa nazivima, pod navodnim znacima.

TableDirections daje upute o nacinu prikaza tabele. Opcija Column znaci da je svaki
prvi clan svake od lista u prvoj koloni, svaki drugi clan u drugoj koloni itd. Opcija Row to
isto radi po redovima. Ako se ne navede, podrazumijeva se opcija Column (tzv. default
vrijednost).

TableSpacing daje upute o broju praznih redova odnosno kolona u prikazu. Preden-
isana (default) vrijednost je {0,0}.

Radi bolje preglednosti vrijednosti u tabeli, pozeljno je koristiti funkciju PaddedForm.

Opcija Moguce vrijednosti


PaddedForm[vrij,n] Ispisuje vrij sa n cifara, ne racunajuci decimalni zarez
PaddedForm[vrij,{n,d}] Ispisuje vrij sa n cifara, pri cemu je d desno od zareza

2.2.2 Nizovi
Nizovi su strukture slicne tabelama. Osnovne operacije za rad sa obicnim nizovima su
u sljedecoj tabeli.

Operacija Opis
Array[f,n] Lista vrijednosti ff (i)g, = 1; :::; n
Array[f,n,r}] Lista vrijednosti ff (i)g, = r; :::; n + r 1
Array[f,{m,n}] Ugnjezdena lista
Array[f,{m,n},{r,s}] Ugnjezdena lista

Ovdje je f , u pravilu, funkcija koja se evaluira za vrijednosti indeksa. U slucaju ugnjez-


denih lista vanjski indeks se mijenja brze. U slucaju funkcije Array denicija:

Array[f,{m,n},{r,s}]

znaci da se kreira ugnjezdena lista sa m lista sa po n clanova, u kojoj je f [r; s] prvi clan.

Primjer 2.3 Naredbom Array[Times,{5,6},{2,1}] se kreira tabela koja ima 5 lista sa


po 6 elemenata. Prvi element prve podliste je Times[2,1]=2 1=2. Ostali elementi prve
podliste se dobijaju tako to se prvi element drugog argumenta (2) mnozi sa brojevima
koji se dobijaju kad se drugi broj povecava za 1. Tako se dobije niz:
f2 1; 2 2; 2 3; 2 4; 2 5; 2 6g = f2; 4; 6; 8; 10; 12g
Prvi element druge podliste se dobije tako da se prvi element drugog argumenta (2) poveca
za 1 i ponovi procedura kao za prvu podlistu.

Praktikum Mathematica 18 A.G. 2016/2017, Radni materijal


2.3 Matrice 2 LISTE, MATRICE

2.3 Matrice
2.3.1 Kreiranje matrica
Matrice se, kao i tabele, predstavljaju kao ugnjezdene liste. Interno, nema razlike u
nacinu njihove pohrane, ali se razlicito prezentiraju koritenjem funkcija MatrixForm i
TableForm.

MatrixForm[lista] : kreira ugnjezdene liste kao pravougaoni niz unutar zagrada.


Unutranje liste na najnizem nivou se tretiraju kao redovi;

TableForm[lista] : kreira se na isti nacin s tom razlikom da se ne koriste zagrade;

Uobicajeno je da se ove opcije koriste u varijanti //MatrixForm i //TableForm desno od


imena tabele odnosno matrice.

Prvi nacin denisanja matrice je navoenje ugnjezdenih lista.

Primjer 2.4 U nastavku je primjer denicije matrice sa vie nivoa.


A1 := {{1, 2}, {3, 4}};
A2 := {{5, 6}, {7, 8}};
A3 := {{9, 10}, {11, 12}};
A4 := {{13, 14}, {15, 16}};
A={{A1,A2},{A3,A4}} //MatrixForm

Rezultat:
0 1
1 2 5 6
B 3 4 7 8 C
B C
@ 9 10 13 14 A
11 12 15 16
Drugi nacin kreiranja matrice je koritenje opcije Insert)Table/Matrix)New, na alatnoj
traci.

Treci nacin kreiranja matrice je da se unese par zagrada () a zatim koriste komande
Ctrl-Enter za dodavanje redova i Ctrl-, (zarez) za dodavanje kolona unutar tog para
zagrada, pri cemu se sa Tab i kursorskim strelicama ostvaruje kretanje po redovima i
kolonama. Sa tasterom Tab se dolazi na prvi sljedeci nepopunjeni element matrice.

Pristup elementima matrice se ostvaruje koritenjem indeksa koji se navode u dvostrukim


zagradama [[..]].

Pristup jednom elementu : navodi se red i kolona elementa. Tako, A[[3,4]] znaci
pristup elementu u trecem redu i cetvrtoj koloni

Cijeli red : navodi se indeks reda u dvostrukim zagradama. Tako, A[[3]] oznacava
cijeli treci red matrice

Cijela kolona : navodi se formulacija [[All,n]] gdje n oznacava kolonu

Dvije posebne komande za generisanje matrica su vazne zbog njihove ceste primjene.

IdentityMatrix[n] : Kreira jedinicnu matricu reda n odnosno matricu popunjenu


nulama u kojoj su jedinice na glavnoj dijagonali;

Praktikum Mathematica 19 A.G. 2016/2017, Radni materijal


2.3 Matrice 2 LISTE, MATRICE

DiagonalMatrix[lista] : Kreira dijagonalnu matricu sa elementima na dijagonali


koji su nabrojani u parametru lista;

Osim ovih, za kreiranje matrica se mogu koristiti i komande iz sljedece tabele.

Komanda Opis
ConstantArray[c,{m,n}] Kreira matricu m n sa elementima c
HilbertMatrix[n] Kreira Hilbertovu matricu reda n
HilbertMatrix[mxn] Kreira Hilbertovu matricu m n
HankelMatrix[n] Kreira Hankelovu matricu reda n
HankelMatrix[n,lista] Kreira Hankelovu matricu reda n u kojoj je lista prvi red

Elementi Hilbertove matrice su razlomci 1= (i + j 1), gdje su i i j indeksi redova i kolona.


Redovi Hankelove matrice se formiraju tako da se izostavi prvi element prethodnog reda
a kao posljednji element stavi nula.

VAZNO : Ako se u deniciji matrice navede MatrixForm nije moguce vriti operacije sa
matricama.

2.3.2 Transformisanje matrica


Najvaznije komande za transformaciju matrica su u sljedecoj tabeli.

Komanda Opis
Inverse[matr] Inverzna matrica matrici matr
Det[matr] Determinanta matrice matr
Transpose[matr] Transponovanje matrice matr
Tr[matr] Racunanje traga matrice matr
MatrixPower[matr,n] Racunanje n-tog stepena matrice matr

Iz tehnickih razloga, dvije komande su opisane u nastavku.

Minors[matr]: kreiranje matrice ciji su elementi na poziciji (i; j) minori koji se


dobiju izbacivanjem i-tog reda i j-te kolone kvadratne matrice

Minors[matr,k]: kreiranje matrice ciji su elementi determinante svih mogucih k k


podmatrica matrice matr, koja ne mora biti kvadratna

Inverzna vrijednost matrice se ne moze racunati operacijom ( ) 1 jer ta operacija po-


drazumijeva racunanje inverznih vrijednosti svih elemenata matrice.

2.3.3 Racunske operacije sa matricama


S obzirom da su vektori i matrice u paketu Mathematica pohranjeni kao liste, vrijede
operacije navedene u sekciji za rad sa listama. Dodatno, postoje posebne komande rez-
ervisane za matrice. Kako n-dimenzionalni vektori mogu biti posmatrani kao n 1
matrice, mnoge od ovih komandi se primjenjuju i za vektore.

U opisima koji slijede koriste se oznake m, m1 i m2 za matrice i v1 i v2 za vektore.

Praktikum Mathematica 20 A.G. 2016/2017, Radni materijal


2.3 Matrice 2 LISTE, MATRICE

Operacija Oznaka Opis


Dot[l1, l2, ...] ili razmak Skalarni proizvod dva vektora ili matrice
Cross[l1, l2, ...] Vektorski proizvod dva vektora ili matrice
m1+m2 Suma dvije matrice
m1-m2 Razlika dvije matrice
c m Proizvod konstante i matrice
Ovo su ujedno i matricne operacije. Za mnozenje lista se ne smije koristiti znak *. Znak
se moze generisati kombinacijom Esc-cross-Esc.

2.3.4 Manipulacije sa matricama


Mathematica nudi brojne komande za manipulaciju sa matricama koje su veoma korisne
za probleme linearne algebre. S obzirom da su matrice u sutini liste, neke komande su
date u prethodnim poglavljima.
Join[lista1,lista2 ] : kombinuje dvije liste, lista1 i lista2, u jednu koja se sastoji od
njihovih elemenata. Za matrice to ima efekt da su redovi iz liste2 ispod redova za
listu1
Join[lista1,lista2,n] : zdruzuje objekte na nivou n u svakoj listi. Ako je n = 2 to
ima efekt da su kolone iz liste2 desno od kolona za listu1
Druga grupa operacija za manipulaciju sa matricama je na sljedecoj tabeli. Prva pod-
grupa se odnosi na operacije pristupa elementima matrice.

Komanda Opis
Take[matr,n] Uzima se prvih n redova matrice matr
Take[matr,-n] Uzima se posljednjih n redova matrice matr
Take[matr,{m,n}] Uzimaju se redovi od m do n matrice matr
Take[matr,m,n] Uzima se podmatrica od prvih m redova i prvih n
kolona matrice matr
Take[matr,{m,n},{p,q}] Uzimaju se redovi od m do n i kolone od p do q matrice matr
Druga grupa se odnosi na operacije brisanja elemenata matrice.

Komanda Opis
Drop[matr,n] Brisanje prvih n redova matrice matr
Drop[matr,-n] Brisanje posljednjih n redova matrice matr
Drop[matr,{n}] Brisanje n-tog reda matrice matr pocev od prvog
Drop[matr,{m},{n}] Brisanje m-tog reda i n-te kolone matrice matr
Drop[matr,{-n}] Brisanje n-tog reda matrice matr pocev od posljednjeg
Drop[matr,{m,n}] Brisanje redova od m do n matrice matr
Drop[matr,m,n] Brisanje prvih m redova i prvih n kolona matrice matr
Drop[matr,{m,n},{p,q}] Briu se redovi od m do n i kolone od p do q matrice matr
Delete[matr,n] Brisanje n-tog reda matrice matr pocev od prvog
Delete[matr,-n] Brisanje n-tog reda matrice matr pocev od posljednjeg
Delete[matr,{{p1},{p2},...}] Brisanje redova p1, p2, ...matrice matr
U ovom slucaju koritenje komande Drop podrazumijeva podmatricu koja preostane
nakon ovih operacija.

Praktikum Mathematica 21 A.G. 2016/2017, Radni materijal


2.3 Matrice 2 LISTE, MATRICE

2.3.5 Sopstvene vrijednosti i sopstveni vektori


U mnogim zadacima teorijskog i prakticnog tipa u matematici i njenoj promjeni, potrebno
je racunanje sopstvenih (karakteristicnih) vrijednosti i odgovarajucih sopstvenih vektora
matrice A. Naime, potrebno je izracunati vrijednosti za za koje postoje netrivijalna
rjeenja sistema homogenih linearnih algebarskih jednacina:
A x= x (1)
gdje je A zadata matrica a x nepoznat vektor. Dati sistem se moze napisati u obliku:
(A I) x = 0
Uslov postojanja netrivijalnog rjeenja ovog sistema je:
a11 a12 ::: a1n
a21 a22 ::: a2n
D ( ) = det (A I) = .. .. ... .. =0
. . .
an1 an2 ::: ann
Ovo je tzv. karakteristicna determinanta sistema.
Denicija 2.1 Vrijednosti parametra za koje homogeni sistem jednacina (1) ima netriv-
ijalna rjeenja nazivaju se sopstvene ili karakteristicne vrijednosti a odgovarajuca netrivi-
jalna reenja sopstveni ili karakteristicni vektori matrice A.
Potrebno je karakteristicnu determinantu razviti u karakteristicni polinom matrice A:

n
X
n
D ( ) = ( 1) ( 1)n k
k
n k
; 0 =1
k=0

ili:
n
X
n
D ( ) = ( 1) ( 1)n k
pk n k

k=0
odnosno rijeiti karakteristicnu jednacinu matrice A:
n n 1
p1 ::: pn = 0
i zatim rijeiti n sistema homogenih linearnih algebarskih jednacina oblika:
(A i I) xi = 0; i = 1; :::; n
tj. naci odgovarajuce sopstvene vektore xi , i = 1; :::; n.
U paketu Mathematica ovo se radi naredbama koje su u sljedecoj tabeli.
Komanda Opis
CharacteristicPolynomial[matr,var] Karakteristicni polinom matrice po var
Eigenvalues[matr] Sopstvene vrijednosti matrice matr
Eigenvectors[matr] Sopstveni vektori matrice matr
Eigensystem[matr] Lista u formi {sops_vrij, sops_vekt}
Ako su elementi matrice dati u nedecimalnoj formi Mathematica pokuava odrediti sop-
stvene vrijednosti i vektore tacno. Ako je bilo koji element u decimalnoj formi Mathe-
matica daje decimalne aproksimacije. Alternativno se moze koristiti N[matr] (odnosno
N[matr,k] za preciznost sa k znacajnih cifara) kao argument za navedene komande.

Praktikum Mathematica 22 A.G. 2016/2017, Radni materijal


2.4 Rijeeni zadaci 2 LISTE, MATRICE

2.4 Rijeeni zadaci


Zad. 02.01. Napraviti sljedece liste:

faktorijeli prvih 10 prirodnih brojeva.

stepeni broja 2 za prvih 10 prirodnih brojeva

pozitivni multiplikandi od 7 koji ne prelaze 100

prvih 10 prostih brojeva

Zad. 02.02. Napraviti listu kojoj su elementi suma kvadrata i kubova prvih 5 prirodnih
brojeva.

Zad. 02.03. Rijeiti sljedece skupovne operacije sa nizovima.

Naci uniju i presjek skupova fa; b; c; d; e; f; gg ; fc; d; e; f; g; h; ig ; fe; f; g; h; i; j; kg

Naci elemente skupa fa; b; c; d; e; f; gg koji nisu u fa; c; d; eg

Zad. 02.04. Naci vektorski i skalarni proizvod vektora f3; 4; 2g i f2; 5; 6g.

Zad. 02.05. Liste lista1 i lista2 popuniti sa po 30 slucajnih cijelih brojeva od 0 do 100.
Naci listu koja se sastoji od zajednickih elemenata obje liste.

Zad. 02.06. Napraviti sljedece tabele i nizove.

Table[i + j, {i, 1, 3}, {j, 1, 5}]

Table[i + j, {i, 1, 5}, {j, 1, 3}]

Array[f, {3, 4}], Array[f, {4, 3}], Array[f, {4, 3},{0,0}], ako je:

f (x; y) = x2 + 3y

Zad. 02.07. Formirati tabelu vrijednosti polinoma

P (x) = x5 3x4 + 2x3 7x + 12

Vrijednosti za x uzimati u intervalu od [ 3:; +3] sa korakom 0:5. Staviti naslove kolona
"x" i "p(x)".

Zad. 02.08. Napraviti tabelu koja ima tri kolone. Prva su cijeli brojevi od 1 do 10;
druga kolona su njihovi kvadrati a treca njihovi kubovi. Na kolonama staviti naslove
"Brojevi", "Kvadrati", "Kubovi".

Zad. 02.09. Ako je c temperatura na Celzijus skali tada je temperatura na Farenheit


skali data sa:
9
f= c + 32
5
Napraviti tabelu konverzije temperatura iz intervala [1; 10] sa korakom 1. Tabela treba
biti prikazana horizontalno.

Praktikum Mathematica 23 A.G. 2016/2017, Radni materijal


2.4 Rijeeni zadaci 2 LISTE, MATRICE

Zad. 02.10. Kreirati gornje trougaonu matricu reda 5 sa elementima 1.

Zad. 02.11. Kreirati matricu reda 10 kojoj su dijagonalni elementi prosti brojevi.

Zad. 02.12. Konstruisati trodijagonalnu matricu reda 7 u kojoj su na glavnoj dijagonali


brojevi 2 a na susjednim dijagonalama brojevi 1, a 0 na ostalim pozicijama.

Zad. 02.13. Euklidska norma vektora je kvadratni korijen sume kvadrata njegovih
komponenti. Izracunati normu vektora

f1; 3; 5; 7; 9; 11; 13; 15g

Zad. 02.14. Izracunati zapreminu paralelepipeda kojeg formiraju vektori

u = f1; 2; 3g ; v = f2; 5; 1g ; w = f3; 1; 2g

Zad. 02.15. Kreirati Hilbertovu matricu reda 6 i izracunati njenu determinantu i


inverznu vrijednost.

Zad. 02.16. Odrediti vrijednost izraza:


" #2
1
2 3 4 1 0 1
5
3 1 3 0 3 2

Zad. 02.17. Jednom operacijom izracunati determinantu matrice formata 7 7 ciji su


elementi:
i2 + j 2
a (i; j) =
i+j
Zad. 02.18. Kreirati matricu sa nazivom mat formata 5 5 ciji su elementi slucajni
cijeli brojevi u opsegu od 0 do 10. Rezultat kreiranja ne prikazivati. U novoj transakciji
izracunati njenu inverznu matricu i rezultat prikazati u matricnoj formi.

Zad 03.19. Naci sopstvene vrijednosti i sopstvene vektore za matrice.


2 3
1 2 1 2 3 2 a+1
3 4 4 2 3 4 5 a 1 0
3 4 7

Zad. 02.20. Data je trodijagonalna matrica 5 5 ciji su svi elementi na dijagonali


jednaki 4 a 1 na susjednim dijagonalama. Naci karakteristicni polinom, sopstvene vektore
i sopstvene vrijednosti.

Zad. 02.21. Na primjeru matrice:


2 3
1 2 1 2
63 1 3 17
A=6
42
7
5 7 15
1 2 3 6

potvrditi Cayley-Hamiltonovu teoremu prema kojoj je svaka kvadratna matrica rjeenje


njenog karakteristicnog polinoma.

Praktikum Mathematica 24 A.G. 2016/2017, Radni materijal


2.5 Rjeenja 2 LISTE, MATRICE

2.5 Rjeenja
Zad. 02.06. Rjeenja su u nastavku.

ff2; 3; 4; 5; 6g ; f3; 4; 5; 6; 7g ; f4; 5; 6; 7; 8gg

ff2; 3; 4g ; f3; 4; 5g ; f4; 5; 6g ; f5; 6; 7g ; f6; 7; 8gg

2.6 Zadaci za vjezbu


Zad. V.02.01. Naci vrijednost izraza (v1 v2 ) (3v2 v1 v2 ) ako su v1 = f1; 5; 4g i
v2 = f3; 7; 6g.

Zad. V.02.02. Denisati listu sa sadrzajem f2; 5; 4; 6; 9; 1; 2; 8; 3; 5g. Iskoristiti naredbu


Sum za nalazenje sume reciprocnih vrijednosti kao i sume kvadrata elemenata liste.

Zad. V.02.03. Napraviti horizontalnu tabelu konverzije stepeni u radijane za uglove od


0 do 30 u koracima od po 5 .

Zad. V.02.04. Odrediti vrijednost izraza:


" # 1
2
1 3 3 2 3 0
1792 +5
2 7 2 0 0 1

Zad. V.02.05. Odrediti vrijednost izraza:


0 1 1 0 12
3 1 0 2 1 3
170 @1 4 2A @5 4 1A
3 0 1 0 3 0

Zad. V.02.06. U jednoj transakciji i bez upotrebe pomocnih promjenljivih, naci nu-
mericku aproksimaciju treceg stepena matrice 4 4 ciji su elementi:
1
a (i; j) = i +
j
Zad. V.02.07. Odrediti matricu X ako je:

4 3 1 1 4 2
X =
3 1 0 5 1 5

Zad. V.02.08. Napraviti izraze za racunanje sljedecih normi vektora:

X
n
L1 norma : kxk1 = jxi j
i=1
!1=2
p X
n
L2 (Euklidova) norma : kxk2 = xT x = x2i
i=1


L1 (Cebievljeva) norma : kxk1 = max jxi j
i=1;:::;n

Praktikum Mathematica 25 A.G. 2016/2017, Radni materijal


2.6 Zadaci za vjezbu 2 LISTE, MATRICE

Zad. V.02.09. Napraviti izraze za racunanje sljedecih normi matrica:

kAk1 = max kaj k1 , gdje je aj stupac j matrice A


j=1;:::;n

kAk2 = 1 (A), najveca singularna vrijednost matrice A

kAk1 = max aTi 1


, gdje je ai red i matrice A
i=1;:::;n

!1=2
X
m X
n
Frobeniusova norma : kAkF = a2ij
i=1 j=1

Zad. V.02.10. Naci inverzne matrice, transponovane matrice, karakteristicne polinome,


sopstvene vektore i sopstvene vrijednosti matrica.
2 3 2 3 2 3
1 3 9 1 1 4 7 2 3 11 5
61 1 1 57 42 5 8 5 61 2 5 27
6 7 6 7
42 7 3 25 3 6 11 42 1 3 25
4 2 1 1 2 3 1 1 3 4
10
2 3 10 2 3 300
100 24 48 23 6 2 2 100 105 7 2 3
6 7 8:467 5:137 3:141 2:063
6 5 100 44 7
317 4 111 1 0 1 5
6 65:137 6:421 2:617 2:0037
4 10 3 100 55 5 2222 4 1 1 6 7
43:141 2:617 4:128 1:6285
12 7 11 100 2 3
2:46 0:28 0:26 2:063 2:003 1:628 3:446
34 55 40:38 3:57 0:365
55 89 0:50 0:48 4:68 [aij ], i; j = 1; 2; 3; 4,
2 3 2 3 gdje je
4 3 1 13 2 1
4 2 4 55 4 1 11 2 5
1 2 3 1 2 15 aij = j2i j 2 j + 1.

Zad. V.02.11. Kreirati listu pod nazivom lista1 od 10 slucajnih cijelih brojeva u
rasponu od 3 do 15 i listu pod nazivom lista2 od 8 slucajnih cijelih brojeva u istom
rasponu. Liste nadovezati i sortirati ih u opadajucem redoslijedu.

Praktikum Mathematica 26 A.G. 2016/2017, Radni materijal



3 JEDNACINE
I NEJEDNACINE

3 Jednacine i nejednacine
U paketu Mathematica postoje brojne funkcije za rjeavanje jednacina, nejednacina i
sistema jednacina odnosno nejednacina, u zavisnosti od slozenosti problema koji zelimo
rijeiti i onoga to zelimo dobiti.

Osnovne funkcije za nalazenje korijena i rjeavanje jednacina su u narednoj tabeli.

Funkcija Opis
Solve[izr,prom] Nalazi rjeenja jednacine izr po prom
Reduce[izr,prom] Reducira izr sa rjeenjem po prom
Roots[izr,prom] Nalazenje korijena
Eliminate[izr,prom] Eliminisanje promjenljive iz sistema

Imajuci u vidu vaznost i slozenost, svaka od njih ce u nastavku biti posebno opisana.

Solve funkcija kao rezultat daje listu rjeenja. Za rezultat u obliku pribliznih rezultata
koristi se varijanta NSolve.

Reduce funkcija reducira izraz i nastoji naci sva rjeenja odnosno pravi njihovu diskusiju.
Ako je izraz identitet rezultat je True, a ako je kontradikcija rezultat je False.

Roots funkcija nalazi korijene date jednacine. Ogranicena je iskljucivo na rjeavanje poli-
nomskih jednacina, tj. jednacina kod kojih lijeva i desna strana predstavljaju polinome.
U slucaju da jednacina nije takvog oblika prijavljuje se greka (za takve jednacine postoje
druge funkcije). Drugim rijecima, ova funkcija ne vri nikakvu diskusiju, pretpostavlja
da parametri imaju takve vrijednosti da su rjeenja precizno denirana. Za rezultat u
obliku pribliznih rezultata koristi se varijanta NRoots.

Primjer 3.1 Treba rijeiti jednacinu a x = b. U paketu Mathematica to izgleda ovako:


Solve[a x == b, x]
b
Rezultat : x!
a
Reduce[a x == b, x]
b
Rezultat : (b == 0&&a == 0) jj a 6= 0&&x ==
a

Razlika je vie nego ocigledna. U prilozenom notebooku je primjer jednacine:

ax + b = cx + d

Ova razlika posebno dolazi do izrazaja kada se rjeavaju trigonometrijske jednacine.


Funkcija Solve daje jedno rjeenje a Reduce daje sva rjeenja.

Funkcija Reduce se moze koristiti za rjeavanje nejednacina. Ista funkcija se moze koristiti
za rjeavanje Diofantskih jednacina tako da se za (svaku) promjenljivu navede da je iz
skupa cijelih brojeva :

<prom>2Integers

Praktikum Mathematica 27 A.G. 2016/2017, Radni materijal



3 JEDNACINE
I NEJEDNACINE

Rjeenja dobijena sa Solve ili Reduce se mogu usmjeriti u listu sa kojom se kasnije mogu
praviti druge kalkulacije i transformacije. Da bi se to postiglo piemo:
<lista> = Solve[izr,prom]
Elementima liste <lista> ne moze se pristupati neposredno. Ako je to potrebno koristi
se operator zamjene /. <lista>.

Izraz moze biti u obliku Izr1 == Izr2 ili Izr1 == 0. Jednacine koje cine sistem nabra-
jaju se na jedan od sljedeca dva nacina :

unutar jedne viticaste zagrade, pri cemu se odvajaju zarezima

bez viticaste zagrade, pri cemu se odvajaju znakovima &&.

Primjer 3.2 Neka je dat sistem jednacina:

2x + 3y = 7; 3x + 4y = 10

Upis se vri na jedan od sljedeca dva nacina:


Solve[{2 x + 3 y == 7, 3 x + 4 y == 10},{x,y}]
Solve[2 x + 3 y == 7 && 3 x + 4 y == 10,{x,y}]

Ako je potreban pristup pojedinim rjeenjima koristi se mehanizam


<pr>=x/.<rjesenja>
gdje je <rjesenja> lista u koju su usmjerena rjeenja.

Primjer 3.3 Neka je dat sistempx2 + y = 5, x + y = 3. Rjeenja treba iskoristiti za


izracunavanje vrijednosti izraza x2 + y 2 .
solutions = Solve[{x2 +y==5,x+y==3},{x,y}]
Rezultat
p :ffy ! 1; x ! 2g ; fy ! 4; x ! 1gg
2 2
x + y //.solutions
p p
Rezultat : 5; 17 .

Eliminate naredba sluzi za eliminaciju neke promjenljive iz datog sistema.

Drugi nacin za rjeavanje sistema linearnih jednacina je koritenje naredbe LinearSolve.


Pretpostavka za koritenje ove naredbe je da se sistem iskazuje u obliku

A x=b

gdje je A matrica sistema, b vektor slobodnih clanova a x vektor nepoznatih velicina.


Osnovna sintaksa ove naredbe je:

LinearSolve[a,b] : rjeenje sistema A x = b

LinearSolve[a] : producira se funkcija LinearSolveFunction

Ako sistem ima beskonacno mnogo rjeenja Mathematica vraca jedno rjeenje, poznato
kao partikularno rjeenje. Puni skup rjeenja se dobija ako se na partikularno rjeenje
dodaju rjeenja odgovarajuceg homogenog sistema A x = 0. Skup svih vektora x takvih
da je A x = 0 se naziva nul-prostor i odreuje se komandom NullSpace.

Praktikum Mathematica 28 A.G. 2016/2017, Radni materijal



3 JEDNACINE
I NEJEDNACINE

Kako je receno, sa LinearSolve[a] se producira funkcija LinearSolveFunction. Na ovaj


nacin je moguce generisati rjeenja za razlicite slucajeve vektora slobodnih clanova, to
je ilustrovano u primjeru u notebook-u.

Transcedentna jednacina je ona koja ne nealgebarska. Mada Solve i NSolve mogu


biti koritene u ogranicenom obimu za rjeavanje jednostavnih trigonometrijskih i ek-
sponencijalnih jednacina, one nisu dizajnirane jednacine koje ukljucuju komplikoavnije
transcedentne funkcije. Komanda FindRoots je bolji nacin za ovaj problem.

Naredba FindRoot koristi iterativne metode za nalazenje rjeenja. Pocetna vrijednost,


koja se nekada naziva inicijalno nagaanje, mora biti navedena. Za bolje rezultate,
pocetna vrijednost bi trebala biti to je moguce bliza korijenu. Sintaksa ove naredbe
je u nastavku.

FindRoot[lhs==rhs,{x,x 0 }] : rjeavanje jednacine lhs==rhs koritenjem Njut-


novog metoda uz pocetnu vrijednost x0

FindRoot[lhs==rhs,{x,{x 0 ,x1 }] : rjeavanje jednacine lhs==rhs koritenjem vari-


jacije metode sekante uz pocetne vrijednosti x0 i x1

FindRoot[lhs==rhs,{x,x 0 ,x min ,x max }] : rjeavanje jednacine lhs==rhs, s tim da


iteracije prestaju van intervala [xmin ; xmax ]

Ako se umjesto jednacine lhs==rhs navede funkcija f (x), komanda FindRoot nalazi nule
te funkcije. Drugim rijecima, rjeava se jednacina f (x) = 0.

Ako se trazi rjeenje za vie promjenljivih tada se iste opcije navode za svaku od prom-
jenljivih.

Vazne opcije ove funkcije su:

WorkingPrecision : (Sintaksa : WorkingPrecision->n) opcija koja specicira


koliko znacajnih cifara se odrzava u tokom kalkulacija. Predenisana (default)
vrijednost je 16

AccuracyGoal : (Sintaksa : AccuracyGoal->n) opcija koja specicira koliko znaca-


jnih cifara se treba postici tokom kalkulacija. Predenisana (default) vrijednost je
Automatic, to je polovina vrijednosti opcije WorkingPrecision. Ova opcija efek-
tivno specicira apsolutnu greku koja je dozvoljena u numerickoj proceduri

PrecisionGoal : (Sintaksa : PrecisionGoal->n) opcija koja specicira koliko


efektivno znacajnih cifara se treba imati konacni rezultat. Predenisana (default)
vrijednost je Automatic, to je polovina vrijednosti opcije WorkingPrecision. Ova
opcija efektivno specicira relativnu greku koja je dozvoljena u numerickoj proce-
duri

EvaluationMonitor moze biti koriten za prikaz meurezultata koje se izvravaju.


Sintaksa je EvaluationMonitor:->izraz. Simbol :-> se unosi sa palete ili kom-
binacijom :> sa tastature. Ovaj znak treba razlikovati od strelice (!) kako bi se
napravila razlika od dodjele vrijednosti izraz

Praktikum Mathematica 29 A.G. 2016/2017, Radni materijal


3.1 Rijeeni zadaci
3 JEDNACINE
I NEJEDNACINE

DampingFactor : (Sintaksa : DampingFactor->n) opcija koja kontrolie ponaanje


(brzinu) konvergencije Njutnove metode. Duzina svakog koraka u toj metodi se
mnozi navedenim faktorom. Predenisana (default) vrijednosti je 1

Navedeno upucuje na jasnu razliku znacenja termina preciznost i tacnost :

Preciznost : broj znacajnih cifara u rezultatu; odnosi se na nacin pohrane

Tacnost : broj znacajnih cifara desno od decimalne tacke / zareza; odnosi se na


obavljanje racunskih operacija

3.1 Rijeeni zadaci


Zad. 03.01. Naci rjeenje kvadratne jednacine ax2 + bx + c = 0.

Zad. 03.02. Naci rjeenja sljedecih jednacina. Koristiti funkcije Solve, Reduce i Roots.
1 log2 (x + 1) + 2 log2 (x + 2) = 1
sin x =
2 p p p
x+1+ x+2=a x
x2 + 5x + a = 0
q 2 q 2
p+ + p =1
1 1
2 x x
x2 + 2 = 2 x + sin x = 2
x x
Zad. 03.03. Napraviti sumu kvadrata rjeenja sljedecih jednacina.

x6 21x5 + 175x4 735x3 + 1624x2 1764x + 720 = 0, suma kvadrata

x2 + 4x + 3 = 0, suma kubova

x3 + 6x2 + 11x + 6 = 0, reciprocne vrijednosti

Zad. 03.04. Iz narednih sistema eliminisati svaku od promjenljivih.

x + 2y + z = 5; 2x + y + 3z = 7

w + x + y + z = 3; 2w + 2x + 5y + z = 6; 3w + 6x + 2y + 2z = 1
3
x3 + 3y 3 = (2 + x)4 ; 3x3 y 3 = (1 x2 )

Zad. 03.05. Rijeiti sljedece sisteme jednacina. Po potrebi obaviti diskusiju.

x + ay = 1; bxy = 1
a b
x + ay = b; + =1
x y
2 sin2 x + 1 = 3 sin x

exp f2xg + exp fxg = 3

x + y = 5; xy = 6

Praktikum Mathematica 30 A.G. 2016/2017, Radni materijal


3.2 Rjeenja
3 JEDNACINE
I NEJEDNACINE

Zad. 03.06. Naredne sisteme jednacina rijeiti, koritenjem naredbe LinearSolve.

x + 2y z = 1; 2x y + 3z = 2; x+y+z =5

x 4y = a; 5x y + bz = 3; x z=4

Zad. 03.07. Naci rjeenja jednacina na datim intervalima.


2x + 1
tan 3x = arctan , u okolini tacke x = 10
2x 1
x+1
tan x = ln , u okolini tacke x = 5
x 1
5 cos x = 4 x3 , na intervalu [ 1; 2]

x + jsin (x 1)j = 5, na [ 10; 10]

Zad. 03.08. Naci rjeenja Diofantovih jednacina.

3x + 5y = 42

Zad. 03.09. Rijeiti sljedece nejednacine. U primjerima sa parametrima napraviti


diskusiju.

x2 6x2 > 6 11x

x2 5x 6; x+1>0

x2 5x 6; x+a>0

3.2 Rjeenja
Zad. 03.01.g. Poznato je da je sin x 2 [ 1; 1]. Alternativa je trazenje kompleksnih
rjeenja formulacijom

FindRoot[Sin[x]==2,{x,I}]

3.3 Zadaci za vjezbu


Zad. V.03.01. Naci rjeenja sistema jednacina.
2 3 2 3
2 1 1 7
A=4 1 4 3 5; b=4 2 5
3 2 2 13

Zad. V.03.02. Rijeiti sljedece jednacine

x + ay = b; 3x + y = 2

tan2 x + 5 tan x + 6 = 0

1 + sin 2x = cos x

Praktikum Mathematica 31 A.G. 2016/2017, Radni materijal


3.3 Zadaci za vjezbu
3 JEDNACINE
I NEJEDNACINE

3x+1 3x+3 = 6561

Zad. V.03.03. Rijeiti sljedece sisteme jednacina.

x 3y + z = 2; 5x y + 3z = 3; x+y z=1

x + 2y z = 1; 2x y + 3z = 2; x+y+z =5
p 1
x + y + z = 6; sin x + cos y + tan z = 1; ex + y+ = 5; (1; 2; 3)
z

Praktikum Mathematica 32 A.G. 2016/2017, Radni materijal



4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

4 Sume, proizvodi, korisnicke funkcije


4.1 Sume, proizvodi
Sume i proizvodi su od fundamentalne vaznosti u matematici. U paketu Mathematica
njihovo izracunavanje je jednostavno. Za razliku od ostalih programskih jezika, vri se
automatska inicijalizacija i sintaksa je jednostavna za usvajanje, posebno ako se koristi
Basic Math paleta. Kao indeks sumiranja moze biti koriten bilo koji simbol. Moguci su
negativni inkrementi gdje god se oni koriste.
Funkcije sumiranja su prezentirane u sljedecoj tabeli.
Funkcija Opis
X
imax
Sum[a[i],fi; imax g] a (i) Suma i = 1 do i = imax
i=1
X
imax
Sum[a[i],fi; imin ; imax g] a (i) Suma i = imin do i = imax
i=imin
X
imax
Sum[a[i],fi; imin ; imax ; incg] a (i) Suma i = imin do i = imax korak inc
i=imin

U svim navedenim slucajevima se umjesto Sum moze staviti NSum. Dvostruka suma se
racuna analogno, s tim da se za svaki brojac odreuju odgovarajuce granice:
Sum[a[i; j],fi; imin ; imax g; fj; jmin ; jmax g]
Funkcije proizvoda su date u sljedecoj tabeli.
Funkcija Opis
iY
max

Product[a[i],fi; imax g] a (i) Proizvod i = 1 do i = imax


i=1
iY
max

Product[a[i],fi; imin ; imax g] a (i) Proizvod i = imin do i = imax


i=imin
iY
max

Product[a[i],fi; imin ; imax ; incg] a (i) Proizvod i = imin do i = imax korak inc
i=imin

U svim navedenim slucajevima se umjesto Product moze staviti NProduct. Dvostruki


proizvod se racuna analogno, s tim da se za svaki brojac odreuju granice:
Product[a[i; j],fi; imin ; imax g; fj; jmin ; jmax g
I za sumu i za proizvod vrijede sljedeca pravila:
Mada se kao inicijalni indeks podrazumijeva vrijednost 1 preporucljivo je radi jas-
noce naznaciti i tu vrijednost.
Ako se koristi vie brojaca (za svaki indeks zasebno), za svaki brojac se mogu
zasebno odrediti inkrementi
Ako se vri sumiranje odnosno proizvod beskonacno mnogo clanova redova tada je
imax = +1 odnosno imin = 1. U tom slucaju se kao granica stavlja Infinity za
pozitivne a -Infinity za negativne indekse.

Praktikum Mathematica 33 A.G. 2016/2017, Radni materijal


4.2 Korisnicke funkcije
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

4.2 Korisnicke funkcije


Za koritenje paketa Mathematica od bitne vaznosti je mogucnost denisanja korisnickih
funkcija. Osnovna naredba za denisanje funkcije je Function, koja ima sintaksu :

Function[x,<izraz>] : ovdje je sa <izraz> denisana funkcija po promjenljivoj x

Function[{x1,x2,...},<izraz>] : denisanje funkcije sa vie argumenata

Dodavanjem argumen(a)ta, u uglatoj zagradi, vri se evaluacija funkcije denisane sa


<izraz>.

Osim ovoga, denicija funkcije moze biti bezuslovna, uslovna, kompozicijom, rekurzivna,
nabrajanjem, parametarska ili pure funkcija.

Bezuslovna denicija se formulie na jedan od sljedeca dva nacina:

f[x_]=... ili f[x_]:=...

U zagradi su navedeni argumenti funkcije. Ako ih ima vie razdvojeni su zarezima. Od


sutinske vaznosti je koritenje donje crte (_) iza naziva argumenta jer se time pravi razlika
od vrijednosti koja se koristi za racunanje. Denicija funkcije se, u pravilu, zavrava
simbolom tacka-zaez (;).

Uslovna denicija podrazumijeva vie analitickih oblika na raznim intervalima i/ili


domenima. Sintaksa uslovne denicije je:

f[x_]:=<opis>/; <uslov>

U ovom slucaju je koritenje znaka := obavezno. Denicija ima onoliko redova koliko je
uslova.

Denicija kompozicijom podrazumijeva da je funkcija argument druge funkcije. Za te


potrebe se koristi komanda:

Composition[f,g]

Komanda moze imati vie argumenata odvojenih zarezom. Ovo odgovara matematickoj
notaciji f g (x) = f (g (x)).

Moguca je kompozicija funkcije sa samom sobom. Jedan od nacina je da se pie:

Composition[f,f], Composition[f,f,f]

Konformniji nacin, posebno u slucajevima veceg broja koraka je koritenje komandi


Nest*.

Nest[f,<izraz>,n] : funkciju f primjenjuje n puta u izrazu <izraz>

NestList[f,<izraz>,n] :funkciju f primjenjuje n puta u izrazu <izraz> i pritom


generie listu meurezultata

Praktikum Mathematica 34 A.G. 2016/2017, Radni materijal


4.2 Korisnicke funkcije
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

Rekurzivna denicija podrazumijeva denisanje jedne ili vie pocetnih vrijednosti i


deniciju u funkciji prethodnih vrijednosti. Primjer je dobro poznata denicija Fibonaci-
jevih brojeva:
f[1]=1; f[2]=1; f[n_]:=f[n-1]+f[n-2];
Dovoljno je unijeti npr. f[30] i dobiti trazenu vrijednost. Obavezno je koritenje znaka
:= u rekurzivnom izrazu, u ovom slucaju trece jednakosti. Drugi nacin je da se koristi
komanda
RecurrenceTable[{def1,def2,...},<lista>,{n,nmin,nmax }]
Ovdje je:
{def1,def2, ...} : denicija rekurentnih odnosa i pocetnih vrijednosti
<lista> : naziv liste u koju ce biti usmjeren rezultat
{n,nmin,nmax }
Primjer 4.1 RecurrenceTable[{a[t]==0.9 a[t-1],a[0]==100},a,{t,0,10}]
Ako je zavisnost linearna alternativa je koritenje LinearRecurrence komande.
Primjer 4.2 Isti primjer napisan na drugi nacin :
LinearRecurrence[{0.9},{100},11]
Nabrajanje se koristi za deniciju ako domen i kodomen funkcije imaju konacan broj
elemenata.
Primjer 4.3 Neka je domen X = f1; 3; aa; ddg a kodomen skup Y = fbit; gt; 10; 56g.
Tada se funkcija moze denisati npr. na sljedeci nacin:
f[1]:=bit; f[3]:=gt; f[aa]:=10; f[dd]:=56
Tada ne mozemo dobiti npr. f[7] jer takva vrijednost nije denisana. Ovakav nacin
denisanja je dosta rijedak ali se moze pojaviti u radu.
Parametarska denicija podrazumijeva da se svaka od koordinata denie kao funkcija
nekih parametara.
Primjer 4.4 Denicija elipse.
f[r,t]:=[{2rCos[t],rSin[t]},{t,0,2 }, {r,0,1}]
Pure funkcija se denie na nacin da se navede naziv funkcije, iza cega slijedi denicija
putem promjenljivih koje se nabrajaju u formi znaka # pracenog rednim brojem prom-
jenljieve; cijeli zapis se zavrava znakom &; (ampersend, tacka-zarez). Za izracunavanje
se navodi naziv funkcije sa argumentima u uglastim zagradama, [].
Primjer 4.5 Kvadratna funkcija moze biti denisana na sljedeci nacin: f=#12 &. Na
mjestu #1 moze biti bilo koji broj ili izraz:
f[3] //Rezultat : 9
f[a+b] //Rezultat : (a+b)2
Operacije sa korisnicki denisanim funkcijama se obavljaju jednako kao u matematickoj
praksi.

Nova dodjela vrijednosti nekoj funkciji ne brie prethodne denicije. Ako se zeli nova
denicija tada prethodna mora biti obrisana naredbom Clear.

Praktikum Mathematica 35 A.G. 2016/2017, Radni materijal


4.3 Rijeeni primjeri
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

4.3 Rijeeni primjeri


4.3.1 Sume, proizvodi
Zad. S.04.01. Izracunati sljedece sume.

X
20 1 1 1 X
n

i 2 + + + ::: S= k (k + 1)
1 4 9
i=1 k=1
Xn
( 1)k(k 1)=2
1 1 1 S=
+ + ::: + k!
15 17 51 k=1

S = sin x + sin (x2 ) + sin (x3 ) + ::: + sin (xn )


1 1 1 1 1 1
S =1+ 1+ + 1+ + + ::: + 1 + + + ::: +
2 2 3 2 3 20

Zad. S.04.02. Izracunati sljedece sume.


X1
1 X1
1 X
1
( 1)i+1
i=1
i2 i=1
i2 i=1
i (i + 1) (i + 2)

Zad. S.04.03. Izracunati vrijednost sljedecih suma.

X
100 X
50
1 X
n
k!
i + j2 1 1 1
i=1 j=1 i=1 + + ::: +
1 2 k
Zad. S.04.04. Naci sumu :

prvih 25 prostih brojeva

prvih 100 slucajnih brojeva

Zad. S.04.05. Izracunati sljedece proizvode.

1 1 1
P = 1+ 1+ ::: 1 +
12 22 n2
(x 2) (x 4) ::: (x 64)
R=
(x 1) (x 3) ::: (x 63)

4.3.2 Korisnicke funkcije


Zad. F.04.01. Denisati funkcije i provjeriti vrijednosti po datim kriterijima.
8 2
< x +3 x 1
f (x) = 4 x 2 ( 1; 2) ; x < 1; x 2 ( 1; 1) ; x>1
:
2 x x 2

Zad. F.04.02. Napraviti sljedece rekurzivne denicije.

1 n=0_n=1
n!! = ; 5!!; 6!!
n (n 2)!! n > 1 ^ n 2 N

Praktikum Mathematica 36 A.G. 2016/2017, Radni materijal


4.4 Zadaci za vjezbu
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

Zad. F.04.03. Denisati rekurzivni niz:

a1 = 2; a2 = 4; an = ( 1)n an 1 + an 2 ; n>2

Naci sumu kubova reciprocnih vrijednosti prvih 15 elemenata niza.

Zad. F.04.04. Denisati rekurzivni niz:

a1 = 1; a2 = 3; an = 2an 1 an 2 + ( 1)n n2 ; n>2

Gracki prikazati listu prvih 15 elemenata. Izracunati aproksimaciju aritmeticke sredine


prvih 10 elemenata niza.

Zad. F.04.05. Denisati funkciju kojom se racuna rastojanje izmeu tacaka (x1 ; y1 ) i
(x2 ; y2 ). Provjeriti rezultat za najmanje tri odbarane tacke.

Zad. F.04.06. Denisati funkciju kojom se racuna povrina trougla sa stranicama a, b


i c.

Zad. F.04.07. Naci kompoziciju funkcija:


p
f (x) = x; g (x) = x2 + 2x + 3

Zad. F.04.08. Pomocu formule:


1 a
x+
2 x
p
demonstrirati konvergenciju ka vrijednosti a za 10 koraka, ako je x = 100 pocetna
vrijednost.

Zad. F.04.09. Neka je:


1
f (x) =
1+x
Neka je f (n) (x) = (f f ::: f ) (x), gdje se f ponavlja n puta.Generisati niz f (k) (x) za
k = 1; :::; 10. ta je:
lim f (n) (x) =?
n!1

Zad. F.04.10. Denisati funkciju koja kvadratu broja dodaje njegov kvadratni korijen.
Izracunati vrijednost funkcije za vie argumenata.

Zad. F.04.11. Broj se formira od druga dva tako da se na kvadrat njihove sume dodaje
suma njihovih kvadrata. Ovu operaciju opisati kao pure funkciju. Izracunati nekoliko
vrijednosti te funkcije.

4.4 Zadaci za vjezbu


Zad. V.04.01. Izracunati sljedece sume.

1 1 1 1
S= + + + ::: +
sin 1 sin 1 + sin 2 sin 1 + sin 2 + sin 3 sin 1 + sin 2 + ::: + sin n

Praktikum Mathematica 37 A.G. 2016/2017, Radni materijal


4.4 Zadaci za vjezbu
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

!
X
n Y1
k X
n
k!
S= dk (b a ih) S=
1 1 1
k=0 i=1 k=1 + + ::: +
2 3 k+1
sin x + sin2 x + sin3 x + ::: + sinn x

sin x + sin (sin x) + sin (sin (sin x)) + ::: + sin (sin (sin (::: sin (x))))
cos 1 cos 1 + cos 2 cos 1 + cos 2 + cos 3 cos 1 + cos 2 + ::: + cos n
S= + + + ::: +
sin 1 sin 1 + sin 2 sin 1 + sin 2 + sin 3 sin 1 + sin 2 + ::: + sin n
2 n
2 2 2
S =1+ + + ::: +
3 3 3
X1
n X
n
1 Xn
( 1)k+1
S= S= S=
k=1
k k=1
(1 + 2k)2 k=1
(k + 1) k

Xn
1 X
n
( 1)k Xn
( 1)k (k + 1)
S= S= S=
k=1
k5 k=1
(2k + 1) k k=1
k!

Zad. V.04.02. Izracunati sljedece sume.


X
1
1 X1
( 2)i X
1
1
i=1
i (i + 1) i=1
i! i=1
(i + 3)3
X1
( 1)i X
1
1
i=1
i! i=1
4i + 5i+2

Zad. V.04.03. Izracunati sljedece dvostruke sume.

X
100 X
60 X
100 X
i
1 X
n
1
3 4
sin (i + j )
2j + i k=1
(k 2 )!
i=1 j=1 i=1 j=1

X
n X
n

k (k + 1) :: k 2 ( 1)k (2k 2 + 1)!


k=1 k=1

X
100 X
100
j i+1 X
n
kk
i=1 j=1
i+j
k=1

Zad. V.04.04. Sumu


1 1 1 1
1 + ::: +
2 3 9999 10000
izracunati na sljedeca cetiri nacina:

slijeva udesno clan po clan

slijeva udesno tako da se najprije izracuna suma neparnih clanova

1 1 1
1+ + + ::: +
3 5 9999

Praktikum Mathematica 38 A.G. 2016/2017, Radni materijal


4.4 Zadaci za vjezbu
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

zatim suma parnih clanova


1 1 1 1 1
+ + + ::: + +
2 4 6 9998 10000
a zatim napravi razlika te dvije sume.

zdesna na lijevo clan po clan

zdesna na lijevo sume pod tackom b a zatim te dvije sume oduzmu.

Da li se i zato dobijaju razliciti rezultati ?

Zad. V.04.05. Izracunati sljedece proizvode.


Y
n
sin (kx)
P = 1+
k=1
k!

Yn
(1 x)k+1 + 1
P =
k=1
((k 1)! + 1)2

Zad. V.04.06. Izracunati vrijednost sljedecih izraza.


1 1 1
S= + + ::: +
a a (a + 1) a (a + 1) ::: (a + n)
X
1
a (a 1) ::: (a k + 1)
S =1+ xk
k=1
k!

Zad. V.04.07. Denisati funkcije i provjeriti vrijednosti u svakom od poddomena.

x2 + 3 x < 2
f (x) = ; x < 2; x>2
9 x x 2
8 2
< 2x + 3 x< 1
f (x) = 6+x jxj 1 ; x< 1; x 2 ( 1; 1) ; x>1
:
8 x2 x>1
8 2
< 3x + 3 x< 1
f (x) = 7+x jxj 1 ; x < 1; x 2 ( 1; 1) ; x>1
:
9 x2 x>1

Zad. V.04.08. Izracunati vrijednosti nizova denisanih rekurzijama za odabrane vri-


jednosti brojaca. Ako denicija sadrzi parametre, racunati vrijednosti za razlicite izbore
njihovih vrijednosti.
i+1
v1 = v2 = 0; v3 = 1:5; vi = vi 1 vi 2 vi 3
i2 + 1
1
a0 = 1; ak = k ak 1 +
k
x0 = c; x1 = d; x k = q xk 1 + r xk 2 +b

Praktikum Mathematica 39 A.G. 2016/2017, Radni materijal


4.4 Zadaci za vjezbu
4 SUME, PROIZVODI, KORISNICKE FUNKCIJE

1 p 1p
a1 = b1 = 1; ak = bk 1 + ak 1 ; bk = 2a2k 1 + bk 1
2 2

X
n
U ovom slucaju naci ak b k .
k=1
Zad. V.04.09. Dat je realni broj a > 0. Denisan je niz fxk g, k = 1; 2; :::, po pravilu
8
>
> min (2a; 0:95) a 1
< a
x0 = 1 < a < 25
> 5
a
>
: a 25
25
4 a
xk = xn 1 +
5 5 x4n 1

Naci prvi clan xn za koji vrijedi da je

5a 6
jxn+1 xn j < 10
4
Za tu vrijednost xn izracunati razliku a x5n .

Zad. V.04.10. Izracunati vrijednost sljedecih veriznih razlomaka.


1 x
1 2
1+ x2 +
1 4
3+ x2 +
1 8
5+ x2 +
::: :::
1 256
101 + x2 +
103 x2

Praktikum Mathematica 40 A.G. 2016/2017, Radni materijal



5 DIFERENCIJALNI RACUN

5 Diferencijalni racun
5.1 Uvod
U okviru ovog poglavlja ce biti obraene komande i funkcije za :

Granicne vrijednosti

Izvod

Ekstremne vrijednosti

Razvoj u stepene redove

5.2 Granicne vrijednosti


Granicne vrijednosti funkcija su kameni temeljci diferencijalnog racuna. Za kompliko-
vanije funkcije racunanje granicnih vrijednosti moze biti veoma teko i moze zahtijevati
specijalizirane tehnike. Mathematica ima ugraene procedure za ovaj zadatak kojima se
uvijek nastoji dobiti tacna granicna vrijednost.

Osnovna sintaksa komande za racunanje granicne vrijednosti je:

Limit[f[x],x!a]

U ovoj sintaksi f[x] oznacava funkciju za koju se racuna granicna vrijednost. Za x ! +1


se stavlja x->Infinity, a za x ! 1 se stavlja x->-Infinity.

Ako se ova sintaksa koristi u tackama u kojima ne postoji granicna vrijednost dobija se
neupotrebljiv rezultat. Primjer je funkcija f (x) = jxj koja nema izvoda u tacki x = 0.
Ako funkcija u okolini granicne tacke nema jedinstvenu granicnu vrijednost rezultat je:

Interval[{min,max }]

Primjer je granicna vrijednost za sin (1=x) kada x tezi nuli.

Opcije koje se mogu koristiti u ovoj komandi su Direction, Assumptions i Analytic.


U nastavku je dato obrazlozenje svake od njih.

Direction. Funkcija u nekim tackama moze imati samo lijevu ili desnu granicnu vrijed-
nost. U tom slucaju sintaksa ove komande je:

Limit[f[x],x->a,Direction->#]

gdje na mjestu znaka # treba stajat 1 za lijevu a -1 za desnu granicnu vrijednost. Ako
se ne koristi, podrazumijeva se vrijednost Automatic.

Assumptions. U slucaju koritenja parametara moguce je dodati pretpostavke o njihovoj


vrijednosti dodavanjem opcije:

Assumptions-><izraz >

Praktikum Mathematica 41 A.G. 2016/2017, Radni materijal


5.3 Izvodi
5 DIFERENCIJALNI RACUN

Ovdje <izraz > stoji za neki uslov koji zelimo staviti za parametar, npr. a 0, a < 0 i
slicno.

Analytic. Ovom opcijom se naznacuje da je funkcija analiticka u okolini tacke za


koju se trazi granicna vrijednost. Moguce su dvije vrijednosti : Analytic->True ili
Analytic->False.

Ako se ne moze naci granicna vrijednost moze se kao rezultat dobiti jedna od sljedece
dvije poruke: ComplexInnity ili Indeterminate. Prva poruka se dobije ako nije poznat
znak beskonacne velicine. Primjer je granicna vrijednost izraza 1=x. Druga poruka se
dobije ako se ne moze odrediti vrijednost. Primjer je izraz 1 1.

5.3 Izvodi
Ako je f (x) funkcija tada je f 0 (x) njen prvi izvod. U paketu Mathematica prvi izvod se
oznacava apostrofom iznad naziva funkcije, npr. f[x]. Broj apostrofa odgovara redu
izvoda. Komande za rad sa izvodima su u narednoj tabeli.

Funkcija Alternativa Opis


f[x] @x (f(x)) Objanjenje (1)
D[f(x1,x2,...),pr] @pr (f(x1,x2,...)) Objanjenje (2)
D[f(x1,x2,...),x1,x2,...] @x1;x2;::: (f(x1,x2,...)) Objanjenje (3)
D[f(x),{x,n}] @fx;ng (f(x)) Objanjenje (4)
D[f(x1,x2,...),{x1,n1},{x2,n2},...] @fx1;n1g;fx2;n2g (f(x)) Objanjenje (5)

(1) Prvi izvod funkcije po argumentu x (2) Izvod funkcije f po odabranoj promjenljivoj
pr (3) Izvod funkcije f redom po argumentima x1; x2; ::: (4) Izvod reda n funkcije f po
argumentu x; (5) Parcijalni izvodi funkcije f reda n1 po x1, reda n2 po x2, ...

U paletama je moguce naci simbol @ za parcijalni izvod a moze se unijeti sekvencom


Esc-pd-Esc. Za indeks, koji se unosi sekvencom Ctrl+- (znak minus), se stavlja oznaka
promjenljive po kojoj se pravi izvod i red tog izvoda. Funkcija se navodi nazivom, bez
zagrada. Izraz, umjesto naziva funkcije, se navodi u obicnim zagradama, (), a ne u
zagradama za argumente,[]. U indeksu se koriste viticaste zagrade, {}.

Umjesto oznake f u ovim denicijama moze stajati bilo koja matematicka funkcija. To
znaci da je moguce pisati npr. Sin[x]. Zapaziti da sintaksa zahtijeva da se apostrof
pie izmeu naziva funkcije i zagrade za argumente.

Ako se ne navede [x] iza naziva odnosno ako se napie samo ime funkcije sa apostrofom,
npr. Sin, dobija se tzv. cista (engl. pure) funkcija, koja umjesto argumenata ima
oznaku # pracenu rednim brojem promjenljive.

Putem naredbe D[...] se mogu racunati izvodi po poznatim pravilima za izvode (suma,
kolicnik, proizvod, slozena funkcija, ...).

Izvod funkcije se dobija i koritenjem varijanti naredbe Derivative po sljedecim pravil-


ima:

Derivative[n][f] : izvod reda n funkcije f . Rezultat je pure funkcija

Praktikum Mathematica 42 A.G. 2016/2017, Radni materijal


5.4 Ekstremi funkcije
5 DIFERENCIJALNI RACUN

Derivative[n1,n2,...][f] : izvodi reda n1 ; n2 ; ::: funkcije f redom po argumen-


tima. Rezultat je pure funkcija

Derivative[n][f][x] : vrijednost izvoda reda n funkcije f u tacki x

Totalni diferencijal se racuna koritenjem komande Dt na sljedeci nacin:

Dt[f[x,y]] : totalni diferencijal funkcije f

Dt[f[x,y],x] : totalni diferencijal funkcije f po x

U ovim komandama moze biti koritena opcija Constants->{lista}, kojom se prom-


jenljive navedene u {lista} tretiraju kao konstante.

5.4 Ekstremi funkcije


Za razliku od apsolutnog ekstrema, funkcija moze imati vie lokalnih ekstrema (rela-
tivnih maksimuma / minimuma). Ako je njihova numericka aproksimacija sve to se
trazi Mathematica nudi ekasnu i prikladnu proceduru u obliku dvije komande:

FindMinimum[f[x],{x,x0}] : nalazenje lokalnog minimuma funkcije f (x) u okolini


tacke x0

FindMaximum[f[x],{x,x0}] : nalazenje lokalnog maksimuma funkcije f (x) u okolini


tacke x0

Mogu se koristiti opcije AccuracyGoal, PrecisionGoal i WorkingPrecision, kao i za


komandu FindRoot (jer u sutini to i jesu korijeni izvoda funkcije). Rezultat je lista od
dva clana. Prvi je vrijednost ekstrema a drugi je vrijednost promjenljive.

5.5 Stepeni redovi


Ako su poznate vrijednosti funkcije i njenih izvoda u pojedinim tackama, a, tada se
funkcija moze predstaviti u obliku stepenog reda. Forma ovog predstavljanja, poznata
kao Tejlorov red, je:

X
1
f (k) (a)
f (x) = (x a)k
k=0
k!

U ovom izrazu f (k) (a) predstavlja k-ti izvod u tacki a. Ako je a = 0 dobija se Maklorenov
red.

Iz prakticnih razloga se posmatra konacan broj clanova tih redova, na nacin da se dobije
razuman nivo tacnosti u okolini tacke a.

U paketu Mathematica se ovaj red za funkciju f (x) moze generisati na jedan od sljedecih
nacina :

Sum[(D[f][x],{x,k}]/.x->a)/k!*xk ,{k,0,n}]

Praktikum Mathematica 43 A.G. 2016/2017, Radni materijal


5.6 Rijeeni zadaci
5 DIFERENCIJALNI RACUN

X
n
@fx;kg f[x]=:x >a
xk
k=0
k!

X
n
Derivative[k][f][a]
xk
k=0
k!

Series[f[x],{x,a,n}]

U ovim izrazima je a tacka u cijoj okolini se kreira red, n je najveci stepen polinoma.
Simboli za izvod i sumu se mogu dobiti na nekoj od paleta.

Rezultat komande Series je SeriesData lista, ciji elementi su koecijenti polinoma. Vri-
jednosti ove liste ne mogu sluziti za numericku evaluaciju polinoma za neku vrijednost.
Ako se izlaz komande Series oznaci nazivom tada se taj naziv koristi kao argument
komande Normal, kojom se omogucava da se racunaju vrijednosti polinoma.

Primjer 5.1 U nastavku je primjer koritenja niza komandi koje imaju za cilj koritenje
Tejlorovog reda funkcije f (x) za racunanje.
iz1:=Series[f[x],{x,a,n}] //Rezultat: Tejlorov red
p[x_]:=Normal[iz1] //Rezultat : polinom za racunanje vrijednosti
p[3] //Rezultat : vrijednost polinoma u tacki 3

Ako nam je potreban odreeni koecijent dobijenog Tejlorovog reda koristimo naredbu
SeriesCoefficient[izlaz,n], gdje je izlaz naziv koji smo dali Tejlorovom redu a n stepen
koecijenta.

5.6 Rijeeni zadaci


Zad. 05.01. Naci sljedece granicne vrijednosti.
x5 32 2x + x 1
lim 3 lim
x!2 x 8 x!0 3x

jxj ax
lim lim
x!1 xa
x!0 x

3
tan x x
x arctan x log (x2 ) lim
lim p x!0 x3
x! 1 2 x ln2 x 1
lim (1 + sin x)cot 2x
x!0
(ln x)2
lim p p
x!1 ln x + 1 ln x 1 lim (ex + x)1=x
x! 1

sin x
lim lim (2 x)tan( x=2)
x!0 x x!1

Zad. 05.02. Naci izvode i ekstreme sljedecih funkcija.

f (x) = x + sin (5x)


p
f (x; y) = sin x2 + y 2 + 1

f (x) = 2x2 + x4 + 3y y3

Praktikum Mathematica 44 A.G. 2016/2017, Radni materijal


5.7 Rjeenja
5 DIFERENCIJALNI RACUN

Zad. 05.03. Pravilni uspravni cilindar je upisan u jedinicnu sferu. Naci : a) cilindar
najvece zapremine; b) cilindar najvece povrine.

Zad. 05.04. Sljedece funkcije razviti u Tejlorov red oko date tacke sa datim brojem
elemenata.
p
f (x) = x + 2; a = 0; n=5
x
f (x) = ; a = 2; n=6
x 1
2
f (x) = [arctan (x2 )] cos (x) ; a = 0; n=9

f (x) = log x; a = 1; n = 10

5.7 Rjeenja
Zad. 05.03. a) Ako je r poluprecnik a h visina cilindra, tada je njegova zapremina data
sa
" #
2
h
V (h) = 1 h
2

Ilustracija je na sljedecem crtezu.

Zad. 05.03.

b) Povrina cilindra je S = 2r2 h + 2r h. Vrijedi da je


2
2 h
r + =1
2

Iz ovoga se izvodi izraz za h po r a time i povrina.

5.8 Zadaci za vjezbu


Zad. V.05.01. Na krugu x2 + y 2 2x 4y = 0 naci tacke koje su najblize i najudaljenije
od tacke P (4; 4).

Zad. V.05.02. Telefonska kompanija zeli poloziti kabl od tacke A na jednoj strani rijeke
iroke 100 m do tacke B na drugoj strani rijeke koja je 500 m nize od tacke C koja je na
suprotnoj strani rijeke od tacke A. Troak polaganja pod vodom je tri puta manji nego
po kopnu. Kako treba poloziti kabl da bi se minimizirali trokovi ?

Praktikum Mathematica 45 A.G. 2016/2017, Radni materijal


5.8 Zadaci za vjezbu
5 DIFERENCIJALNI RACUN

Zad. V.05.03. Naci izvode i ekstreme sljedecih funkcija.

x2 1 f (x) = xsin x
f (x) = + 3
2 3x
f (x) = x1=3 (x 4)1=3 (x 6)2=3
x
f (x) = xe
f (x) = 2 cos x + sin 2x
p p
f (t) = cos t + cos t p
f (x) = 3 x (x + 4)
t 2
1 2x
f (t) = 1+ f (x) = 1 + arcsin
t 1 + x2
Zad. V.05.04. Naci granicne vrijednosti.

2x2 + 25x + 72 e3x 1


lim lim
x! 9=2 72 47x 14x2 x!0 x
3x2 7x 20 1 1
lim lim
x! 5=3 21x2 + 14x 35 x!1 ln x x 1

Praktikum Mathematica 46 A.G. 2016/2017, Radni materijal



6 INTEGRALNI RACUN

6 Integralni racun
U ovom poglavlju ce biti predstavljene funkcije i metode racunanja neodeenih i odreenih
integala.

6.1 Neodreeni i odreeni integral


Osnovne naredbe za racunanje integrala u paketu Mathematica su:

Integrate[f[x],x] : racunanje neodreenog integrala funkcije f (x)

Integrate[f[x],{x,a,b}] : racunanje odreenog integrala funkcije f (x) na inter-


valu (a; b)

NIntegrate[f[x],{x,a,b}] : racunanje odreenog integrala funkcije f (x) na in-


tervalu (a; b) koritenjem striktno numerickih metoda

Integrate[f[x1,x2,...],{x1,a1,b1},{x2,a2,b2},...] : racunanje viestrukog


odreenog integrala funkcije f (x1; x2; :::) na intervalima (a1; b1), (a2; b2), ...

NIntegrate[f[x1,x2,...],{x1,a1,b1},{x2,a2,b2},...] : racunanje viestrukog


odreenog integrala funkcije f (x1; x2; :::) na intervalima (a1; b1), (a2; b2), ... ko-
ritenjem striktno numerickih metoda

Za racunanje odreenog integrala mogu se koristiti opcije AccuracyGoal, PrecisionGoal


i WorkingPrecision. Umjesto rijeci Integrate moguce je koristiti znak za integral sa
odgovarajuce palete.

Moguce je racunati neke tipove nesvojstvenih integrala.

Nesvojstveni integral I vrste je onaj kod kojeg je jedna ili obje granice integracije
beskonacne. Ako je potrebno, navodi se opcija Assumptions kojom se garantuje konver-
gencija.

Primjer 6.1 Integral funkcije xn je divergentan na (1; +1) ako je n 1. Opcija je:
Integrate[x^n,{x,1,Infinity},Assumptions->n<-1] //Rezultat je -1/(n+1)

Nesvojstveni integral II vrste je onaj kod kojeg podintegralna funkcija nije denisana
u intervalu integracije. Jedan od nacina da se to prevazie je da se interval podijeli na pod-
intervale. Drugi nacin je da to uradi paket Mathematica opcijom PrincipalValue->True.

Primjer 6.2 Integral funkcije 1=x nije moguce racunati na intervalu ( 2; 3) jer nije
denisana u tacki x = 0. Jedan od nacina je sljedeci:
Z3 Z0 Z3
1 1 1
I = dx = dx + dx = (ln jxj)0 2 + (ln jxj)30
x x x
2 2 0
3
= lim ln jxj ln j 2j + ln j3j lim ln jxj = ln
x!0 x!0 2
Isti rezultat se dobije ako se napie:
Integrate[1/x,{x,-2,3},PrincipalValue->True]

Praktikum Mathematica 47 A.G. 2016/2017, Radni materijal


6.2 Rijeeni zadaci
6 INTEGRALNI RACUN

Ako se u odreenim integralima jedna od granica stavi kao promjenljiva dobijamo funkciju
denisanu integralom.

Primjer 6.3 Neka je data funkcija f (t) = 1=t. Integral te funkcije u intervalu (1; x) je
funkcija gornje granice.
f[x_]:=1/x;
F[x_]:=Integrate[f[t],{t,1,x}];
Sada mozemo racunati npr. F[2], F[4], ....

Pomocu odreenih integrala rjeavamo neke druge probleme kao to su zapremina i


povrina obrtnih tijela, duzina luka i slicno.

6.2 Rijeeni zadaci


Zad. 06.01. Izracunati sljedece neodreene integrale.
Z
x
I= dx
(x + 2) (x + 1)4

Zad. 06.02. Izracunati sljedece odreene integrale. Ako je potrebno, uvesti pretpostavke
(opcija Assumptions).

Z=3 2
Z1 Z1
sin t cos t 2 sin x
I= dt I= dx I= sin (cos (x)) dx
1 + tan 2t x + exp fxg
0 0 0

Zad. 06.03. Izracunati povrinu koju oganicavaju krive

f (x) = 1 x2 ; g (x) = x4 3x2

3x2 6x x 0
f (x) = ; g (x) = sin x+
3x2 6x x > 0 2

Zad. 06.04. Izracunati sljedece viestruke integrale.


Z2 Zx Z2 Zx Zxy
I= (x + y) dxdy I= (x + y) dxdy
x=1 y=1 x=0 y=0 z=0

6.3 Zadaci za vjezbu


Zad. V.06.01. Izracunati sljedece neodreene integrale.
Z Z
x
p
I = xe sin xdx I= x2 + a2 dx
Z Z
n
1
I= x dx I= p dx
x2 a2
Zad. V.06.02. Izracunati sljedece odreene integrale.

Praktikum Mathematica 48 A.G. 2016/2017, Radni materijal


6.3 Zadaci za vjezbu
6 INTEGRALNI RACUN

Z1
I= sin (sin (x)) dx
0

Praktikum Mathematica 49 A.G. 2016/2017, Radni materijal



7 GRAFICKI PRIKAZ FUNKCIJA

7 Gracki prikaz funkcija


7.1 Uvod
Gracki prikaz funkcija je bitan u nekim vrstama analiza. U ovom poglavlju ce biti
obraene metode 2D i 3D grackih prikaza.

Zadaci koji su obraeni su primjeri i na njima su prezentirane gotovo sve opcije grackog
prikaza. Bogatiji izbor funkcija za rad se moze naci u svakoj zbirci zadataka vie matem-
atike. Preporucujemo da se proba to vie opcija za svaki primjer.

7.2 2D gracki prikaz


2D gracki prikaz podrazumijeva crtanje funkcija jedne promjenljive odnosno grakona
u jednoj ravni.

7.2.1 Tipovi denicija grakona


Denicija pomocu pravougaonih koordinata podrazumijeva koritenje osnovne ko-
mande za gracki prikaz, Plot, sa sljedecim varijantama :

Plot[f[x],{x,xmin ,xmax }] : grakon funkcije f u intervalu (xmin ; xmax )

Plot[{f[x],g[x]},{x,xmin ,xmax }] : grakon funkcija f i g u intervalu (xmin ; xmax )

Parametarska denicija podrazumijeva da su x i y koordinate tacaka denisane kao


nezavisne funkcije trece promjenljive. Osnovna komanda je ParametricPlot sa sljedecim
sintaksama:

ParametricPlot[{x[t],y[t]},{t,tmin ,tmax }] : grakon funkcije f za parametar


t intervalu (tmin ; tmax )

ParametricPlot[{{x1[t],y1[t]},{x2[t],y2[t]},...},{t,tmin ,tmax }] : grakon


funkcija f1 , f2 , ...za parametar t u intervalu (tmin ; tmax )

Polarne koordinate se deniu radijus vektorom i uglom. Osnovna komanda je PolarPlot


sa sljedecom sintaksom:

PolarPlot[f[ ],{ , min, max}] : generie grakon po formuli r = f ( ) kad se


mijenja u intervalu ( min ; max )

PolarPlot[{f1[ ],f2[ ], ...},{ , min, max}] : generie grakone funkcija f1 ,


f2 , ... kad se mijenja u intervalu ( min ; max )

Ako postoji potreba da se istovremeno prikazu krive denisane razlicitim metodama tada
se koristi naredba

Show[f1,f2,...,<opcije>]

Za <opcije> se stavljaju vrijednosti koje su u nastavku.

Praktikum Mathematica 50 A.G. 2016/2017, Radni materijal


7.2 2D gracki prikaz
7 GRAFICKI PRIKAZ FUNKCIJA

7.2.2 Opcije 2D grackog prikaza


Opcije se koriste u svim denicijama 2D graka i odnose se na pojedine elemente. Bitni
su raspon, omjer jedinica na osama, izgled i boja linija, oznake na grakonu, crtanje osa,
sjencenje, pohranjivanje.

Rasponi promjenljivih se odreuju opcijom PlotRange na sljedeci nacin :

PlotRange->Automatic : predenisana (default) opcija. Sve tacke cije su koordi-


nate su prevelike za prikaz se izostavljaju

PlotRange->All : forsiranje prikaza svih tacaka

PlotRange->{ymin ,ymax } : crtanje tacaka cije su ordinate u datom rasponu

PlotRange->{{xmin ,xmax },{ymin ,ymax }} : crtanje tacaka cije su apscise i ordinate


u datim rasponima

Omjer grakona se odreuje opcijom AspectRatio na sljedeci nacin:

AspectRatio-><vrijednost> : odreuje omjer podjele na osama. Ako se ne navede


podrazumijeva se omjer GoldenRatio. Ako se za <vrijednost> stavi Automatic
podjela je jednake velicine za obje koordinatne ose

Izgled i boja linija za crtanje se odreuje opcijom PlotStyle na sljedeci nacin :

PlotStyle->{stil1,stil2,...} : odreuje nacin crtanja primjenom razlicitih boja ili


njihovih nijansi. Za stil# se moze staviti vrsta linije (crtkana, tacke, crta-tacka, ...),
boja (crvena, plava, ...) i slicno. Vrijednosti se mogu naci u Help sistemu paketa

Oznake na grakonu se stavljaju opcijom PlotLabel na sljedeci nacin :

PlotLabel->"tekst" : tekst iznad grakona (naslov)

AxesLabel->"tekst" : tekst sa x-osu

AxesLabel->{"tekst"} : tekst sa x-osu

AxesLabel->{"tekst1","tekst2"} : tekstovi sa x-osu i y-osu

Crtanje osa se odreuje opcijom Axes na sljedeci nacin :

Axes->True : iscrtava obje ose (default)

Axes->False : ne iscrtavaju se ose

Axes->{False,True} : x-osa se ne iscrtava a y-osa se iscrtava

Axes->{True,False} : x-osa se iscrtava a y-osa se ne iscrtava

Popunjavanje (sjencenje) prostora se regulie opcijom Filling na sljedeci nacin:

Filling->Axis : popunjava se prostor izmeu x-ose i krive

Praktikum Mathematica 51 A.G. 2016/2017, Radni materijal


7.2 2D gracki prikaz
7 GRAFICKI PRIKAZ FUNKCIJA

Filling->Top : popunjava se prostor iznad krive do gornje granice prostora za


crtanje
Filling->Bottom : popunjava se prostor od donje granice prostora za crtanje do
krive
Filling->y : popunjava se prostor od krive do naznacene vrijednosti za y
Filling->{m} : popunjava se prostor od m-te krive po redu crtanja
Filling->{m->{n}} : popunjava se prostor od m-te do n-te krive po redu crtanja
Filling->{m->{y,g}} : popunjava se prostor od m-te krive do vrijednosti y, uz
stil g
Filling->{m->{{n},g}} : popunjava se prostor od m-te do n-te krive, uz stil g
Pohranjivanje grakona, radi kasnije manipulacije, vri se komandom pridruzivanja:
g1=Plot[f[x],{x,x1,x2}];
Ovo omogucava kasniju manipulaciju kao to je eksport, grupisanje i drugo. U tom smislu,
korisna je komanda GraphicsArray[{g1,g2,...}] kojom se iscrtava vie grakona u
nizu.

7.2.3 2D grakoni posebnog tipa


Standardni gracki oblici mogu biti generisani koritenjem naredbe Graphics i prikazani
pomocu naredbe Show. Osnovna sintaksa je:
Graphics[primitive]
gdje je primitive oznaka za standardne oblike, od kojih su neki u nastavku.
Circle[{x,y},r] : krug sa centrom u (x; y) i poluprecnikom r
Disk[{x,y},r] : disk (popunjen krug) sa centrom u (x; y) i poluprecnikom r
Point[{x,y}] : tacka sa koordinatom (x; y)
Line[{x1,y1},{x2,y2},...] : linija koja povezuje tacke (x1 ; y1 ), (x2 ; y2 ), ...
Rectangle[{x1,y1},{x2,y2}] : kvadrat kojem su (x1 ; y1 ) i (x2 ; y2 ) krajevi jedne
dijagonale; stranice su paralelne osama
Polygon[{x1,y1},{x2,y2},...] : poligon kojem su tacke (x1 ; y1 ), (x2 ; y2 ), ...
tjemena
Text[tekst,{x,y}] : ispisuje tekst centriran na poziciji (x; y)
Primjer 7.1 Iscrtavanje kruga, kvadrata i poligona.
gr1=Graphics[Circle[{0,0},1]];
gr2=Graphics[Line[{{-1,-1},{-1,1},{1,1},{1,-1},{-1,-1}}]];
gr3=Graphics[Polygon[{{-1,0},{0,1},{1,0},{0,-1}}]];
gr4=Graphics[Text["Kvadrat u krugu u kvadratu",{0,1.2},
TextStyle->{FontSize->20}]];
Show[gr1,gr2,gr3,gr4]

Praktikum Mathematica 52 A.G. 2016/2017, Radni materijal


7.3 3D gracki prikaz
7 GRAFICKI PRIKAZ FUNKCIJA

7.3 3D gracki prikaz


3D gracki prikaz podrazumijeva crtanje funkcija dvije promjenljive odnosno grakona u
prostoru. Posebna pogodnost u ovom slucaju je mogucnost da se 3D grakon, koritenjem
mia, sagledava iz zeljenog ugla bez posebnih denicija.

7.3.1 Tipovi denicija grakona


Denicija pomocu pravougaonih koordinata podrazumijeva koritenje osnovne ko-
mande za gracki prikaz, Plot3D, sa sljedecim varijantama :
Plot3D[f[x,y],{x,xmin ,xmax },{y,ymin ,ymax }] : grakon funkcije f u interval-
ima (xmin ; xmax ) i (ymin ; ymax )
Plot3D[{f1[x,y],f2[x,y],...},{x,xmin ,xmax },{y,ymin ,ymax ] : grakoni funkcija
f1 , f2 , ... u intervalima (xmin ; xmax ) i (ymin ; ymax )
Parametarska denicija podrazumijeva da su x i y koordinate tacaka denisane kao
nezavisne funkcije trece promjenljive. Osnovna komanda je ParametricPlot3D sa sljedecim
sintaksama:
ParametricPlot3D[{x[t],y[t]},{t,tmin ,tmax }] : grakon funkcije f za para-
metar t intervalu (tmin ; tmax )
ParametricPlot3D[{{x1[t],y1[t]},{x2[t],y2[t]},...},{t,tmin ,tmax }] : grakon
funkcija f1 , f2 , ...za parametar t u intervalu (tmin ; tmax )
Konturno crtanje podrazumijeva nacin u kojem su naznacene linije nivoa (level curves)
koje odgovaraju vrijednostima f (x; y) = k za neko ksno k. Konturno crtanje je skup
linija nivoa na istom skupu osa. Primjer ovakvog nacina crtanja su geografske karte na
kojima su vidljive izohipse, linije na istoj visini geografskih elemenata.
Osnovna naredba je ContourPlot sa osnovnom sintaksom:
ContourPlot[f[x,y],{x,xmin ,xmax },{y,ymin ,ymax }]
Rezultat je grakon sa osjencenim regionima koji su tamniji za nize vrijednosti. Osnovne
opcije ove komande su:
Contours->n : navodi se broj kontura. Predenisana (default) vrijednost je 10
Contours->{k1,k2,...} : konture koje odgovaraju vrijednostima k1 , k2 , ...
ContourShading->False : iskljucuje se sjencenje; prikladno za tampu
ContourLines->False : iskljucuje prikaz linija, ostaje samo sjencenje
Ako se miem stane na liniju u konturi prikazuje se vrijednost koja odgovara toj liniji
(nivou).
Varijanta ove naredbe je ContourPlot3D, u kojem se zasebno iscrtavaju u prostoru krive
koje odgovaraju vrijednostima f (x; y) = k, za ksno k.
Nijansirano crtanje (engl. density plot) podrazumijeva nacin u kojem su vrijednosti
predstavljene nijasom boje koje su tamnije za nize vrijednosti. Osnovna komanda je
DensityPlot sa sintaksom:

Praktikum Mathematica 53 A.G. 2016/2017, Radni materijal


7.3 3D gracki prikaz
7 GRAFICKI PRIKAZ FUNKCIJA

DensityPlot[f[x,y],{x,xmin ,xmax },{y,ymin ,ymax }]

Posebna opcija ove komande je Mesh sa vrijednostima :

Mesh->None : crtanje bez nijansiranja


Mesh->Automatic : crtanje sa automatski odabranom gustinom mreze
Mesh->n : crtanje na mrezi od n ravnomjerno rasporeenih linija
Mesh->All : crtanje sa podjelom izmeu svih razlicih vrijednosti
Mesh->Full : crtanje sa podjelom kroz regularne vrijednosti

Sferno crtanje podrazumijeva koritenje sfernih koordinata. Osnovna komanda je


SphericalPlot3D sa sljedecim varijantama:

SphericalPlot3D[ , ; ] : grakon funkcije po vrijednostima za i . Pritom


je ugao u Oxy ravni (geografska duzina) a ugao prema pozitivnom dijelu z-ose
(geografska irina)
SphericalPlot3D[ ,{ , min , max },{ , min , max }] : grakon funkcije u inter-
valima ( min ; max ) i ( min ; max )

7.3.2 Opcije 3D prikaza


Za crtanje 3D grakona moguce je koristiti sve opcije koje su nabrojane za 2D grakone,
uz odgovarajuca prilagoavanja.

Rasponi promjenljivih se odreuju opcijom PlotRange na sljedeci nacin :

PlotRange->Automatic : predenisana (default) opcija. Sve tacke cije su koordi-


nate su prevelike za prikaz se izostavljaju
PlotRange->All : forsiranje prikaza svih tacaka
PlotRange->{zmin ,zmax } : crtanje tacaka cije su z-koordinate u datom rasponu
PlotRange->{{xmin ,xmax },{ymin ,ymax },{zmin ,zmax }} : crtanje tacaka cije su ap-
scise i ordinate u datim rasponima

Broj tacaka u svakom smjeru za crtanje.

PlotPoints->n : predenisana (default) vrijednost je 15. Veci broj znaci vecu


tacnost odnosno glatkocucrtanja
PlotPoints->{nx,ny} : broj tacaka po osama

Crtanje osa se odreuje opcijom Axes na sljedeci nacin :

Axes->True : iscrtava obje ose (default)


Axes->False : ne iscrtavaju se ose
Axes->{sx,sy,sz } : za svaku od vrijednosti sx, sy, sz se stavlja tekst False ili True,
u zavisnosti od toga da li se zeli crtanje ose ili ne

Praktikum Mathematica 54 A.G. 2016/2017, Radni materijal


7.4 Liste i tabele
7 GRAFICKI PRIKAZ FUNKCIJA

7.3.3 3D grakoni posebnog tipa


Standardni gracki oblici mogu biti generisan koritenjem naredbe Graphics i prikazani
pomocu naredbe Show. Osnovna sintaksa je:

Graphics3D[primitive]

gdje je primitive oznaka za standardne oblike, od kojih su neki u nastavku.

Cuboid[{x,y,z}] : paralelepiped sa tjemenom u (x; y; z); stranice paralelne osama

Cuboid[{x1,y1,z1},{x2,y2,z2}] : paralelepiped cija su tjemena na prostornoj


dijagonali u tackama (x1 ; y1 ; z1 ) i (x2 ; y2 ; z2 ); stranice paralelne osama

Cylinder[{x1,y1,z1},{x2,y2,z2},r] : cilindar poluprecnika r oko linije koja


spaja tacke (x1 ; y1 ; z1 ) i (x2 ; y2 ; z2 )

Point[{x,y,z}] : tacka sa koordinatom (x; y; z)

Line[{x1,y1,z1},{x2,y2,z2},...] : linija koja povezuje tacke (x1 ; y1 ; z1 ), (x2 ; y2 ; z2 ),


...

Polygon[{x1,y1,z1},{x2,y2,z2},...] : poligon kojem su tacke (x1 ; y1 ; z1 ), (x2 ; y2 ; z2 ),


... tjemena

Sphere[{x,y,z},r] : lopta sa centrom u (x; y; z) i poluprecnikom r

Cone[{x1,y1,z1},{x2,y2,z2},r] : konus poluprecnika r u tacki (x1 ; y1 ; z1 ) i vrhom


u tacki (x2 ; y2 ; z2 )

Text[tekst,{x,y,z}] : ispisuje tekst centriran na poziciji (x; y)

7.4 Liste i tabele


Nekad je od interesa gracki predstaviti podatke date tabelarno. U ovom dijelu ce biti
prezentirano predstavljanje pomocu tacaka u ravni, stubica, kruznih dijagrama.

7.4.1 Tacke u ravni


Naredbe za ove namjene su ListPlot i ListLinePlot, sa svojim varijantama :

ListPlot[{y1,y2,...},<opcije>] : crtanje tacaka sa ordinatama y1 ; y2 ; :::

ListPlot3D[{y1,y2,...},<opcije>] : crtanje tacaka sa ordinatama y1 ; y2 ; ::: u 3D


prikazu

ListPlot[{{x1,y1},{x2,y2},...},<opcije>] : crtanje tacaka sa koordinatama


(x1 ; y1 ) ; (x2 ; y2 ) ; :::. Ova varijanta je poznata pod nazivom scater-plot

ListPlot3D[{{x1,y1,z1},{x2,y2,z2},...},<opcije>] : crtanje tacaka sa koor-


dinatama (x1 ; y1 ; z1 ) ; (x2 ; y2 ; z2 ) ; :::. Ova varijanta je poznata pod nazivom scater-
plot

Praktikum Mathematica 55 A.G. 2016/2017, Radni materijal


7.4 Liste i tabele
7 GRAFICKI PRIKAZ FUNKCIJA

ListLinePlot[{y1,y2,...},<opcije>] : crtanje tacaka sa ordinatama y1 ; y2 ; ::: i


njihovo povezivanje linijom

ListLinePlot[{{x1,y1},{x2,y2},...},<opcije>] : crtanje tacaka sa koordinatama


(x1 ; y1 ) ; (x2 ; y2 ) ; ::: i njihovo povezivanje linijom

ListLinePlot[{lista1 ,lista2 ,...},<opcije>] : uporedni prikaz navedenih lista na


jednom dijagramu

Ovome se mogu dodati naredbe ListSurfacePlot3D, ListPointPlot3D i druge.

Moguce je koritenje standardnih grackih opcija, koje su navedene u prethodnom dijelu


ovog teksta. Opcije posebne za ovu naredbu su :

PlotStyle->PointSize[d] : dijametar tacke kao frakciju ukupne irine grakona.


Predenisana (default) vrijednost je 0:008. Mogu se koristiti vrijednosti Tiny,
Small, Medium, Large.

PlotStyle->AbsolutePointSize[d] : dijametar tacke kao multiplikator stan-


dardne velicine tacke od 1=72 inca

PlotMarkers : oblik tacke. Prikladno je koritenje opcije PlotMarkers->Automatic,


posebno ako se iscrtava vie grakona istovremeno

7.4.2 Stubovi
Naredba za ove namjene je BarChart, sa svojim varijantama :

BarChart[y1,y2,...,<opcije>] : crtanje dijagrama u obliku stubica

BarChart3D[y1,y2,...,<opcije>] : crtanje dijagrama u obliku stubica u 3D prikazu

BarChart[{lista1 ,lista2 ,...},<opcije>] : uporedni prikaz navedenih lista na jed-


nom dijagramu

BarChart3D[{lista1 ,lista2 ,...},<opcije>] : uporedni prikaz navedenih lista na


jednom dijagramu u 3D prikazu

Opcije vazne za ovu vrstu dijagrama su :

BarOrigin-><osnova> : odreivanje smjera stubica. Kao <osnova> se mogu


navesti Bottom, Top, Right, Left. Ako se ne navede podrazumijeva se vrijednost
Bottom odnosno standardni dijagram u kojem je donja ivica osnova za stubice

ChartLayout-><izgled> : odreivanje izgleda dijagrama u smislu odnosa eleme-


nata liste. Mogu se koristiti opcije "Stacked", "Percentile" (sa navodnicima). Prva
odreuje da su vrijednosti u istom stubicu a druga da su vrijedosti predstavljene
procentualnim ucecem u listi

Praktikum Mathematica 56 A.G. 2016/2017, Radni materijal


7.5 Rijeeni zadaci
7 GRAFICKI PRIKAZ FUNKCIJA

7.4.3 Kruzni dijagrami


Naredba za ove namjene je PieChart, sa svojim varijantama :

PieChart[y1,y2,...,<opcije>] : crtanje dijagrama u obliku stubica

PieChart[{lista1 ,lista2 ,...},<opcije>] : uporedni prikaz navedenih lista na jed-


nom dijagramu

Ova naredba nema 3D equivalent. Opcije vazne za ovu vrstu dijagrama su :

ChartLabels : navodi se naziv liste ili spisak oznaka za svaku vrijednost koja se
iscrtava

7.5 Rijeeni zadaci


Zad. 07.01. Nacrtati grake funkcija za date uslove. Ako je dato vie funkcija crtati ih
zajedno na istom graku.

ln (x2 + 5)
f (x) = 1 + ; x 2 [ 5; 5] ; y 2 [ 2; 10]
(x3 x + 1)2
x2 1
f (x) = ; x 2 [ 5; 5]
(x3 x + 1)2
f (x) = x exp f xg ; x 2 [0; 5]

f (x) = j1 jxjj ; x 2 [ 3; 3]
1 x2
f (x) = p exp ; x 2 [ 3; 3]
2 2
f1 (x) = x2 ; f2 (x) = x2 ; f3 (x) = x2 sin (10x) ; x 2 [ 2 ;2 ]

Zad. 07.02. Nacrtati sljedece parametarski denisane funkcije, za date uslove.

x (t) = t3 2t; y (t) = t2 2t; t 2 [ 2; 2]

x (t) = cos (t) cos (100t) sin (t) ; y (t) = 2 sin (t) sin (100t) ; t 2 [0; 2 ]

x (t) = t sin (t) ; y (t) = 1 cos (t) ; t 2 [0; 2 ]

x (t) = sin (at) ; y (t) = cos (bt) ; t 2 [0; 2 ] ; (a; b) 2 f(5; 7) ; (1; 4) ; (3; 2)g 1

Zad. 07.03. Nacrtati sljedece funkcije denisane polarnim koordinatama, za date uslove.

f ( ) = 3 (1 cos ) ; 2 (0; 2 )

f1 ( ) = 1; f2 ( ) = sin (3 ) ; 2 (0; 2 )

r= ; 2 (0; 10 ) ; 2 ( 10 ; 10 )
1
Ove krive su poznate kao Lisazuove krive

Praktikum Mathematica 57 A.G. 2016/2017, Radni materijal


7.5 Rijeeni zadaci
7 GRAFICKI PRIKAZ FUNKCIJA

Zad. 07.04. Nacrtati sljedece funkcije za date uslove. Ako je dato vie funkcija crtati
ih zajedno na istom graku.

f (x; y) = sin (x y) ; x2( ; ); y2( ; )


f (x; y) = x2 y 2 exp f (x2 + y 2 )g ; x 2 ( 2; 2) ; y 2 ( 2; 2)

Zad. 07.05. Konturnim crtanjem nacrtati sljedece funkcije.

f (x; y) = x2 + y 2 ; x 2 ( 10; 10) ; y 2 ( 10; 10)


f (x; y) = z x2 y2; x 2 ( 5; 5) ; y 2 ( 5; 5) ; z 2 (0; 10)

Zad. 07.06. Gracki predstaviti sljedece liste i tabele.

Tabelu kvadrata brojeva od 1 do 20


k k
sin ; cos ; k = 1; 20
10 10
Generisati 30 slucajnih prostih brojeva i prikazati ih dijagramom
Predstaviti dijagramom prvih 30 prostih brojeva
Na istom grakonu predstaviti prvih 20 prostih brojeva, Fibonacijevih brojeva i
kvadrata
Helikoid : fsin t; cos t; tg ; t 2 0; 10, korak 0:25

Zad. 07.07. Iscrtati krive denisane sfernim koordinatama.

= 1 + 2 cos (2 ) ; 2 [0; ] ; 2 [0; 2 ]


3
Sfere poluprecnika 1; 2; 3 za 2 [0; ] ; 2 0;
2
= 1 + sin (4 ) sin ( ) ; 2 [0; 2 ] ; 2 [0; ]
= 1 + sin (4 ) cos ( ) ; 2 [0; 2 ] ; 2 [0; ]
= 1 + cos (4 ) sin ( ) ; 2 [0; 2 ] ; 2 [0; ]
= 1 + cos (4 ) cos ( ) ; 2 [0; 2 ] ; 2 [0; ]

Zad. 07.08. Zajedno nacrtati sljedece krive:

y = x2 + x 10; x2 + y 2 = 25
y = x2 (parabola); =5 4 cos (limacon)

Zad. 07.09. Nacrtati crvenom bojom krug poluprecnika 5 sa centrom u tacki (2; 3),
u njega ucrtati pravilni sedmougao popunjen zelenom bojoj, a svako tjeme sedmougla
oznaciti kvadratom plave boje. Na sedmouglu ispisati tekst "Sedmougao".

Zad. 07.10. Nacrtati sinusoidu y = 3 sin (x) za x 2 (0; 6 ), maksimume oznaciti


tackama crvene boje velicine 0:2, minimume oznaciti tackama plave boje velicine 0:2,
nule funkcije oznaciti kruzicima zelene boje velicine 0:2.

Praktikum Mathematica 58 A.G. 2016/2017, Radni materijal


7.6 Zadaci za vjezbu
7 GRAFICKI PRIKAZ FUNKCIJA

7.6 Zadaci za vjezbu


Zad. V.07.01. Sljedece funkcije iscrtati navedenim metodama za crtanje 3D grakona,
pod datim uslovima.

f (x; y) = sin (ax)+sin (by) ; x2( ; ); y2( ; ); (a; b) 2 f(5; 3) ; (2; 7) ; :::g

f (x; y; z) = 5x2 + 2y 2 + z 2 ; x 2 ( 5; 5) ; y 2 (0; 5) ; z 2 ( 5; 5)

(t + sin (2t) ; t + sin (3t)) ; t 2 ( 2 ;2 )

(t + sin (2t) ; t + cos (3t)) ; t 2 ( 2 ;2 )

(t + cos (2t) ; t + sin (3t)) ; t 2 ( 2 ;2 )

(t + cos (2t) ; t + cos (3t)) ; t 2 ( 2 ;2 )

x2 y
f (x; y) = 4 ; x; y 2 [ 1; 1]
x + 4y 2
Umbilic torus:
h s s i
x (t; s) = 7 + cos 2t + 2 cos +t sin s
h 3 3 i
s s
y (t; s) = 7 + cos 2t + 2 cos +t cos s
3 3
s s
z (t; s) = sin 2t + 2 sin +t ; s; t 2 [ ; ]
3 3

Prostorna kriva denisana sa:

(cos (at) ; sin (bt) ; sin (ct))


t 2 [0; 2 ] ; (a; b; c) 2 f(5; 3; 1) ; (3; 3; 1) ; (2; 5; 2) ; :::g

Torus, defnisan sa:

x (t) = (c + sin (as)) cos (bt) ; y (t) = (c + sin (as)) sin (bt) ; z (t) = cos (as) ;
s; t 2 [0; 2 ] ; ; (a; b; c) 2 f(1; 1; 4) ; (20; 1; 4) ; (3; 7; 0) ; :::g

Prostorna kriva denisana sa:

= 1 + sin (a ) cos (b )
2 [0; 2 ] ; 2 [0; ] ; (a; b) 2 f(4; 1) ; (2; 5) ; (1; 3) ; :::g

Zad. V.07.02. Krug radijusa b kotrlja se unutar veceg kruga radijusa a. Kriva koju
ispisuje ksna tacka, koja je inicijalno u (a; 0), zove se hipocikloida i ima jednacinu:

a b
x ( ) = (a b) cos + b cos
b
a b
y ( ) = (a b) sin + b sin
b

Praktikum Mathematica 59 A.G. 2016/2017, Radni materijal


7.6 Zadaci za vjezbu
7 GRAFICKI PRIKAZ FUNKCIJA

Nacrtati hipocikloidu za 2 (0; 2b ) i razne kombinacije vrijednosti (a; b) 2 f(4; 1) ; (8; 5) ; (2; 1)g.

Zad. V.07.03. Neka je P tacka na odstojanju a od centra kruga radijusa t, koji se


kotrlja po ravnoj podlozi bez klizanja. Kriva koju ispisuje ta tacka se zove trohoida, sa
jednacinama:

x( ) = r a sin (t) ; y( ) = r a cos ( ) ; 2 [0; 4 ]

u slucaju da je a = r kriva se zove cikloida. Nacrtati trohoidu za razne kombinacije


vrijednosti (r; a) 2 f(1; 1=2) ; (1; 2) ; (1; 3=4) ; (2; 3=4)g.

Zad. V.07.04. Denisati funkciju:


2 x2 +1
y = x3 x+1 e 4

Za ovu funkciju uraditi sljedece:

naci realne stacionarne tacke funkcije i realne prevojne tacke (dvije transakcije)

naci interval u kojem je funkcija konveksna (dvije transakcije)

nacrtati grak tako da podioci na x-osi idu od 6 do 6 a na y-osi od 5 do 5;


razmjera na osama treba biti jednaka; oznaciti obje ose; grak iscrtati crvenom
linijom; debljina linije treba biti 0:009

u realnim i stacionarnim tackama iscrtati krugove plave boje poluprecnika 0:1 cm,
na jednom grakonu

Praktikum Mathematica 60 A.G. 2016/2017, Radni materijal


8 ANIMACIJE I MANIPULACIJE

8 Animacije i manipulacije
8.1 Uvod
Efekti animacije se mogu napraviti brzo i jednostavno koritenjem komande Animate,
pomocu koje se iscrtava vie razlicitih grakona uzastopno cime se stvara iluzija kretanja.
Forma ove naredbe je:

Animate[<izraz>,{k,m,n,i}]

Na mjestu <izraz> moze stajati bilo kakav izraz odnosno funkcija ili lista koja je predmet
animacije.

Druga komanda je Manipulate koja omogucava veci stepen kontrole od strane korisnika.
Osnovna sintaksa ove naredbe je:

Manipulate[<izraz>,{k,m,n,i}]

U obje naredbe parametar k, po kojem se racuna <izraz>, mijenja se od m do n sa


korakom i. Ako izraz ima vie parametara tada se isto navodi za svaki od njih. Ako k
uzima diskretne vrijednosti tada se navodi njihova lista:

{k,{k1,k2,k3,...}}

Razlika izmeu ovih naredbi je u tome to se u Manipulate direktno utice na vrijednosti


parametara putem klizaca ili odabira vrijednosti. Grakon se iscrtava samo za jednu,
tekucu vrijednost parametara.

Opcije koje su od interesa su:

AnimationRunning : oznacava nacin pokretanja animacije:

AnimationRunning->True : automatski
AnimationRunning->False : nakon klika

ControlType : odreuje na koji nacin upravljamo promjenom

ako se stavi ControlType->Slider dobija se klizac; koristi se ako je parametar


neprekidnog tipa
ako se stavi ControlType->RadioButton dobija se spisak vrijednosti koje se
odabiru klikom. Uslov je denisana lista vrijednosti
ako se stavi ControlType->Manipulator vrijednosti se mijenjaju pomocu
strelica na klizacu za svaki pojedini parametar

Ako se za naredbu Animate ne navedu druge opcije, na klizacu su cetiri simbola, kao na
slici:

Kontrola izmjene parametra

Praktikum Mathematica 61 A.G. 2016/2017, Radni materijal


8.2 Rijeeni zadaci 8 ANIMACIJE I MANIPULACIJE

Klik na prvu strelicu pokrece animaciju a strelica se mijenja u simbol ; klik na


ovaj simbol zaustavlja animaciju. Klik na drugu strelicu ubrzava a na trecu usporava
animaciju. Klik na cetvrtu strelicu mijenja smjerpromjene parametra. Ova objanjenja
vrijede za sve parametre koji su denisani.

Ako se nabroji skup vrijednosti pojedinog parametra i ne navede nijedna opcija tada se
izbor vrijednosti svakog parametra vri iz padajuceg menija.

8.2 Rijeeni zadaci


Zad. 08.01. Napraviti animaciju grakona sljedecih funkcija, za zadate raspone para-
metara.

y = a sin (bx) ; x 2 [0; 2 ] ; a; b 2 (0; 10)

x (t) = sin (at) ; y (t) = cos (bt) ; t 2 [0; 2 ] ; a; b 2 [1; 10]

= 1 + sin (a ) sin (b ) ; 2 [0; 2 ] ; 2 [0; ] ; a; b 2 [1; 10]

Torus, defnisan sa:

x (t) = (c + sin (as)) cos (bt) ; y (t) = (c + sin (as)) sin (bt) ; z (t) = cos (as) ;
s; t 2 [0; 2 ] ; ; (a; b; c) 2 f(1; 1; 4) ; (20; 1; 4) ; (3; 7; 0) ; :::g

limacon : = a+b cos ; 2 [0; 2 ] ; (a; b) = f(a; b) : a 2 ( 2; 2) ; b 2 ( 3; 3)g

Zad. 08.02. Napraviti animaciju koja simulira kretanje tangente po datoj krivoj.
Funkciju obojiti plavo a tangentu crveno.

y= sin x + cos x + ; x 2 ( 5 ;5 ); y 2 ( 4; 4)
4
y= x3 + x2 + 12x 3; x 2 ( 5; 5)

Zad. 08.03. Napraviti animaciju koja simulira sekantu po datoj krivoj za razne velicine
koraka. Funkciju obojiti plavo a sekantu crveno.

y = x + sin (2x) ; x 2 (0; )

Praktikum Mathematica 62 A.G. 2016/2017, Radni materijal


9 OSNOVE PROGRAMIRANJA

9 Osnove programiranja
9.1 Uvod

Cesto postoji potreba da se ponavlja odreena operacija ili niz operacija vie puta. Mada
Mathematica nudi mogucnosti racunanja suma i proizvoda koritenjem naredbi Sum i
Product, postoje slucajevi kada nam trebaju tehnike rada sa petljama. Mathematica
nudi tri osnovne naredbe za rad sa petljama : Do, While, For.

9.2 Osnovne naredbe kontrole toka


Varijante Do naredbe su u sljedecoj tabeli.

Funkcija Opis
Do[<izraz>,{k}] Objanjenje (1)
Do[<izraz>,{i,imax }] Objanjenje (2)
Do[<izraz>,{i,imin ,imax ,inc}] Objanjenje (3)
Do[<izraz>,{i,imin ,imax ,inc i },{j,jmin ,jmax ,inc j }] Objanjenje (4)
Do[<izraz>,{i,{i1 ,i2 ,...}}] Objanjenje (5)

(1) : Evaluacija <izraza> tacno k puta

(2) : Evaluacija <izraza> tako da se i mijenja od 1 do imax

(3) : Evaluacija <izraza> tako da se i mijenja od imin do imax sa korakom inc; ako se
izostavi podrazumijeva se da je inc = 1

(4) : Evaluacija <izraza>; i se mijenja od imin do imax sa korakom inci , j se mijenja od


jmin do jmax sa korakom incj . Moguce je koritenje vie od dva indeksa i tada govorimo
o ugnjezednoj Do petlji

(5) : Evaluacija <izraza> tako da i uzima vrijednosti iz date liste

Sintaksa For naredbe je:

For[<poc>,<uslov>,<inc>,<izraz>]

gdje su:

<poc> : inicijalna vrijednost parametra koji kontrolie tok petlje

<uslov> : uslov zaustavljanja For petlje

<inc> : inkrement parametra koji kontrolie tok petlje

<izraz> : izraz koji je predmet izvrenja For petlje

Sintaksa While naredbe je:

While[<uslov>,<izraz>]

gdje su:

Praktikum Mathematica 63 A.G. 2016/2017, Radni materijal


9.3 Moduli 9 OSNOVE PROGRAMIRANJA

<uslov> : uslov zaustavljanja While petlje

<izraz> : izraz koji je predmet izvrenja While petlje. Ako <izraz> ima vie dijelova
odvajamo ih sa ";" (tacka-zarez)

Na mjestu za <uslov> u sva tri slucaja moguce je koritenje naredbe If.

Posebno je pitanje kada koristiti koju od ovih naredbi:

Do naredbu koristimo kada znamo tacan broj koraka i pritom nema nikakvih ogranicenja
niti uslovljavanja u evaluaciji vrijednosti <izraza>

For naredbu koristimo ako znamo da nema ogranicenja u racunanju izraza u bilo
kom smislu i ako nam je poznata vrijednost parametra na kojoj treba zaustaviti
rad

While ako uslov zaustavljanja ne moze biti odreen brojem koraka vec nekim
logickim uslovom (npr. postignuta tacnost racunanja)

9.3 Moduli
Mathematica po deniciji (default) podrazumijeva da su svi objekti globalnog tipa. To
znaci da se npr. vrijednost x = 3 zadrzava dok se ne promijeni.

Moduli omogucavaju da deniemo lokalne promjenljive koje imaju vrijednosti samo un-
utar njih. Van njih su ili nedenisani ili imaju potpuno drugacije vrijednosti. Rezul-
tat modula, kao posebnog vida funkcije, mogu biti vrijednosti koje se koriste u drugim
operacijama kao operandi, u skladu sa njihovom prirodom. Ako je denisan modul
mFakt[x], koji kao rezultat daje faktor broja x tada je moguce pisati npr. 2*mFakt[45].
Slicno vrijedi za logicke, tekstualne i druge vrijednosti.

Sintakse po kojoj se prave moduli su:

Module[{var1,var2,...},<procedura>] : Koriste se promjenljive var1, var2,...


koje se inicijaliziraju i dobijaju vrijednosti unutar <procedure>

Module[{var1=v1,var2=v2,...},<procedura>] : Koriste se promjenljive var1,


var2,... koje se inicijaliziraju prije <procedure>

Naredbe unutar <procedure> se odvajaju simbolom ";" (tacka-zarez).

Modulu se treba dodijeliti naziv kao da se denie funkcija, sa parametrima.

9.4 Rijeeni zadaci


Zad. 09.01. Koritenjem Do naredbe ispisati kvadrate prvih 10 prirodnih brojeva.

Zad. 09.02. Koritenjem Do naredbe ispisati kubove prvih 10 neparnih brojeva na


sljedeci nacin:

"Kub broja x je x3 "

Praktikum Mathematica 64 A.G. 2016/2017, Radni materijal


9.4 Rijeeni zadaci 9 OSNOVE PROGRAMIRANJA

Zad. 09.03. Izracunati sumu svih kolicnika cijelih brojeva od 1 do 5.

Zad. 09.04. Prirodne brojeve od 1 do 20 ispisati u dvije kolone; u lijevoj koloni trebaju
biti prosti brojevi a u drugoj oni koji nisu prosti.

Zad. 09.05. Izracunati 10! koritenjem : a) Do petlje; b) While petlje c) For pelje

Zad. 09.06. Prikazati brojeve od 1 do 30 koji nisu mnozioci brojeva 2, 3 i 5.

Zad. 09.07. Za proizvoljno zadatu listu ispitati koliko ima negativnih clanova. Ovo
uraditi koritenjem : a) For petlje; b) putem modula.

Zad. 09.08. Napisati modul koji za proizvoljno datu listu daje : a) daje aritmeticku
sredinu svih clanova; b) aritmeticku sredinu samo pozitivnih clanova.

Zad. 09.09. Napisati modul koji ispisuje sve faktore datog cijelog broja.

Zad. 09.10. Napraviti modul za simulaciju Colatz-ove konjukture : Neka je dat prirodni
broj n > 1; ako je paran dijelimo ga sa 2; ako je neparan mnozimo ga sa 3 i dodamo
1. Postupak se zavrava ako je dobijen broj 1. Prema toj konjukturi, ovaj postupak se
uvijek zavrava brojem 1. Broj koraka se moze ograniciti.

Zad. 09.11. Dato je n parova tacaka koji odreuju n intervala. Utvrditi da li postoji
interval koji je zajednicki za sve date intervale.

Zad. 09.12. Dati su prirodan broj n i realni brojevi a; b; c; d; q, c < d. Neka je:

x0 = a; xk = q xk 1 +b

Dati odgovor na pitanje da li je xn 2 [c; d].

Zad. 09.13. Dato je n parova brojeva (lk ; k ), k = 1; :::; n, koji predstavljaju duzine
i uglove, pri cemu je kraj linije lk ujedno pocetak linije lk+1 . Naci koordinate kraja
izlomljene linije. Nacrtati liniju koja je rezultat kalkulacija.

Zad. 09.14. Dat je niz fqk g, k = 1; :::; n. Naci one clanove tog niza za koje vrijedi da
su:

dvostruki neparni brojevi

pri dijeljenu sa 7 daju ostatke 1, 2 ili 5

korijeni jednacine x2 + 3qi 5 = 0 realni i razliciti. Zadatak generalizirati na


jednacinu x2 + a qi + b = 0

Zad. 09.15. Dat je prirodni broj n. Naci sve brojeve manje od n koji su uzajamno
prosti sa njim.

Zad.09.16. Simulirati Euklidov algoritam za nalazenje najveceg zajednickog djelioca


dva cijela broja.

Praktikum Mathematica 65 A.G. 2016/2017, Radni materijal


9.5 Rjeenja 9 OSNOVE PROGRAMIRANJA

9.5 Rjeenja
Zad. 09.13. Ako je data duzina i ugao tada se vrijednosti na osama dobijaju na sljedeci
nacin:
xk
= cos k ) xk = lk cos k
lk
yk
= sin k ) xk = lk sin k
lk

9.6 Zadaci za vjezbu


Zad. V.09.01. Napraviti modul koji daje rjeenja kvadratne jednacine:

ax2 + bx + c = 0

Pritom uzeti u obzir sve moguce slucajeve parametara i oblika rjeenja.

Zad. V.09.02. Napraviti modul za simulaciju Colatz-ove konjukture. Rezultate usm-


jeriti u listu a zatim prikazati proste brojeve u toj listi. Konjuktura glasi: Neka je dat
prirodni broj n > 1; ako je paran dijelimo ga sa 2; ako je neparan mnozimo ga sa 3
i dodamo 1. Postupak se zavrava ako je dobijen broj 1. Prema toj konjukturi, ovaj
postupak se uvijek zavrava brojem 1. Broj koraka se moze ograniciti.

Praktikum Mathematica 66 A.G. 2016/2017, Radni materijal


10 DATOTEKE I ZVUK

10 Datoteke i zvuk
10.1 Rad sa datotekama
Datoteke na racunaru se mogu koristiti za pohranu denicija i rezultata rada, kao i izvor
za podatke, posebno ako se radi sa vecom kolicinom podataka. Najceci pristup je da se
sve cuva u tekst formatu (engl. plain text). Na taj nacin, verzija paketa Mathematica
koja radi na jednom racunaru producira datoteke koje se mogu citati u verziji koja je
na drugom racunaru. Dodatno, sa takvim datotekama se moze raditi u raznim tekst
editorima.

Komande za rad sa datotekama su u narednoj tabeli.

Funkcija Opis
OpenRead[<le>] Otvaranje <le> datoteke za citanje
ReadList[<le>, tip,m] Ucitavanje elemenata listi
Read[<le>, tip,m]
Citanje sadrzaja datoteke
OpenWrite[<le>] Kreiranje datoteke za upis
OpenAppend[<le>,izraz ] Dodavanje u vec otvorenu datoteku
Write[<le>,tip] Upisivanje u datoteku, prethodni sadrzaj se brie
Close[<le>] Zatvaranje datoteke

Naziv datoteke <le> se navodi pod navodnicima, s tim da se znak "n" (backslash) navodi
dva puta. Tako, naziv datoteke "c:nMathnPrimjer.txt" se navodi kao "c:nnMathnnPrimjer.txt",
ukljucujuci i navodnike.

Parametar tip ima vie formi:

tip : svaki podatak se ucitava pojedinacno

{tip1,tip2,...} : podaci se ucitavaju u blokovima koji sadrze naznacene tipove

Za parametar tip se moze navesti jedna od vrijednosti iz sljedece tabele:

Tip Opis
Byte Bajt u obliku cijelog broja
Character Jedan znak iz skupa znakova
Real Priblizan broj u eksponencijalnom obliku
Word Niz znakova odvojen separatorom za rijeci
Record Niz znakova odvojen separatorom za slogove
String Niiz znakova odvojen znakom za novi red
Expression Kompletan izraz iz paketa Mathematica
Hold[Expression] Kompletan izraz iz paketa Mathematica, unutar Hold naredbe

Parametar m u naredbama Read i ReadList oznacava najveci broj podataka za ucita-


vanje.

Naredba ReadList ima dodatnu opciju:

ReadList[ulaz ,Table[tip,{n}],m]

Praktikum Mathematica 67 A.G. 2016/2017, Radni materijal


10.2 Rijeeni zadaci 10 DATOTEKE I ZVUK

Na ovaj nacin se popunjava tabela blokovima od po n ucitanih podataka. Da bi se dobio


oblik matrice odnosno tabele navodi se opcija:

RecordLists->False

Ako se ucitava jedan po jedan znak ili grupa znakova (a ne tabela kao u navedenoj
sintaksi) i ako se zeli da svaki od tih blokova bude zaseban red tabele, koristi se opcija:

RecordLists->True

Logicki uslov za kraj datoteke koja se cita je EndOfFile[<le>].

10.2 Rijeeni zadaci


Zad. 11.01. Uraditi sljedece operacije:

Kreirati datoteku c:nMathnSlucBr.txt u koju ce biti pohranjeno 300 slucajnih bro-


jeva od 1 do 1000

Ucitati datoteku c:nMathnSlucBr.txt; proste brojeve odvojiti u datoteku c:nMathnProstBr.txt


a ostale u datoteku c:nMathnOstaliBr.txt

Zad. 11.02. U datoteku Broj upisati 100 cijelih slucajnih brojeva iz opsega 20 do 200.
Ucitati datoteku u listu i obaviti sljedece operacije:

U datoteku g1 upisati elemente datoteke Broj obratnim redoslijedom

U datoteku Br_par upisati parne a u datoteku Br_nep neparne brojeve

Zad. 11.03. Iz datoteke "c:nMathnOstaliBr.txt" ucitati 50 brojeva i formirati matricu


formata 10 5

Zad. 11.04. Ucitati tekst datoteke c:nMathnRoman.txt; Prebrojati koliko ima slova,
rijeci i recenica u datom tekstu.

Praktikum Mathematica 68 A.G. 2016/2017, Radni materijal


REFERENCES

11 Literatura
References

[1] Zeljko Juric, Interaktivna racunanja u programskom paketu Mathematica, Triangle 9
(2005/06) Posebno izdanje, 9-73

[2] Esmir Pilav, Osnove programiranja u programskom paketu Mathematica, Triangle 9


(2005/06) Posebno izdanje, 75-110

[3] Anonimni, Praktican uvod u programski paket Mathematica

[4] Stephen Wolfram, The Mathematica Book, 5th ed. (Wolfram Media, 2003)

[5] Eugene Don, Mathematica, Second edition, Schaums Outline Series

Praktikum Mathematica 69 A.G. 2016/2017, Radni materijal

Das könnte Ihnen auch gefallen