Beruflich Dokumente
Kultur Dokumente
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
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
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
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].
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).
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.
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.
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.
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.
Operacija Opis
Ctrl+/ Razlomak
Ctrl+6 Stepenovanje
Ctrl+- Indeks
p
Ctrl+2 Korijen ( )
Ctrl+l Ponavljanje posljednjeg unosa (malo slovo L)
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.
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.
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 je denisan izraz i vrijednost neke konstante tada se vrijednost racuna prostim
navoenjem funkcije i argumenta.
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
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
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.
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
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
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
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
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, ...
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.
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.
Ako broj x lezi tacno izmeu dva cijela broja funkcija Round vraca parni cijeli broj.
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
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
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+%]
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
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
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
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
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.
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.
kreiranje liste
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.
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
U ovoj tabeli termin lista oznacava imenovanu ili neimenovanu listu sa kojom se radi.
Primjeri su u nastavku.
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
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
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.
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].
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!Right
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}.
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
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.
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.
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 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
Dvije posebne komande za generisanje matrica su vazne zbog njihove ceste primjene.
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
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
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.
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.
Zad. 02.02. Napraviti listu kojoj su elementi suma kvadrata i kubova prvih 5 prirodnih
brojeva.
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.
Array[f, {3, 4}], Array[f, {4, 3}], Array[f, {4, 3},{0,0}], ako je:
f (x; y) = x2 + 3y
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.11. Kreirati matricu reda 10 kojoj su dijagonalni elementi prosti brojevi.
Zad. 02.13. Euklidska norma vektora je kvadratni korijen sume kvadrata njegovih
komponenti. Izracunati normu vektora
2.5 Rjeenja
Zad. 02.06. Rjeenja su u nastavku.
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
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
!1=2
X
m X
n
Frobeniusova norma : kAkF = a2ij
i=1 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.
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.
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.
ax + b = cx + d
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
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 :
2x + 3y = 7; 3x + 4y = 10
A x=b
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.
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.
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.
x2 + 4x + 3 = 0, suma kubova
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 )
x + ay = 1; bxy = 1
a b
x + ay = b; + =1
x y
2 sin2 x + 1 = 3 sin x
x + y = 5; xy = 6
x + 2y z = 1; 2x y + 3z = 2; x+y+z =5
x 4y = a; 5x y + bz = 3; x z=4
3x + 5y = 42
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}]
x + ay = b; 3x + y = 2
tan2 x + 5 tan x + 6 = 0
1 + sin 2x = cos x
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
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; imin ; imax ; incg] a (i) Proizvod i = imin do i = imax korak inc
i=imin
Osim ovoga, denicija funkcije moze biti bezuslovna, uslovna, kompozicijom, rekurzivna,
nabrajanjem, parametarska ili pure funkcija.
f[x_]:=<opis>/; <uslov>
U ovom slucaju je koritenje znaka := obavezno. Denicija ima onoliko redova koliko je
uslova.
Composition[f,g]
Komanda moze imati vie argumenata odvojenih zarezom. Ovo odgovara matematickoj
notaciji f g (x) = f (g (x)).
Composition[f,f], Composition[f,f,f]
Nova dodjela vrijednosti nekoj funkciji ne brie prethodne denicije. Ako se zeli nova
denicija tada prethodna mora biti obrisana naredbom Clear.
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
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 :
1 1 1
P = 1+ 1+ ::: 1 +
12 22 n2
(x 2) (x 4) ::: (x 64)
R=
(x 1) (x 3) ::: (x 63)
1 n=0_n=1
n!! = ; 5!!; 6!!
n (n 2)!! n > 1 ^ n 2 N
a1 = 2; a2 = 4; an = ( 1)n an 1 + an 2 ; n>2
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.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.
1 1 1 1
S= + + + ::: +
sin 1 sin 1 + sin 2 sin 1 + sin 2 + sin 3 sin 1 + sin 2 + ::: + sin n
!
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!
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
X
100 X
100
j i+1 X
n
kk
i=1 j=1
i+j
k=1
1 1 1
1+ + + ::: +
3 5 9999
Yn
(1 x)k+1 + 1
P =
k=1
((k 1)! + 1)2
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
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
5a 6
jxn+1 xn j < 10
4
Za tu vrijednost xn izracunati razliku a x5n .
5 Diferencijalni racun
5.1 Uvod
U okviru ovog poglavlja ce biti obraene komande i funkcije za :
Granicne vrijednosti
Izvod
Ekstremne vrijednosti
Limit[f[x],x!a]
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 }]
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-><izraz >
Ovdje <izraz > stoji za neki uslov koji zelimo staviti za parametar, npr. a 0, a < 0 i
slicno.
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.
(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, ...
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, ...).
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}]
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.
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
f (x) = 2x2 + x4 + 3y y3
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
Zad. 05.03.
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 ?
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.
6 Integralni racun
U ovom poglavlju ce biti predstavljene funkcije i metode racunanja neodeenih i odreenih
integala.
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]
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], ....
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
3x2 6x x 0
f (x) = ; g (x) = sin x+
3x2 6x x > 0 2
Z1
I= sin (sin (x)) dx
0
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.
Ako postoji potreba da se istovremeno prikazu krive denisane razlicitim metodama tada
se koristi naredba
Show[f1,f2,...,<opcije>]
Graphics3D[primitive]
7.4.2 Stubovi
Naredba za ove namjene je BarChart, sa svojim varijantama :
ChartLabels : navodi se naziv liste ili spisak oznaka za svaku vrijednost koja se
iscrtava
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 ]
x (t) = cos (t) cos (100t) sin (t) ; y (t) = 2 sin (t) sin (100t) ; 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
Zad. 07.04. Nacrtati sljedece funkcije za date uslove. Ako je dato vie funkcija crtati
ih zajedno na istom graku.
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".
f (x; y) = sin (ax)+sin (by) ; x2( ; ); y2( ; ); (a; b) 2 f(5; 3) ; (2; 7) ; :::g
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
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
= 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
Nacrtati hipocikloidu za 2 (0; 2b ) i razne kombinacije vrijednosti (a; b) 2 f(4; 1) ; (8; 5) ; (2; 1)g.
naci realne stacionarne tacke funkcije i realne prevojne tacke (dvije transakcije)
u realnim i stacionarnim tackama iscrtati krugove plave boje poluprecnika 0:1 cm,
na jednom grakonu
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}]
{k,{k1,k2,k3,...}}
AnimationRunning->True : automatski
AnimationRunning->False : nakon klika
Ako se za naredbu Animate ne navedu druge opcije, na klizacu su cetiri simbola, kao na
slici:
Ako se nabroji skup vrijednosti pojedinog parametra i ne navede nijedna opcija tada se
izbor vrijednosti svakog parametra vri iz padajuceg menija.
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
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.
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.
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)
(3) : Evaluacija <izraza> tako da se i mijenja od imin do imax sa korakom inc; ako se
izostavi podrazumijeva se da je inc = 1
For[<poc>,<uslov>,<inc>,<izraz>]
gdje su:
While[<uslov>,<izraz>]
gdje su:
<izraz> : izraz koji je predmet izvrenja While petlje. Ako <izraz> ima vie dijelova
odvajamo ih sa ";" (tacka-zarez)
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.
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.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
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:
Zad. 09.15. Dat je prirodni broj n. Naci sve brojeve manje od n koji su uzajamno
prosti sa njim.
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
ax2 + bx + c = 0
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.
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.
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
ReadList[ulaz ,Table[tip,{n}],m]
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
Zad. 11.02. U datoteku Broj upisati 100 cijelih slucajnih brojeva iz opsega 20 do 200.
Ucitati datoteku u listu i obaviti sljedece operacije:
Zad. 11.04. Ucitati tekst datoteke c:nMathnRoman.txt; Prebrojati koliko ima slova,
rijeci i recenica u datom tekstu.
11 Literatura
References
[1] Zeljko Juric, Interaktivna racunanja u programskom paketu Mathematica, Triangle 9
(2005/06) Posebno izdanje, 9-73
[4] Stephen Wolfram, The Mathematica Book, 5th ed. (Wolfram Media, 2003)