Professional Documents
Culture Documents
Numericka I Programiranje 2015-2016
Numericka I Programiranje 2015-2016
Numericka I Programiranje 2015-2016
Aritmetike operacije
Simboli (Symbols)
Dozvoljeni set simbola koji mogu da se koriste u Mathematica-i ine:
- velika i mala slova engleskog alfabeta:
A, a, B, b, ..., Z, z;
- cifre decimalnog brojnog sistema: 0,1,2,3,4,5,6,7,8,9;
- specijalni znaci: ( ) . , ; : + - = / ^ * $ \
Matematike konstante
I - imaginarna jedinica
E - broj
Pi - broj p
Infinity - beskonano
Osnovne aritmetike operacije
- sabiranje: x+y
- oduzimanje: x-y
- mnoenje: x*y ili x y
- deljenje: x/y
- stepenovanje: x^y
Sabiranje :
23.85 + 8.97
2 Numericka i programiranje 2015-16.nb
32.82
32
3. 2
1.5
Napomena 1: Pri izraunavanju aritmetikog izraza ishod zavisi od argumenata izraza. Ukoliko su svi
argumenti tipa Integer, tada je i rezultat tipa Integer. Ako su argumenti realni ili meoviti, tada je
rezultat tipa Real.
23
6
2*3
6
2 + 3 H4 - 5L
-1
2.3 10^- 7
2.3 10-7
4. ^H1 3L
1.5874
x=2+3I
2+3
Numericka i programiranje 2015-16.nb 3
y=2-3I
2-3
xy
13
xy
Conjugate@x yD
5 12
- +
13 13
5 12
- -
13 13
I H*imaginarna jedinica*L
N@%D
2.71828
Pi
p
N@PiD
3.14159
Sin@PiD
0
Sqrt@2.D
1.41421
a = Exp@Pi Sqrt@163DD
163 p
139
SetAccuracy@a, 40D
2.62537412640768743999999999999250072597 1017
a = 1486.2497;
b = 878.366987;
a*b
SetAccuracy@a * b, 25D
a+b
SetAccuracy@a + b, 12D
1.30547 106
1.305472670918653951957821846008 106
2364.62
2364.61668700000
Naredba dodeljivanja :
x=5 trajna dodela
x . x 5 trenutna dodela
x = 0.123456;
y = 0.123467;
z = y-x
0.000011
N@z, 20D
0.000011
z Pi
0.0000345575
2+z
2.00001
20 + z
20.
Numericka i programiranje 2015-16.nb 5
w = Pi 10 ^-5
p
100 000
z+w
0.0000424159
Algebarski izrazi
a = Hx - 1.5L^4 Hx^3 + x + 1L
H- 1.5 + xL4 I1 + x + x3 M
a . x 5
19 658.2
b = Hx ^2 + Sqrt@xD + 2L H2 x^2 + 5 xL
2+ x + x2
5 x + 2 x2
b . x 1.
0.571429
b . x 100.
0.48839
b . x 10 000.
0.499876
Expand@aD
2 3x x2
H- 4 + xL2 H3 + xL H-4 + xL2 H3 + xL H-4 + xL2 H3 + xL
- +
b = ExpandAll@aD
2 3x x2
- +
48 - 8 x - 5 x2 + x3 48 - 8 x - 5 x2 + x3 48 - 8 x - 5 x2 + x3
Simplify@aD
H- 2 + xL H-1 + xL
H-4 + xL2 H3 + xL
TraditionalForm@bD
x2 3x 2
- +
x3 -5 x2 - 8 x + 48 x3 -5 x2 - 8 x + 48 x3 -5 x2 - 8 x + 48
Numericka i programiranje 2015-16.nb 7
2. Matematike funkcije
Ugraene elementarne matematike funkcije imaju rezervisana imena, koja poinju obavezno
velikim slovom, dok se argumenti navode u uglastim zagradama:
Log@6D N
1.79176
Log@6.D
1.79176
Log@3, 27D
3
Sin@45 DegreeD
1
ArcTan@InfinityD
p
2
Sqrt@- 1D
y = Cos@xD;
Plot@y, 8x, -Pi, Pi<D
z = Exp@xD;
Plot@8y, z<, 8x, -Pi, Pi<D
f = Exp@xD H1 - x^2L;
Plot@f, 8x, -10, 10<D
20
10
- 10 -5 5 10
- 10
- 20
- 30
- 40
0.5
-3 -2 -1 1 2 3
- 0.5
Numericka i programiranje 2015-16.nb 9
0.5
5 10 15 20 25
- 0.5
Naredbom Plot crtaju se krive koje su zadate eksplicitnim formulama. Parametarski zadate krive
kod kojih su koordinate x i y zadate kao funkcije zajednikog parametra, crtaju se naredbom
2 4 6 8 10 12
0.5
- 0.5
- 1.0
10 Numericka i programiranje 2015-16.nb
-2 -1 1 2
-1
-2
0.5
- 0.5
- 1.0
Numericka i programiranje 2015-16.nb 11
Clear@x, yD;
a = 2.;
x = ro Cos@fiD;
y = ro * Sin@fiD;
ro = a * H1 + Cos@fiDL;
ParametricPlot@8x, y<, 8fi, 0, 2 Pi<, PlotLabel KardioidaD
Kardioida
1 2 3 4
-1
-2
1 2 3 4
-1
-2
f Hx, yL = sinIx2 + y 2 M.
funkcije
Primer: Nacrtati pomou Mathematica-e povri zadate funkcijama dve promenljive: f1 =x3 -3xy 2 -1,
f2 =3x2 y-y 3 +1.
f1 = x ^3 - 3. * x * y^2 - 1.;
f2 = 3. * x^ 2 * y - y^3 + 1.;
gr1 = Plot3D@f1, 8x, - 1, 1<, 8y, -1, 1<D
Numericka i programiranje 2015-16.nb 13
Show@gr1, gr2D
x=7
7
x > 10
False
Logike operacije i relacije koriste se najvie u naredbama odluke kada u zavisnosti od ispunjenja
nekog uslova treba da se donese odluka o daljem izvrenju programa. Takva je, na primer, naredba
IF:
b
0
x=4
4
x6
False
16 Numericka i programiranje 2015-16.nb
x4
True
Programi
Clear@xD;
y = 5 * Pi + Sin@xD;
z = 10 * ArcTan@xD;
a = Plot@y, 8x, -1, 150<D;
b = Plot@z, 8x, -1, 150<D;
Show@a, b, PlotRange 88- 1, 150<, 810, 18<<D
18
16
14
12
10
2 3 4 5 6 7 8 9
2 3 3 2 7
b) n + n - n, za n=0,1,2,...,10.
3 2 6
3 3
c) x +y -6y+3, za x,y=-3,-2,..., 3.
H* Resenje aL *L
s = 12+13+14+15+16+17+18+19
N@sD
4609
2520
1.82897
H* Resenje bL *L
2 3 3 2 7
a= n + n - n;
3 2 6
TraditionalForm@aD
a . n 0
a . n 1
a . n 2
a . n 3
a . n 4
a . n 5
a . n 6
a . n 7
a . n 8
a . n 9
a . n 10
2 n3 3 n2 7n
+ -
3 2 6
0
28
62
115
191
294
428
597
805
Numericka i programiranje 2015-16.nb 19
H* Resenje cL *L
z = x ^3 + y^3 - 6 y + 3;
TraditionalForm@zD
z . 8x - 3, y -3<
z . 8x - 2, y -2<
z . 8x - 1, y -1<
z . 8x 0, y 0<
z . 8x 1, y 1<
z . 8x 2, y 2<
z . 8x 3, y 3<
x3 + y3 - 6 y + 3
- 33
-1
-1
39
Kontrolna naredba
For[kmin , kmax , kkorak , naredbe]
izvrava niz naredaba definisanih u naredbe poev od vrednosti indeksa kmin do kmax sa uvean-
jem u svakom prolasku za kkorak .
H* Resenje aL *L
s = 0;
For@i = 2, i 9, i ++, s = s + 1 iD
Print@"Suma je: ", N@sDD
Suma je: 1.82897
H* Resenje bL *L
2 3 3 2 7
a= n + n - n;
3 2 6
For@i = 0, i 10, i ++,
Print@"Vrednost izraza za n=", i, " je:", a . n iDD
Vrednost izraza za n=0 je:0
H* Resenje cL *L
z = x ^3 + y^3 - 6 y + 3;
For@i = -3, i 3, i++,
Print@"Rezultat za x i y jednako ", i, " je: ", z . 8x i, y i<DD
Rezultat za x i y jednako - 3 je: - 33
Primer 1.
Uz pomo For naredbe, napisati program za izraunavanje
a) zbira Z=ni= 1 ai , uzimajui za ai =i 2 .
c) zbira S = k= 0 q .
b) proizvoda P=xn za dato x.
n k
H* Resenje aL *L
Clear@n, sD
s = 0;
n = 20;
For@i = 1, i n, i ++,
s = s + i^ 2;D
Print@"Za n= ", n, " suma je : s= ", sD;
Za n= 20 suma je : s= 2870
H* Resenje bL *L
Clear@n, p, xD
p = 1;
n = 20;
x = 2;
For@i = 1, i n, i ++,
p = p * x;D
Print@"Za n= ", n, " i x= ", x, " proizvod je p= ", pD;
Za n= 20 i x= 2 proizvod je p= 1 048 576
H* Resenje cL *L
Clear@n, p, s, qD
s = 1;
p = 1.;
n = 20;
q = 1 4.;
For@k = 1, k n, k ++,
p = p * q;
s = s + pD;
Print@"Za n= ", n, " i q= ", q, " zbir je p= ", sD;
Za n= 20 i q= 0.25 zbir je p= 1.33333
Primer 2.
Napisati program za izraunavanje izraza
1
f(x)= +1 - 1
x
ex
gHxL =
1
xe
+1
Clear@xD;
x = 0.1;
For@k = 1, k 7, k++,
f = Sqrt@1 x + 1D - 1;
g = E^x HSqrt@1 x^ E + 1DL;
Print@"x=", x, " f=", f, " g=", gD;
x = x 10D
22 Numericka i programiranje 2015-16.nb
Primer 3
Napisati program za izraunavanje faktorijela nekog prirodnog broja n.
Clear@n, factD;
fact = 1;
n = 8;
For@i = 1, i <= n, i++,
fact = fact * iD;
Print@"Faktorijel broja ", n, " je ", factD
Faktorijel broja 8 je 40 320
Primer 4
Prva dva lana Fibonaijevog niza su 0 i 1. Svaki naredni lan se dobija kao zbir prethodna dva
lana niza. Napisati program za izraunavanje vrednosti n-tog lana Fibonaijevog niza. Testirati
program uzimajui za n = 12.
Primer 5
Napisati program za izraunavanje vrednosti izraza nk= 0
1 1
n k2+ 1
uzimajui za n = 15.
Numericka i programiranje 2015-16.nb 23
Clear@s, n, kD;
s = 0;
n = 15;
For@k = 0, k <= n, k ++,
s = s + 1 Hk^2 + 1.LD;
s = s n;
Print@"Vrednost sume je : ", sD
Vrednost sume je : 0.134151
Primer 6
+n
n
4 4p
Napisati program za izraunavanje vrednosti izraza
p
k= 0 3 k+ 2
uzimajui za n = 15.
Clear@n, p, kD
n = 15;
p = 1.;
For@k = 0, k n, k ++,
p = p * H4 * PiL H3 * Sqrt@k + 2DLD
p = 4 Pi + n * p;
Print@"vrednost izraza je: ", pD
vrednost izraza je: 7145.82
24 Numericka i programiranje 2015-16.nb
4. Vektori i matrice
Indeksirane promenljive vektori i matrice tretiraju se u Mathematica-i kao liste i tabele.
Vektor se zadaje kao niz brojeva (koordinata) u vitiastim zagradama:
v = 81, 2, 3, 4, 2<
81, 2, 3, 4, 2<
Min@vD
Max@vD
Length@vD
1
Reverse@vD
82, 4, 3, 2, 1<
Sqrt@vD
:1, 2 , 3 , 2, 2 >
2*v
82, 4, 6, 8, 4<
TableForm@tD
1 2 3
4 5 6
MatrixForm@tD
K O
1 2 3
4 5 6
t1 = Transpose@tD
881, 4<, 82, 5<, 83, 6<<
Numericka i programiranje 2015-16.nb 25
MatrixForm@t1D
1 4
2 5
3 6
MatrixForm@t + gD
K O
2 6 6
7 6 8
A = g.t1;
MatrixForm@AD
K O
18 42
11 29
MatrixRank@AD
Dimensions@t1D
Dimensions@AD
2
83, 2<
82, 2<
:: >, :- >>
d b c a
,- ,
-b c + a d -b c + a d -b c + a d -b c + a d
Det@bD
- 0.065
K O
1. 0.
0. 1.
26 Numericka i programiranje 2015-16.nb
Dot@a, cD
83., 1., 1.5<
Matrice i vektori zadaju se kao liste i tabele. Liste se mogu koristiti i kao tabele vrednosti. Tabele
se mogu generisati:
1) eksplicitnim navoenjem elemenata liste, ili
2) korienjem iteratora pomou koga se tabela generie izraunavanjem nekog izraza za
razliite vrednosti parametra (iterativne promenljive).
Ukoliko se radi o vektoru, imamo jednu iterativnu promenljivu dok su za matricu potrebne dve
promenljive.
f = x ^2 H1 + x^ 3L;
u = Table@f, 8x, 5<D
: , , >
1 4 9 16 25
, ,
2 9 28 65 126
::1, >, :2, >, :3, >, :4, >, :5, >>
1 4 9 16 25
2 9 28 65 126
MatrixForm@N@%DD
1. 0.5
2. 0.444444
3. 0.321429
4. 0.246154
5. 0.198413
TableForm@aD
1 2 3 4
2 4 6 8
3 6 9 12
MatrixForm@aD
1 2 3 4
2 4 6 8
3 6 9 12
TableForm@bD
6 8 10
9 12 15
12 16 20
IdentityMatrix@3D
881, 0, 0<, 80, 1, 0<, 80, 0, 1<<
q = 81, 2, 3, 4<;
c = DiagonalMatrix@qD TableForm
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
Pojedinani element liste (koordinata vektora ili element matrice) pozivaju se navoenjem opteg
imena liste i indeksa koji je u dvostrukoj uglastoj zagradi. Na primer, za prvu koordinatu vektora
b, piemo b[[1]], za element u prvoj vrsti i drugoj koloni matrice A piemo A[[1,2]]
Zadatak 1. Neka je data funkcija f HxL = Log10 (3x+2). Napisati program kojim se izraunava suma
d1 + d1 d2 + d1 d2 d3 + ... ... + d1 d2 ....dn . Vektor d = 8d1 , d2 , ..., dn < formirati tako da proizvoljan
lan vektora di bude definisan kao di = f(i), i=1,2...,n.
n = 10;
d = Table@Log@10, 3 x + 2.D, 8x, 1, n<D;
s = 0;
p = 1;
For@i = 1, i n, i ++,
p = p * d@@iDD;
s = s + p;D
Print@"Vrednost sume je : ", sD
Zadatak 2. Dati su vektori x i y duzine n<=10. Nai ugao izmeu ovih vektora pomou for-
Hx,yL
mule-
cosHx, yL =
Hx,xL Hy,yL
.
n = 3;
x = 81, 0, 0<;
y = 81, 0, 1<;
sxy = 0.;
sx = 0.;
sy = 0.;
For@i = 1, i n, i ++,
sxy = sxy + x@@iDD * y@@iDD;
sx = sx + x@@iDD^ 2;
sy = sy + y@@iDD^ 2D;
sx = Sqrt@sxD;
sy = Sqrt@syD;
ugao = sxy Hsx * syL;
Print@ugaoD;
Print@"Vrednost ugla u radijanima je :", Rationalize@ArcCos@ugaoD PiD, "p"D
ugao = ArcCos@ugaoD * 360 H2 PiL;
Print@"Vrednost ugla u stepenima je :", Rationalize@ugaoD, ""D
0.707107
1
Vrednost ugla u radijanima je : p
4
Vrednost ugla u stepenima je :45
n = 6;
p=
822 7, 333 106, 355 113, 104 348 33 215, 1 148 183 365 478, 1 252 531 398 693<;
For@k = 1, k 6, k ++,
gr = Abs@N@Pi - p@@kDDDD;
rgr = gr Pi;
Print@" apsolutna greska za ",
p@@kDD, " je : ", gr, ". Relativna greska je: ", rgrD
D
Numericka i programiranje 2015-16.nb 29
22
apsolutna greska za je : 0.00126449. Relativna greska je: 0.000402499
7
333
apsolutna greska za je : 0.0000832196. Relativna greska je: 0.0000264896
106
355
apsolutna greska za je : 2.66764 10-7 . Relativna greska je: 8.49137 10-8
113
104 348
apsolutna greska za je : 3.31628 10-10 . Relativna greska je: 1.0556 10-10
33 215
1 148 183
apsolutna greska za je : 4.14005 10-10 . Relativna greska je: 1.31782 10-10
365 478
1 252 531
apsolutna greska za je : 4.07142 10-10 . Relativna greska je: 1.29597 10-10
398 693
: , >
6 17 59
,
5 90 90
Primer 1
Reiti sistem linearnih jednaina:
x - y +3z = 0
x +2z = p
-2x+y +pz = -5
Kada je p 5 sistem ima jedinstveno reenje. Kada je p= 5 sistem ima beskonano reenja.
30 Numericka i programiranje 2015-16.nb
Clear@A, b, pD
A = 881, -1, 3<, 81, 0, 2<, 8-2, 1, p<<;
MatrixForm@AD
b = 80, p, -5<;
p = 0;
x = LinearSolve@A, bD;H* sistem ima jedinstveno resenje*L
MatrixForm@xD
A.x b H*provera resenja*L
p = 5;
H* i ako sistem ima beskonacno resenja kada je p=5,
naredba pronalazi samo jedno resenje sistema*L
x = LinearSolve@A, bD;
MatrixForm@xD
A.x b
1 -1 3
1 0 2
-2 1 p
2
-1
-1
True
5
5
0
True
n = 10;
A = Table@0, 8i, 1, n<, 8j, 1, n<D;
For@i = 1, i n, i ++,
A@@i, iDD = 5.D;
For@i = 1, i n - 1, i++,
A@@i, i + 1DD = 3.;
A@@i + 1, iDD = 2.D;
b = Table@i, 8i, 1, n<D;
Print@TableForm@ADD;
x = LinearSolve@A, bD;
MatrixForm@xD
5. 3. 0 0 0 0 0 0 0 0
2. 5. 3. 0 0 0 0 0 0 0
0 2. 5. 3. 0 0 0 0 0 0
0 0 2. 5. 3. 0 0 0 0 0
0 0 0 2. 5. 3. 0 0 0 0
0 0 0 0 2. 5. 3. 0 0 0
0 0 0 0 0 2. 5. 3. 0 0
0 0 0 0 0 0 2. 5. 3. 0
0 0 0 0 0 0 0 2. 5. 3.
0 0 0 0 0 0 0 0 2. 5.
-0.284211
0.807018
-0.488889
1.2768
-0.468746
1.59671
-0.348683
1.85
-0.18421
2.07368
n = 10;
D1 = 5;
D2 = 19.;
For@k = 3, k n, k++,
D3 = 5 D2 - 6 D1;
Print@"DH", k, "L=", D3D;
D1 = D2;
D2 = D3D
32 Numericka i programiranje 2015-16.nb
DH3L=65.
DH4L=211.
DH5L=665.
DH6L=2059.
DH7L=6305.
DH8L=19 171.
DH9L=58 025.
DH10L=175 099.
Koreni nealgebarskih jednaina odreuju se naredbom FindRoot[jedn, {x, x0 }], gde je x0 poetna
aproksimacija, koja mora biti dovoljno bliska traenom korenu.
Zadatak: Grafiki lokalizovati nulu funkcije f (x)=x2 - ex , a zatim nai njenu priblinu vrednost
koristei programski paket Mathematica.
y = x ^2;
z = E ^x;
Plot@8y, z<, 8x, -3, 3<D
20
15
10
-3 -2 -1 1 2 3
f = Log@x + 3.D;
g = Sin@xD;
Plot@8f, g<, 8x, -5, 5<D
2
-4 -2 2 4
-1
-2
-3
-4
36 Numericka i programiranje 2015-16.nb
- 0.5
- 1.0
- 1.5
- 2.0
- 0.55
- 0.60
0.5
- 15 - 10 -5 5 10 15
- 0.5
- 1.0
Solve@1 - x^ 2 0, xD
88x - 1<, 8x 1<<
NSolve@x ^5 + x^2 - 1 0, xD
88x - 0.869278 - 0.388269 <, 8x -0.869278 + 0.388269 <,
8x 0.464912 - 1.07147 <, 8x 0.464912 + 1.07147 <, 8x 0.808731<<
Clear@a, b, cD;
Solve@a x ^2 + b x + c 0, xD
Solve@x ^6 - 64 0, xD
98x - 2<, 8x 2<, 9x -2 H-1L13 =, 9x 2 H-1L13 =, 9x -2 H-1L23 =, 9x 2 H- 1L23 ==
Solve@x ^2 + y ^2 5, yD
-2 -1 1 2
- 0.5
- 1.0
- 1.5
- 2.0
Show@g2, g3D
2.0
1.5
1.0
0.5
-2 -1 1 2
n = 1;
While@n < 4, Print@nD; n ++D
Metod bisekcije
Primeniti metod bisekcije za nalaenje pribline vrednosti 2 koja se nalazi u intervalu [1,2].
Numericka i programiranje 2015-16.nb 39
M = 2;
a = 1.;
b = 2.;
k = 0;
eps = 10 ^-4;
While@b - a > eps,
x = Ha + bL 2.;
If@x^2 > M, b = x, a = xD;
k = k + 1D;
Print@k, " koren iz ", M , " je: ", xD
x0 = 4.;
For@k = 1, k < 10, k ++,
x1 = Sqrt@2 * x0 + 3.D;
x0 = x1;
Print@"xH", k, "L=", x1D
D
xH1L=3.31662
xH2L=3.10375
xH3L=3.03439
xH4L=3.01144
xH5L=3.00381
xH6L=3.00127
xH7L=3.00042
xH8L=3.00014
xH9L=3.00005
H* II nacin *L
x0 = 4.;
x1 = Sqrt@2. x0 + 3.D;
k = 0;
eps = 10 ^-4;
While@Abs@x1 - x0D > eps,
Print@k, " x=", x1D;
x0 = x1;
x1 = Sqrt@2. x0 + 3D;
k++;
D
40 Numericka i programiranje 2015-16.nb
0 x=3.31662
1 x=3.10375
2 x=3.03439
3 x=3.01144
4 x=3.00381
5 x=3.00127
6 x=3.00042
7 x=3.00014
Definisanje funkcije:
f@x_D := x ^2 - Log@xD;
Table@f@xD, 8x, 1, 2, 0.2<D
1
- +2x
x
1 x=3.65909
2 x=3.19601
3 x=3.16246
4 x=3.16228
5 x=3.16228
8x 3.16228<
Primer 2
Njutnovim metodom nai pozitivan koren jednaine lnI3 x2 M + 5 x = 0 sa tanou 10- 5 . Uzeti
poetnu aproksimaciju x0 =0.5. Primeniti maksimalno n=10 iterativnih koraka.
-4 -2 2 4
-2
-4
1 x=0.268245
2 x=0.307247
3 x=0.309844
8x 0.309854<
42 Numericka i programiranje 2015-16.nb
Primer 3
Napisati program za izraunavanje reciprone vrednosti broja a pomou Njutnovog metoda. Nai
apsolutnu i relativnu gresku dobijene aproksimacije x6 . Neka poetna aproksimacija bude
x0 = a- 2 .
a = 12;
x0 = 1 a^2;
For@k = 1, k 6, k ++,
x1 = x0 + x0 H1. - a * x0L;
Print@"k=", k, " x=", x1D;
x0 = x1D
tacna = 1 a;
agr = Abs@x1 - tacnaD;
Print@"Apsolutna greska je : ", agrD
rgr = agr tacna;
Print@"Relativna greska je : ", rgrD
1. a H*provera resenja*L
k=1 x=0.0133102
k=2 x=0.0244944
k=3 x=0.0417891
k=4 x=0.0626223
k=5 x=0.078186
k=6 x=0.0830154
0.0833333
Numericka i programiranje 2015-16.nb 43
H* II nacin *L
Clear@x0, x, f, f1D
a = 12.;
x0 = 1 a^2;
f@x_D = a - 1 x;
f1@x_D = D@f@xD, xD;
For@k = 1, k 6, k ++,
x1 = x0 - f@x0D f1@x0D;
Print@"k=", k, " x=", x1D;
x0 = x1D
tacna = 1 a;
agr = Abs@x1 - tacnaD;
Print@"Apsolutna greska je : ", agrD
rgr = agr tacna;
Print@"Relativna greska je : ", rgrD
1. a
H*provera resenja*L
k=1 x=0.0133102
k=2 x=0.0244944
k=3 x=0.0417891
k=4 x=0.0626223
k=5 x=0.078186
k=6 x=0.0830154
0.0833333
Clear@x0, x1D;
n = 20;
tac = 10 ^H-6L;
f@x_D = x ^3 + 2 * x^2 + 10 * x - 20.;
x0 = 2.;
x1 = 1.;
f0 = f@x0D;
For@k = 1, k n, k ++,
f1 = f@x1D;
raz = f1 - f0;
If@Abs@x1 - x0D < tac, Break@DD;
x2 = x1 - Hx1 - x0L f1 raz;
Print@k, " x=", x2D;
x0 = x1;
x1 = x2;
f0 = f1D
1 x=1.30435
2 x=1.37605
3 x=1.36867
4 x=1.36881
5 x=1.36881
2 x=1.37605
3 x=1.36867
4 x=1.36881
5 x=1.36881
Numericka i programiranje 2015-16.nb 45
Data je funkcija
f(x) = x3 + 2 x - Ln Hx + 4L.
Primeniti metod seice za nalaenje pribline vrednosti korena jednaine
f(x) = 0, koji se nalazi u intervalu (0, 4). Primeniti pet iterativnih koraka. Uporediti dobijeni rezultat
sa rezultatom koji se dobija korienjem naredbe FindRoot.
1 x=0.711638
2 x=0.818179
3 x=0.902146
4 x=0.899066
5 x=0.899118
8x 0.899118<
JHr - 1L xk + N,
lom
1 a
xk+ 1 = k=0,1,2,....
r xk r- 1
a+ r - 1
sa poetnom aproksimacijom x0 = . Napisati program kojim se pomou ovog metoda nalazi
r
priblino reenje jednaine x5 - 19 = 0. Predvideti najvie M = 10 iterativnih koraka. Proveriti
dobijeni rezultat naredbom FindRoot.
46 Numericka i programiranje 2015-16.nb
xH1L= 3.68849
xH2L= 2.97132
xH3L= 2.42581
xH4L= 2.05038
xH5L= 1.85531
xH6L= 1.80496
xH7L= 1.80199
xH8L= 1.80198
8x 1.80198<
7. Polinomske jednaine
Neka je dat polinom PHzL = a0 zn +a1 zn- 1 + ... + an . Tada se sve nule polinoma nalaze u krunom
prstenu (u kompleksnoj ravni) s poluprenicima
a
r = n , R= 1+ A ,
Zadatak 1. Pomou programskog paketa Mathematica, izvriti lokalizaciju svih nula datog
polinoma P = z4 + 2z3 + 3z2 + 4 z + 5.
n = 5;
p = 81., 2., 3., 4., 5.<;
bn = Delete@p, nD;H*brisanje n-tog clana*L
b0 = Delete@p, 1D;H*brisanje prvog clana*L
A = Max@b0D;
a = Max@bnD;
R = 1. + A Abs@p@@1DDD;
r = Abs@p@@nDDD Ha + Abs@p@@nDDDL;
Print@"r=", r, " R=", RD
r=0.555556 R=6.
Zadatak 2. Pomou programskog paketa Mathematica nacrtati grafik funkcije f(x)=x5 -3.5
x4 -2.5x3 +3x3 +1.5x-5. Izvriti lokalizaciju svih nula datog polinoma izraunavanjem poluprenika
Numericka i programiranje 2015-16.nb 47
-2.5 +3 +1.5x-5
kruga koji sadri sve nule, prema formuli
R = max1 i n |ai 1i ,
gde su ai koeficijenti polinoma P(z)=zn +a1 zn- 1 +...+an- 1 z+an . Za izraunavanje izraza xy (x,y R)
koristiti ekvivalenciju:
xy =eyLog@xD .
30
20
10
R=3.5
Hornerova ema
Izraunavanje vrednosti polinoma pomou Hornerove eme.
Ciklusi omoguavaju ponavljanje neke procedure odredjeni broj puta ili dok se ne ispuni izlazni
kriterijum.
x=- 1. P=0.
x=0. P=12.
x=1. P=12.
x=2. P=0.
Clear@"Global`"D;
a = 81., -2., -7., 8., 12.<;
x = - 2.;
Do@p = a@@1DD;
For@k = 2, k 5, k++,
p = p * x + a@@kDD
D;
Print@"x=", x, " P=", pD;
x = x + 1., 85<D
x=- 2. P=0.
x=- 1. P=0.
x=0. P=12.
x=1. P=12.
x=2. P=0.
8. Simboliko izraunavanje
Definisanje funkcije: IME [ARGUMENT_ ]:=IZRAZ. Ovako definisana funkcija poziva se
Numericka i programiranje 2015-16.nb 49
5 - H3 + xL2 + 2 Log@3 + xD
a = Hf@5D + f@3DL 2
N@aD
- 9.29195
Primer 3
Tabelirati funkciju h(x)=1+|x| na intervalu [-1,1] s korakom h=0.5 i nacrtati je.
1.8
1.6
1.4
1.2
Diferenciranje
Simboliko diferenciranje je jedna od osnovnih simbolikih operacija u Mathematica-i. Mogue je
odrediti izvode prvog i vieg reda elementarnih funkcija jedne promenljive, izvode sloenih
funkcija,
parcijalne izvode i totalne diferencijale.
D[f,x] - nalaenje prvog izvoda ili prvog parcijalnog izvoda funkcije f po promenljivoj x
D[f,{x,k}] - nalaenje (parcijalnog) izvoda reda k po promenljivoj x
D@ArcCos@xD, xD
1
-
1 - x2
50 Numericka i programiranje 2015-16.nb
D@Exp@x ^2 * Sin@xDD, xD
I- 3 + x2 M I-3 + x2 M
-
52 32
9. Interpolacija
Interpolacija podataka pomou polinoma u Mathematici se vri konstrukcijom Njutnovog intepola-
cionog polinoma sa podeljenim razlikama. Podaci se navode u parovima, gde je prva kompo-
nenta nezaisno promenljiva a druga komponenta vrednost funkcije: InterpolatingPolynomi-
al[lista, x].
pol = InterpolatingPolynomial@a, xD
2 + H-200. - 1500. H-0.2 + xLL H-0.4 + xL H-0.1 + xL
Expand@polD
TraditionalForm@Expand@polDD
6. - 110. x + 850. x2 - 1500. x3
8
7
4
3
-5
- 10
-5
- 10
runge = 1. H1 + x^2L
1.
1 + x2
polr = InterpolatingPolynomial@tab, xD
0.0384615 + H5 + xL H0. + H-5 + xL
H-0.0384615 + x H-0.0115385 + H3 + xL H0.00384615 + H-3 + xL H0.000904977 + H4 + xL
H-0.000226244 + H-4 + xL H-0.000113122 + H1 + xL H0.0000678733 +
H-2 + xL H0.0000226244 - 0.0000226244 H2 + xLLLLLLLLLL
TraditionalForm@Expand@polrDD
1.5
1.0
0.5
-4 -2 2 4
-5
- 10
Primer. Funkciju f HxL = ex tabelirati za vrednosti x = 0, 0.1, ..., 1 a zatim je aproksimirati pogod-
2
nim polinomom.
fe = Exp@x ^2D
2
x
2.5
2.0
1.5
2.5
2.0
1.5
2.5
2.0
1.5
a = 880.24, 0.23<, 80.65, -0.26<, 80.95, -1.10<, 81.24, -0.45<, 81.73, 0.27<,
82.01, 0.10<, 82.23, -0.29<, 82.52, 0.24<, 82.77, 0.56<, 82.99, 1.00<<;
gr1 = ListPlot@aD
1.0
0.5
- 0.5
- 1.0
0.6
0.4
0.2
- 0.4
Show@gr1, gr2D
1.0
0.5
- 0.5
- 1.0
11. Integracija
Nalaenje neodreenog integrala mogue je samo za neke klase podintegralnih funkcija
(racionalne i neke trigonometrijske, eksponencijalne i logaritamske). Primenom direktive
Integrate[ f, x]
dobija se izraz iji je izvod po x jednak f.
Integrate@Sin@2 xD, xD
1
- Cos@2 xD
2
J- ArcTanB1 -
1
2 xF + ArcTanB1 + 2 xFN
2
Integrate@x ^n, xD
x1+n
1+n
Integrate@x ^H-1L, xD
Log@xD
- a5 ArcTanB F
a2 x3 x5 x
a4 x - +
3 5 a
D@%, xD
a4
a4 - a2 x2 + x4 -
x2
1+
a2
Simplify@%D
x6
a2 + x2
0.8
0.6
0.4
0.2
100
50
-4 -2 2 4
- 50
- 100
LogB F
1 5
4 2
Ukoliko reenje integrala ne moe da se nae u zatvorenoj formi, koriste se numeriki postupci
za odreivanje pribline vrednosti odreenog integrala.
Numericka i programiranje 2015-16.nb 57
Tan@Cos@xDD x
1
N@%D
1.16499
f Hx, yL = e- x cosIx2 + y 2 M
Primer. Nai zapreminu oblasti ograniene graficima krivih
gHx, yL = 3 - x2 + y 2
nad oblau [-1,1][-1,1].
Show@grafikf, grafikgD
zapremina = NIntegrate@g@x, yD - f@x, yD, 8x, -1, 1<, 8y, -1, 1<D
8.72898
Zadatak. Nacrtati grafik funkcije y=sin 3x/(1+cos2 x) na intervalu [0,p/2]. Zatim nai nulu funkcije
y, odnosno taku gde grafik see x-osu. Imajui na umu znak funkcije, izraunati povrinu
ogranienu ovom krivom i pravama y=0 i x=p/2.
y = Sin@3 xD H1 + Cos@xD^2L
Sin@3 xD
1 + Cos@xD2
Numericka i programiranje 2015-16.nb 59
0.5
- 0.5
- 1.0
0.05
- 0.05
- 0.10
a = 1.047;
P = Integrate@y, 8x, 0, a<D - Integrate@y, 8x, a, Pi 2<D
0.709485
Clear@Int, n, f, LD;
L = Integrate@x^3 * Sqrt@x ^2 + 9D, 8x, 0., 4<D
Print@"Tacna vrednost integrala je: ", LD
f@x_D := x^3 * Sqrt@x^2 + 9D;
h = 0.8;
a = 0.;
b = 4;
n = Hb - aL h;
xk = a;
Int = f@aD + f@bD;
For@k = 1, k n - 1, k++,
xk = xk + h;
Int = Int + 2 * f@xkDD;
Int = h * Int 2.;
Print@"Priblizna vrednost je ", IntD;
apsgreska = Abs@N@LD - IntD;
Print@"Apsolutna greska je ", apsgreskaD
Print@"Relativna greska je ", apsgreska LD
282.4
300
250
200
150
100
50
300
250
200
150
100
50
1 2 3 4
300
250
200
150
100
50
1 2 3 4
N@%D
1.9101
Clear@IntD;
f@x_D := Sqrt@1. + g@xD^ 2D;
n = 6;
a = 0.;
b = Pi 2;
h = Hb - aL n;
xk = a;
Int = f@aD + f@bD;
For@k = 1, k n - 1, k++,
xk = xk + h;
Int = Int + 2 * f@xkDD;
Int = h * Int 2.;
Print@"Priblizna vrednost luka krive je ", IntD;
greska = N@LD - Int;
Print@"greska je ", greskaD
Priblizna vrednost luka krive je 1.9101
0.8
0.6
0.4
0.2
0.8
0.6
0.4
0.2
Show@gr, gr2D
1.0
0.8
0.6
0.4
0.2
H* 50 cvorova*L
n = 49;
a = 0.;
b = Pi 2;
h = Hb - aL n;
xk = 0;
Int = f@aD + f@bD;
For@k = 1, k n - 1, k++,
xk = xk + h;
Int = Int + 2 * f@xkDD;
Int = h * Int 2;
Print@"Priblizna vrednost luka krive je ", IntD;
greska = N@LD - Int;
Print@"greska je ", greskaD
Priblizna vrednost luka krive je 1.9101
ClearAll@"Global`*"D;
f@x_D = x H1 + Exp@2 * xDL;
L = Integrate@f@xD, 8x, 0., 2.<D
a = 0;
b = 2.;
n = 5;
h = Hb - aL H2 * nL;
int = f@aD + f@bD;
x1 = a + h;
x2 = a + 2 * h;
Do@int = int + 4 * f@x1D; x1 = x1 + 2 * h, 8i, 1, 2 n - 1, 2<D;
Do@int = int + 2 * f@x2D; x2 = x2 + 2 * h, 8i, 2, 2 n - 2, 2<D;
int = int * h 3;
Print@"Vrednost integrala po Simsonovoj formuli je ", intD
greska = N@LD - int;
Print@"greska je ", Abs@greskaDD
0.182909
n = 5;
f@x_D = x H1 + Exp@2 * xDL;
t = Table@8x, f@xD<, 8x, 0., 2., 2 H2 * nL<D
gr = Plot@f@xD, 8x, 0, 2<D
gr2 = ListPlot@t, PlotStyle AbsolutePointSize@5DD
Show@gr, gr2D
880., 0.<, 80.2, 0.0802625<, 80.4, 0.12401<, 80.6, 0.138885<,
80.8, 0.134385<, 81., 0.119203<, 81.2, 0.0998072<, 81.4, 0.0802538<,
81.6, 0.0626652<, 81.8, 0.0478746<, 82., 0.0359724<<
0.14
0.12
0.10
0.08
0.06
0.04
0.02
0.14
0.12
0.10
0.08
0.06
0.04
0.02
0.14
0.12
0.10
0.08
0.06
0.04
0.02
5 H1 + A xL
::y@xD - + A x C@1D>>
A2
::x@tD
t2 t3
+ C@1D, y@tD + C@2D>>
2 3
PRIMER: Reiti diferencijalnu jednainu prvog reda y'=y cos(x+y) s datim poetnim uslovom
y(0)=1.
1.0
0.8
0.6
0.4
0.2
5 10 15 20 25 30
Primer. Reiti datu diferencijalnu jednainu s poetnim uslovom i predstaviti grafiki dobijeno
aproksimativno reenje.
a) y'(x)=(x+sin(x)) 2 , y(0)=3.
35
30
25
20
15
10
1 2 3 4 5
Primer (Kosijev problem drugog reda): Reiti diferencijalnu jednainu drugog reda y''+y sin
y=0, sa poetnim uslovom y(0)=1, y'(0)=0.
5 10 15 20 25 30
-2
-4
Primer (konturni problem). Nai reenje diferencijalne jednaine y+y=0, koja zadovoljava
konturne uslove y(0)=1 i y(/2)=2.
2.0
1.8
1.6
1.4
1.2
Primer: Reiti parcijalnu diferencijalnu jednainu provoenja toplote sa datim poetnim i kon-
turnim uslovima:
t u = xx u, uH0, xL = 0, uHt, 0L = sin t, uHt, 5L = 0, teH0, 10L.
Ojlerov metod
Zadatak. Napisati program za primenu Ojlerovog metoda za reavanje datog Koijevog prob-
lema. Primeniti program za reavanje jednaine y'=x+y na intervalu [0,1] sa y(0)=1. Nai prib-
linu vrednost y(1) uzimajui za korak h= 0.1, 0.001. Reiti isti problem pomou naredbe DSolve
i uporediti rezultate.
Clear@x, y, hD;
f@x_, y_D = x + y;
n = 10;
x = 0.;
y = 1.;
h = 0.1;
For@k = 1, k n, k ++,
y1 = y + h * f@x, yD;
Print@k, " yH", x + h, "L=", y1D;
x = x + h;
y = y1D
1 yH0.1L=1.1
2 yH0.2L=1.22
3 yH0.3L=1.362
4 yH0.4L=1.5282
5 yH0.5L=1.72102
6 yH0.6L=1.94312
7 yH0.7L=2.19743
8 yH0.8L=2.48718
9 yH0.9L=2.8159
10 yH1.L=3.18748
70 Numericka i programiranje 2015-16.nb
g@1D . resf
83.43656<
y=HxyL3 -Hy xL3 , y(1)=1. Nai priblino y(1.2) uzimajui za korak h=0.1, 0.01.
Testirati na primeru diferencijalne jednacine
20.yH1.1L=1.1405
y@1.2D . %
81.14053<
RAZNI ZADACI
f HaL =
Primer. Funkcija
0 e
1 a 0.5 t 2
t,
2
zavisi od gornje granice integrala a. Nainiti tablicu vrednosti funkcije f kada se a menja od 0 do
2 sa korakom h=0.2. Za izraunavanje integrala primeniti numeriku integraciju u Mathematica .
Predstaviti grafiki dobijenu listu.
Numericka i programiranje 2015-16.nb 71
ClearAll;
fun@x_D = Exp@x ^2 2.D;
h = 0.1;
a = 0.;
n = 2 h;
erf = Table@0, 8i, n<D;
arg = Table@0, 8i, n<D;
Do@a = a + h;
erf@@iDD = NIntegrate@fun@xD, 8x, 0, a<D;
arg@@iDD = a, 8i, 1, n<D;
erf = erf Sqrt@2. PiD;
tabela = Transpose@8arg, erf<D;
ListPlot@tabelaD
1.5
1.0
0.5
0.015
0.010
0.005
2 3 4 5
72 Numericka i programiranje 2015-16.nb
2 3 4 5
- 0.02
- 0.04
- 0.06
40
30
20
10