Post on 07-Sep-2019
NELINEARNE JEDNAČINE,
OPTIMIZACIJA,
NEURONSKE MREŽE I NJIHOVA PRIMENA
1
SADRŽAJ
1 NELINEARNE JEDNAČINE ....................................................................................................... 4
1.1 NUMERIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA JEDNOM PROMENLJIVOM ..................... 4
1.1.1 KRITERIJUMI ZA ZAVRŠETAK ITERACIONOG PROCESA .................................................................................................. 9
1.2 METODE ZA REŠAVANJE NELINEARNE JEDNAČINE SA JEDNOM PROMENLJIVOM ...................... 12
1.2.1 METODA POLOVLJENJA INTERVALA (BISEKCIONA METODA) ...................................................................................... 13
1.2.2 METODA LAŽNOG POLOŽAJA (METODA REGULA FALSI) ............................................................................................. 14
1.2.3 NJUTNOVA METODA ................................................................................................................................................... 15
1.2.4 METODA SEČICE .......................................................................................................................................................... 16
1.3 GRAFIČKE METODE ZA REŠAVANJE NELINEARNIH JEDNAČINA ................................................... 17
1.3.1 GRAFIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA JEDNOM PROMENLJIVOM....................................................... 17
1.3.2 GRAFIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA DVE PROMENLJIVE .................................................................. 19
1.4 ANALITIČKO REŠAVANJE SISTEMA NELINERANIH JEDNAČINA F(x) = 0 ........................................ 21
1.5 NUMERIČKO REŠAVANJE SISTEMA NELINEARNIH JEDNAČINA F(x) = 0 ....................................... 23
2 OPTIMIZACIONI PROBLEMI BEZ OGRANIČENJA .................................................................. 35
2.1 ANALITIČKA REŠENJA I METODE ZA GRAFIČKO REŠAVANJE MINIMIZACIONOG PROBLEMA ...... 36
2.2 NUMERIŠKO REŠAVANJE OPTIMIZACIONIH PROBLEMA BEZ OGRANIČENJA ............................... 40
2.3 GLOBALNI I LOKALNI MINIMUMI ................................................................................................. 44
2.4 REŠAVANJE OPTIMIZACIONIH PROBLEMA KORIŠĆENJEM GRADIJENATA FUNKCIJE ................... 47
2
3 OPTIMIZACIONI PROBLEMI SA OGRANIČENJIMA ................................................................ 50
3.1 REŠAVANJE PROBLEMA LINEARNOG PROGRAMIRANJA .............................................................. 51
3.2 REŠAVANJE PROBLEMA KVADRATNOG PROGRAMIRANJA .......................................................... 55
3.3 REŠAVANJE OPŠTIH NELINEARNIH OPTIMIZACIONIH PROBLEMA ............................................... 58
3.4 OPTIMIZACIJA UZ POMOĆ GRAFIČKOG INTERFEJSA .................................................................... 63
4 NEURONSKE MREŽE I NJIHOVA PRIMENA ........................................................................... 72
4.1 OSNOVE NEURONSKIH MREŽA .................................................................................................... 72
4.1.1 KONCEPT I STRUKTURA NEURONSKIH MREŽA ............................................................................................................ 72
4.1.2 KREIRANJE NEURONSKE MREŽE .................................................................................................................................. 78
4.1.3 OBUČAVANJE NEURANSKE MREŽE .............................................................................................................................. 81
4.2 FITIVANJE PODATAKA POMOĆU NEURONSKIH MREŽA ............................................................... 88
4.2.1 GRAFIČKI INTERFEJS ZA FITOVANJE PODATAKA KORIŠĆENJEM NEURONSKIH MREŽA ............................................... 90
4.2.2 FITOVANJE PODATAKA KORIŠĆENJEM PROGRAMSKOG KODA ................................................................................. 107
4.2.3 ODREĐIVANJE PARAMETARA NEURONSKE MREŽE ................................................................................................... 110
4.3 MODELOVANJE SISTEMA POMOĆU NEURONSKIH MREŽA ........................................................ 112
4.3.1 GRAFIČKI INTERFEJS ZA MODELOVANJE SISTEMA POMOĆU NEURONSKIH MREŽA ................................................. 115
4.3.2 MODELOVANJE SISTEMA KORIŠĆENJEM PROGRAMSKOG KODA.............................................................................. 139
4.3.3 ODREĐIVANJE PARAMETARA NEURONSKE MREŽE ................................................................................................... 143
4.4 SKUPOVI PODATAKA KOJI DOLAZE SA NEURAL NETWORK TOOLBOX ....................................... 145
3
1 NELINEARNE JEDNAČINE
1.1 NUMERIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA JEDNOM
PROMENLJIVOM
U inženjerskim proračunima čest problem je nalaženje rešenja opšte
nelinearne jednačine
( ) 0f x (1)
TEOREMA 1. Ako je funkcija ( )f x neprekidna u zatvorenom intervalu [ , ]a b i
ako je ( ) ( ) 0f a f b , tada u intervalu ( , )a b postoji bar jedno realno rešenje
(koren) jednačine (1).
4
TEOREMA 2. Ako je pored uslova u Teoremi 1, zadovoljen i uslov da je funkcija
( )f x monotona u posmatranom intervalu, onda na ovom intervalu postoji
jedinstveno realno rešenje (koren) jednačine (1).
5
Približno rešenje jednačine (1) može se dobiti primenom iterativnog procesa
kojim se u tekućem 1k koraku iteracije procenjuje nova 1k
x
vrednost
rešenja u funkciji:
jedne ( )k
x ili više 1
( , ,...)k k
x x
procenjenih vrednosti iz prethodnog
(prethodnih) koraka iteracije i
vrednosti funkcije ( )f za te prethodne procene.
Primenom iterativnog procesa dobija se niz uzastopnih procena realnih
korena jednačine (1)
0 1 2 1, , , , , ,
k kx x x x x
(2)
tj. niz vrednosti , 0,1,2,k
x k koje nazivamo iteracioni niz.
Nulta procena 0
x je polazna procena traženog rešenja koja je neophodna.
6
Formula kojom se iz jedne ili više prethodnih procena dobija nova procena
naziva se iteraciona formula.
Specijalno, ako se nova procena (aproksimacija) dobija samo na bazi
prethodne procene, iteraciona formula ima oblik:
1
( ), 0,1,2,...k k
x F x k (3)
Funkcija ( )F x se naziva iteraciona funkcija.
Ako iteracioni niz konvergira željenom rešenju :
limk
kx
(4)
kaže se da iteracioni proces konvergira ka traženom rešenju jednačine ( ) 0.f x
Tada, za konvergentni proces važi:
( )F (5)
7
Razlikujemo dva slučaja konvergentnog procesa:
monotona konvergencija (iteracioni niz je monoton i aproksimacije k
x ,
0,1,2,...k se približavaju tački na brojnoj pravoj sa jedne strane te
tačke.
oscilatorna konvergencija (dve uzastopne aproksimacije korena k
x i 1k
x
,
0,1,2,...k su sa dve različite strane korena
8
1.1.1 KRITERIJUMI ZA ZAVRŠETAK ITERACIONOG PROCESA
Za završetak iteracionog procesa koriste se različiti kriterijumi:
1k k
x x (6)
1
1
k k
k
x x
x
(7)
1
( )k f
f x
(8)
gde su:
i f
zadate granice apsolutnih odstupanja po proceni rešenja ili vrednosti
funkcije u procenjenom korenu
zadate granice relativnog odstupanja po proceni rešenja (tolerancija)
- mali broj kojim se sprečava deljenje nulom u slučaju kada se za procenu
1kx
dobije nula.
Kada je odabrani kriterijum konvergencije zadovoljen, kao (približno) rešenje
jednačine ( ) 0f x usvaja se poslednja procena, 1k
x
.
9
U slučaju monotone konvergencije uslov 1k k
x x ne garantuje da će
se usvojena procena 1k
x
razlikovati od tačnog rešenja za zadato , tj.
ne važi implikacija:
1 1k k k
x x x (9)
Drugim rečima, uslov 1k k
x x je potreban uslov, a ne i dovoljan uslov
za 1k
x (slika a: ( )f x ima veliki nagib u okolini nule
1kx
).
Slično tvrđenje važi i na kriterijum 1
( )k f
f x
(slika b: ( )f x ima mali
nagib u okolini nule 1k
x ).
10
Željenu tačnost rešenja, u slučaju monotone konvergrencije, može da
garantuje konjukcija uslova (6) i (8):
1 1
( )k k k f
x x f x (10)
odnosno konjukcija uslova (7) i (8).
U slučaju oscilatorne konvergencije iskaz (9) tačan, pa uslov 1k k
x x
predstavlja dovoljan uslov da se usvojeno rešenje 1k
x
razlikuje od tačnog
rešenja manje od zadate tolerancije .
11
1.2 METODE ZA REŠAVANJE NELINEARNE JEDNAČINE SA JEDNOM
PROMENLJIVOM
1. Metoda polovljenja intervala (bisekciona metoda)
2. Metoda lažnog položaja (metoda regula falsi)
3. Njutnova metoda
4. Metoda sečice
12
1.2.1 METODA POLOVLJENJA INTERVALA (BISEKCIONA METODA)
To je najjednostavnija metoda nalaženja korena nelinearne funkcije.
Ona funkcioniše za sve neprekidne funkcije, ali zato daje najlošiju procenu
korena.
1. Početni interval [ , ]a b se selektuje tako da je zadovoljen uslov
( ) ( ) 0f a f b .
2. Izračuna se srednja tačka intervala ( ) / 2m a b .
3. Ako je ( ) ( ) 0f a f m , koren
jednačine se nalaz u intervalu [ , ]a m i
gornja granica intervala b se setuje
na b m .
4. Ako je ( ) ( ) 0f a f m , koren
jednačine se nalaz u intervalu [ , ]m b i
donja granica intervala a se setuje
na a m .
5. Proces se ponavlja sve dok se ne
ispuni uslov b m , gde je ( ) / 2m a b .
13
1.2.2 METODA LAŽNOG POLOŽAJA (METODA REGULA FALSI)
Nastaje kao prirodna posledica ubrzavanja metode polovljenja. Ova metoda
konvergira ako se barem jedan koren funkcije ( )f nalazi unutar interval [ , ].a b
1. Selektuju se dve tačke 0 0
( , ( ))x f x i 1 1
( , ( ))x f x tako da važi 0 1
( ) ( ) 0f x f x
2. Određuje se međuvrednost između 0
x i 1
x kao
1
1
1
( ) 1,2,...( ) ( )
k k
k k k
k k
x xx x f x k
f x f x
(11)
3. Ako je 1
( ) ( ) 0k k
f x f x
, 1,2,...k ,
setuje se 1k k
x x
.
4. Ako je 1
( ) ( ) 0k k
f x f x
, 1,2,...k ,
setuje 1 1k k
x x .
5. Proces se prekida kada se koren
adekvatno proceni na osnovu
usvojenog kriterijuma.
14
1.2.3 NJUTNOVA METODA
Nutnova metoda se izvodi iz
uslova aproksimacije
funkcije njenom tangentom
u okolini tekuće tačke kx ,
koja predstavlja procene
korena jednačine ( ) 0f x ,
( ) ( )( )k k ky f x f x x x (12)
Rešavanjem (12) po x , uz uslov ( ) 0y f x dobija ( ) / ( )k k kx x f x f x
Ukoliko se stavi 1kx x
, za novu procenu korena funkcije dobija se:
1
( )0,1,2,...
( )
kk k
k
f xx x k
f x
(13)
Proces izračunavanja 1kx se prekida kada se koren adekvatno proceni na
osnovu usvojenog kriterijuma.
15
1.2.4 METODA SEČICE
Ako se u Njutnovoj formuli
(13) izvod ( )kf x aproksimira
sa:
1
1
( ) ( )( ) k k
k
k k
f x f xf x
x x
dobija se iterativni algoritam
metode sečice:
1 1
1
( )( ) 0,1,2,...
( ) ( )
kk k k k
k k
f xx x x x k
f x f x
(14)
16
1.3 GRAFIČKE METODE ZA REŠAVANJE NELINEARNIH JEDNAČINA
1.3.1 GRAFIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA JEDNOM
PROMENLJIVOM
Matlab funkcija za crtanje funkcija: ezplot(), fplot()
17
Primer 1. Rešiti jednačinu
koristeći grafički metod i ispitati tačnost rešenja. Rešenje.
syms t y=exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5; fplot(y,[0 5]) line([0,5],[0,0])
ezplot(’exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5’,[0 5])
line([0,5],[0,0])
18
1.3.2 GRAFIČKO REŠAVANJE NELINEARNIH JEDNAČINA SA DVE PROMENLJIVE
Primer 2. Rešiti grafičkom metodom jednačine
Rešenje.
ezplot(’x^2*exp(-x*y^2/2)+exp(-x/2)*sin(x*y)’)
hold on; ezplot(’y^2 *cos(y+x^2) +x^2*exp(x+y)’)
hold off
19
Primer 3. Rešiti grafičkom metodom jednačine
Rešenje.
ezplot(’x^2+y^2-1’); hold on
ezplot(’0.75*x^3-y+0.9’)
Zamenom y iz druge jednačine u prvu dobija
se jedna jednačina 6-tog reda po x , koja ima 6
korena. Dva realna korena se mogu odrediti sa
grafika, a preostala 4 korena su kompleksna.
Koristeći funkciju solve() možemo odrediti sve
korene prethodnog sistema nelinearnih
jednačina.
20
1.4 ANALITIČKO REŠAVANJE SISTEMA NELINERANIH JEDNAČINA F(x) = 0
syms x y;
solve([x^2+y^2-1==0, 75*x^3/100-y+9/10==0])
y = 0.19042 + 0i 0.93412 + 0i -1.4916 - 0.70588i -1.4916 + 0.70588i 0.92934 - 0.21144i 0.92934 + 0.21144i
x = -0.9817 + 0i 0.35697 + 0i 0.86632 - 1.2154i 0.86632 + 1.2154i -0.55395 - 0.35472i -0.55395 + 0.35472i
21
Primer 4. Rešiti sistem jednačina sa parametrima a i b
syms a b x y;
[x,y]=solve([x^2+a*x^2+6*b+3*y^2==0,y==a+(x+3)],[x,y])
x =
y =
22
1.5 NUMERIČKO REŠAVANJE SISTEMA NELINEARNIH JEDNAČINA F(x) = 0
fun – defineše funkciju koja može biti data u obliku M-funkcije, anonimne
funkcije ili inline funkcije
x0 – početna vrednost rešenja
options – služi za selektovanje metode i kontrolu tačnosti prilikom
pretraživanja rešenja; zadaje se pomoću optimset ili optimoptions
x – jedno rešenje
fval – vrednost funkcije za nađeno rešenje x
exitflag – defineše tip nađenog izlaza
output - sadrži informacije o procesu optimizacije
23
Definisanje funkcije fun:
1. preko m-fajla
x = fsolve(@myfun,x0)
gde myfun je Matlab m-funkcija oblika
function F = myfun(x)
F = ...
2. preko anonimne funkcije
x = fsolve(@(x)sin(x.*x),x0);
ili
f=@(x)sin(x.*x)
x = fsolve(f,x0);
24
optimset
Option Value Description
Display 'off' | 'iter' |
{'final'} | 'notify'
Level of display. 'off' displays no output; 'iter' displays output
at each iteration (not available forlsqnonneg); 'final' displays just
the final output; 'notify' displays output only if the function does
not converge.
FunValCheck {'off'} | 'on' Check whether objective function values are valid. 'on' displays an
error when the objective function returns a value that is complex orNaN. 'off' displays no error.
MaxFunEvals positive integer Maximum number of function evaluations allowed.
MaxIter positive integer Maximum number of iterations allowed.
OutputFcn function | {[]} User-defined function that an optimization function calls at each iteration. See Output Functions.
PlotFcns function | {[]} User-defined or built-in plot function that an optimization function calls at each iteration. Built-in functions:
@optimplotx plots the current point
@optimplotfval plots the function value
@optimplotfunccount plots the function count (not available
forfzero)
See Plot Functions.
TolFun positive scalar Termination tolerance on the function value. See Tolerances and Stopping Criteria.
TolX positive scalar Termination tolerance on x, the current point. See Tolerances and Stopping Criteria.
25
Podrazumevane vrednosti za options
Display: [ off | iter | iter-detailed | notify | notify-detailed | final | final-detailed ] MaxFunEvals: [ positive scalar ] MaxIter: [ positive scalar ] TolFun: [ positive scalar ] TolX: [ positive scalar ] FunValCheck: [ on | {off} ] OutputFcn: [ function | {[]} ] PlotFcns: [ function | {[]} ] Algorithm: [ active-set | interior-point | interior-point-convex | levenberg-marquardt | ... sqp | trust-region-dogleg | trust-region-reflective ] AlwaysHonorConstraints: [ none | {bounds} ] DerivativeCheck: [ on | {off} ] Diagnostics: [ on | {off} ] DiffMaxChange: [ positive scalar | {Inf} ] DiffMinChange: [ positive scalar | {0} ] FinDiffRelStep: [ positive vector | positive scalar | {[]} ] FinDiffType: [ {forward} | central ] GoalsExactAchieve: [ positive scalar | {0} ] GradConstr: [ on | {off} ] GradObj: [ on | {off} ]
26
HessFcn: [ function | {[]} ] Hessian: [ user-supplied | bfgs | lbfgs | fin-diff-grads | on | off ] HessMult: [ function | {[]} ] HessPattern: [ sparse matrix | {sparse(ones(numberOfVariables))} ] HessUpdate: [ dfp | steepdesc | {bfgs} ] InitBarrierParam: [ positive scalar | {0.1} ] InitTrustRegionRadius: [ positive scalar | {sqrt(numberOfVariables)} ] Jacobian: [ on | {off} ] JacobMult: [ function | {[]} ] JacobPattern: [ sparse matrix | {sparse(ones(Jrows,Jcols))} ] LargeScale: [ on | off ] MaxNodes: [ positive scalar | {1000*numberOfVariables} ] MaxPCGIter: [ positive scalar | {max(1,floor(numberOfVariables/2))} ] MaxProjCGIter: [ positive scalar | {2*(numberOfVariables-numberOfEqualities)} ] MaxSQPIter: [ positive scalar | {10*max(numberOfVariables,numberOfInequalities+numberOfBounds)} ] MaxTime: [ positive scalar | {7200} ] MeritFunction: [ singleobj | {multiobj} ] MinAbsMax: [ positive scalar | {0} ] ObjectiveLimit: [ scalar | {-1e20} ] PrecondBandWidth: [ positive scalar | 0 | Inf ] RelLineSrchBnd: [ positive scalar | {[]} ] RelLineSrchBndDuration: [ positive scalar | {1} ]
27
ScaleProblem: [ none | obj-and-constr | jacobian ] SubproblemAlgorithm: [ cg | {ldl-factorization} ] TolCon: [ positive scalar ] TolConSQP: [ positive scalar | {1e-6} ] TolPCG: [ positive scalar | {0.1} ] TolProjCG: [ positive scalar | {1e-2} ] TolProjCGAbs: [ positive scalar | {1e-10} ] TypicalX: [ vector | {ones(numberOfVariables,1)} ] UseParallel: [ logical scalar | true | {false} ]
28
exitflag
1 Equation solved. First-order optimality is small.
2 Equation solved. Change in x smaller than the
specified tolerance.
3 Equation solved. Change in residual smaller than the specified tolerance.
4 Equation solved. Magnitude of search direction smaller than specified tolerance.
0 Number of iterations exceeded options.MaxIterations or number of
function evaluations exceededoptions.MaxFunctionEvaluations.
-1 Output function or plot function stopped the algorithm.
-2 Equation not solved. The exit message can have more information.
-3 Equation not solved. Trust region radius became too small (trust-region-dogleg algorithm).
29
output
iterations Number of iterations taken
funcCount Number of function evaluations
algorithm Optimization algorithm used
cgiterations Total number of PCG iterations ('trust-region' algorithm only)
stepsize Final displacement in x (not
in 'trust-region-dogleg')
firstorderopt Measure of first-order optimality
message Exit message
30
Primer 5. Rešiti sistem jednačina iz Primera 3 koristeći funkciju fsolve
Rešenje.
x p(1)
z p(2)
f=@(p)[p(1)*p(1)+p(2)*p(2)-1; 0.75*p(1)^3-p(2)+0.9];
OPT=optimset; % uzima podrazumevane vrednosti za options
OPT.Display='iter'; % Prikazuje vrednosti tokom iteracija
[x,y,flag,izlaz]=fsolve(f,[1; 2],OPT)
1 2
T
p p p - vektor promenljivih
31
izlaz =
struct with fields:
iterations: 6
funcCount: 21
algorithm: 'trust-region-dogleg'
firstorderopt: 1.3061e-10
message: Equation solved.
x = 0.35697 0.93412 y = 1.2151e-10 9.6407e-11 flag = 1
32
Primer 6. Odredimo rešenje jednačine iz Primera 1 koristeći funkcije solve i
fsolve.
Rešenje.
1. korišćenjem solve
syms t x;
solve(exp(-3*t)*sin(4*t+2)+4*exp(-0.5*t)*cos(2*t)-0.5)
Warning: Unable to solve symbolically. Returning a numeric solution using vpasolve.
ans =
0.67374570500134756702960220427474
Dakle, rešenje nije analitički rešavano, već je dobijeno numerički. Kako odrediti
preostala rešenja?
33
2. korišćenjem fsolve uz grafički prikaz radi postavljanja početnog rešenja
y=@(t)exp(-3*t).*sin(4*t+2)+4*exp(-0.5*t).*cos(2*t)-0.5;
ff=optimset; ff.TolX=1e-16; ff.TolFun=1e-30;
[t1,f1]=fsolve(y,0.5,ff)
[t2,f2]=fsolve(y,2.5,ff)
[t3,f3]=fsolve(y,3.8,ff)
t1 = 0.67375 f1 = 0 t2 = 2.5937 f2 = -1.1102e-16 t3 = 3.5203 f3 = 0
34