Sunteți pe pagina 1din 11

Capitolul 10

OPTIMIZAREA FUNCIILOR
Pure mathematics is, in its way, the poetry of logical ideas.
(Albert Einstein, 1879 - 1955)

10.1. Aspecte teoretice


Optimizarea este un proces prin care se determin modul n care se poate
ajunge la cel mai bine posibil. n inginerie suntem confruntai adesea cu nevoia
de a stabili nite valori iniiale pentru unul sau mai muli parametri de proiectare
precum de exemplu volumul, masa, dimensiunile, materialele diverselor elemente
constructive, tipuri de asamblri, cost etc. i de a ncadra aceti parametri n
intervale de valori posibile ale acestora denumite restricii. Este necesar o metod
tiinific prin care, n limitele unui cadru de referin definit prin condiiile admise
sau impuse iniial, s se stabileasc modul n care se folosesc cel mai avantajos
resursele existente. Optimizarea unei tehnologii de prelucare, a unei construcii, a
unei maini sau instalaii se poate face prin optimizarea separat a componentelor
sale, a subansamblurilor sau a prilor constructive distincte.
y
f(x) y f''(x)<0
f'(x)=0
maximum f(x)

local f(x)
global minimum f(x) x
minimum f(x) 0
0 x*
global x
maximum -f(x) local
maximum -f(x) solutii f(x)=0

minimum f(x)
- f(x) f'(x)=0
f''(x)>0

a) b)
Fig. 10.1. Optimizarea funciilor
a) optimizare global a funciei f(x)
b) maximul i minimul local al funciei f(x)

130
Capitolul 10 - OPTIMIZAREA FUNCIILOR

Din punct de vedere matematic, optimizarea presupune deteminarea


maximului sau minimului unei funcii denumit funcie obiectiv, funcie care
depinde de una sau mai multe variabile. Restriciile sunt formulate matematic sub
forma unor inegaliti i limiteaz domenul de variaie al variabilelor funciei, zona
n care se caut soluia optimal. n general funcia obiectiv are multiple puncte de
extrem, fapt care face foarte dificil procesul de y
stabilire al optimului. Din aceasta cauz, n optimum f(x, y)
practica actual se procedeaz la aflarea unui
f(x, y)
punct de extrem local. Din figura 10.1.a se
poate observa c orice problem de aflare a
maximului unei funcii f(x) se poate transforma y*
ntr-o problem de minimizare. Problemele de
optimizare a funciilor de mai multe variabile se
pot grupa n metode de gradient sau metode 0
x
directe. n figura 10.2 este reprezentat cazul x*
optimizrii bidimensionale realizate grafic
Fig. 10.2. Optimizare
pentru o funcie de dou variabile.
bidimensional f(x,y)

10.2. Optimizare unidimensional


Fie ( x ) o funcie definit pe mulimea numerelor reale; problema
optimizrii const n determinarea acelui x pentru care se ndeplinete:
min( x ), x R (10.1).
Metodele de explorare direct presupun identificarea unui interval [ a ,b ]
care conine minimul, urmat imediat de o reducere iterativ a lungimii intervalului
pn la o valoare mai mic dect o toleran impus de localizare a valorii care
aproximeaz abscisa minimului adic x*. Eficiena acestui mod de abordare depinde
de strategia de construcie a lanului de intervale [ ak , bk ] care conine minimul
cutat. Printre metodele de explorare direct se pot aminti metoda seciunii de aur i
metoda Fibonacci.
Metodele de interpolare l1 l2
determin o aproximaie a lui minimului
utiliznd fie valorile funciei de minimizat
n puncte dintr-un interval iniial de cutare
[ 0 , L ] fie valorile funciei i ale derivatei l1 + l 2
acestei n dou sau trei puncte. L este o
aproximaie iniial a minimului. Cele mai Fig. 10.3. Definiia lui Euclid pentru
cunoscute sunt metoda de interpolare = l1 / l2 , seciunea de aur
ptratic n dou sau trei puncte i metoda
de interpolare cubic.
131
Calcul numeric asistat Teorie i aplicaii n MATLAB

10.2.1. Metoda seciunii de aur

Metoda seciunii de aur este o metod de secionare care rezolv problema


prin reducerea iterativ a intervalul n care se gsete minimul prin compararea
valorilor funciei de minimizat. Odat cu micorarea intervalului pn la un prag
prestabilit, punctele din acest interval se pot considera aproximaii ale minimului
funciei date.
Seciunea de aur care se mai numete
y
d i proporia de aur, proporia divin sau
numrul de aur reprezint o valoare
remarcabi care apare folosit n multe locuri
f(x)
din domeniul geometriei, artei, arhitecturii etc.
fiind definit pentru prima oar de ctre
yx
2
Euclid, datorit rolului acesteia n construirea
yx pentagramelor. Numrul iraional este
reprezentat de obicei prin cifra greceasc i
1

0 xminim
x se definete ca fiind raportul dintre partea mai
a x
x2 1 b lung i partea mai scurt a unei lungimi
d atunci cnd acest raport este egal i cu
raportul dintre ntreaga lungime i partea cea
y mai lung. Se poate scrie:
d iter2
l1 l1 l2
(10.2)
l2 l1
f(x)
Multiplicnd relaia (10.2) cu l1 / l2 se ajunge
la ecuaia:
2 1 0 (10.3)
care are ca soluie valoarea:
xminim 1 5
0 x 1,6180339887498948482 (10.4)
aiter2 x2 x1 b 2
d iter2 Interesant de observat faptul c inversul lui
adic 1/are exact aceleai zecimale ca
Fig. 10.4. Prima iteraie a metodei numrul nsui.
seciunii de aur: se observ c 1/ 0,61803398874989484820458683436.
f (x2 ) f (x1 ) i deci Algoritmul cutrii minimului n
xminim (x2 , b) ; pentru iteraia a
metoda seciunii de aur presupune
identificarea unui interval de incertitudine
doua se face aiter2 x2
[ a ,b ] n care caut numrul x care
minimizeaz funcia f(x). Se calculeaz apoi abscisele i ordonatele a dou puncte
intermediare x1 i x2 care se gsesc ntr-un raport de aur faa de lungimea
intervalului de cutare [ a ,b ] , i anume:
x1 a d (10.5)
x2 b d (10.6)
unde:
132
Capitolul 10 - OPTIMIZAREA FUNCIILOR

d ( 1 )( b a ) (10.7)
Funcia este evaluat n cele dou puncte x1 i x2 fiind posibile situaiile:
- f ( x1 ) f ( x2 ) , ceea ce nseamn c domeniul de cutare [ a , x2 ] poate fi
eliminat deoarece minimul functiei nu se afl aici; pentru iteraia urmtoare
intervalul de cutare devine [ x2 , b ] ceea ce nseamn aiter x2
sau:
- f ( x2 ) f ( x1 ) , ceea ce nseamn c domeniul de cutare [ x1 ,b ] poate fi
eliminat deoarece minimul functiei nu se afl aici; pentru iteraia urmtoare
intervalul de cutare devine [ a,x1 ] ceea ce nseamn biter x1 .
Etapele algoritmului cutrii minimului unei funcii prin metoda seciunii
de aur sunt descrise n etapele urmtoare:
Pasul 1:
Iniializare: Se consider acurateea 0 , se consider 1,6180339, se determin
intervalul iniial de incertitudine [ a1 ,b1 ] i se determin punctele iniiale
x11 a1 ( 1 )( b1 a1 ) i x21 b1 ( 1 )( b1 a1 )
Se evalueaz f ( x11 ) i f ( x21 ) .
Pasul 2:
Se compar valorile funciei de minimizat: Dac f ( x1i ) f ( x2i ) atunci se continu
cu pasul 3; dac f ( x1i ) f ( x2i ) atunci se trece la pasul 4.
Pasul 3:
Cazul 1. Dac bi x1i , atunci stop cu ieirea x2i ; altfel se calculeaz ai 1 x1i ,
bi 1 bi , x1i 1 x2i , f ( x1i 1 ) f ( x2i ) , x2i 1 bi ( 1 )( bi 1 ai 1 ) .
Se evalueaz f ( x2i 1 ) i se continu cu pasul 5.
Pasul 4:
Cazul 2. Dac x2i ai , atunci stop cu ieirea x1i ; altfel se calculeaz ai 1 x1i ,
bi 1 x2i , x2i 1 x1i , f ( x2i 1 ) f ( x1i ) , x1i 1 ai ( 1 )( bi 1 ai 1 ) .
Se evalueaz f ( x1i 1 ) i se continu cu pasul 5.
Pasul 5:
Se pune contorul i i 1 i se continu cu pasul 2.

10.2.2. Metoda lui Fibonacci

Principala diferen fa de metoda seciunii de aur const n faptul c n


metoda Fibonacci rata de reducere a lungimii intervalului de incertitudine nu se
definete n funcie de seciunea de aur ci n funcie de irul numerelor Fibonacci.
Reducerea lungimii intervalului de incertitudine nu are deci o rat constant ci
variaz de la o iteraie la alta.
irul numerelor Fibonacci {Fk} se definete prin:
F0 F1 1 (10.8)
Fk 1 Fk Fk -1 , pentru k=1, 2, ... (10.9).

133
Calcul numeric asistat Teorie i aplicaii n MATLAB

Cutarea intervalelor iteraiei k se face cu ajutorul relaiilor:


Fn k 1
x1k ak ( bk ak ) , k = 1, 2, ... n-1 (10.10)
Fn k 1
Fn k
x2 k ak ( bk ak ) , k = 1, 2, ... n-1 (10.11)
Fn k 1
Dac f ( x1i ) f ( x2i ) atunci noul interval de cutare este [ ak 1 ,bk 1 ] [ ak , x2k ]
Specificnd ca ultimul interval de cutare s nu fie mai mare dect valoarea
acurateii calculelor , adic bn an se poate obine c:
b1 a1
Fn (10.12)

i de aici numrul n din secvena Fibonacci care trebuie utilizat.
Etapele algoritmului cutrii extremului unei funcii prin metoda lui
Fibonacci prin sunt descrise n etapele urmtoare:
Pasul 1:
Iniializare: Se consider acurateea 0 i Fn ca primul numr Fibonacci mai
mare dect ( b1 a1 ) / . Se iniializeaz: D1 0 i D2 Fn .
Pasul 2:
Se consider punctele 1 D1 Fn 2 i 2 D1 Fn 1 precum i punctele 1 1 i
2 2 . Se evalueaz f1 f ( 1 ) i f 2 f ( 2 ) .
Pasul 3:
Dac f1 f 2 , atunci se pune D2 2 ; altfel se pune D1 1 .
Pasul 4:
Dac 1 2 , atunci stop; altfel se consider n n 1 i se continu cu pasul 2.

10.2.3. Optimizare prin interpolare parabolic

Metoda se bazeaz pe faptul c o parabol ofer de cele mai multe ori o


aproximaie corespunztoare a formei unei funcii ntr-un punct de minim sau
maxim. Sunt cunoscute variante n care se caut dou sau trei puncte situate pe o
parabol i care satisfac inclusiv ecuaia pentru care se caut optimul. Ideea metodei
se bazeaz pe faptul c aa cum 2 puncte determin o dreapt, tot aa, prin 3 puncte,
poate fi trasat o singur parabol. Pornind de la un prim set de trei puncte
cunoscute, se poate calcula valoare aproximativ a optimului parabolei i alege apoi
o aproximare mai bun. n figura 10.5 se prezint modul n care se determin
maximul funciei f=f(x) prin metoda interpolrii parabolice cu ajutorul celor 3
puncte x1, x2 i x3 . Maximul graficului parabolei poate fi determinat i este x4 .
Relaia de calcul pentru valoarea optimului parabolei este:
1 ( x2 x1 )2 [ f ( x2 ) f ( x3 )] ( x2 x3 )2 [ f ( x2 ) f ( x1 )]
x4 x2 (10.12)
2 ( x2 x1 ) [ f ( x2 ) f ( x3 )] ( x2 x3 ) [ f ( x2 ) f ( x1 )]

134
Capitolul 10 - OPTIMIZAREA FUNCIILOR

n funcie de intervalul n care se gsete extremul n iteraia urmtoare se


va renuna la punctul x1 sau x3. Vezi exemplul 10.1.

OBSERVAIE Parabola Optim f(x)


y
Alegerea primelor valori pentru cele trei
puncte este foarte important; dac nu sunt
alese punctele aflate imediat n apropierea
extremului atunci metoda nu converge ctre
o soluie. xoptim parabola f(x)

Etapele algoritmului cutrii minimului


prin interpolare ptratic sunt descrise 0 x
n etapele urmtoare: x1 x2 x4 x3
Pasul 1: xoptim real
Iniializare: Fig. 10.5. Optimizare prin metoda
Se consider tolerana calculelor . Se interpolrii parabolice cu trei puncte
deteermin trei puncte { x1 , x2 , x3 } ntre x1, x2 i x3
care se gsete minimul local/maximu local
x4. Sunt calculate valorile funciei n cele trei puncte cunoscute: f(xi ), i = 1, 2, 3.
Pasul 2:
Se utilizeaz relaia (10.12) pentru calculul valorii ordonatei punctului de
minim/maxim al parabolei, x4.
Pasul 3:
Dac ( x4 x1 ) ( x4 x3 ) 0 atunci se continu cu pasul 4; altfel se execut pasul 5.
Pasul 4:
Dintre punctele x1 , x2 , x3, x4 se determin un nou grup de trei puncte { x1 , x2 , x3 } cu
care se execut pasul 2.
Pasul 5:
Dac x4 x2 , stop, altfel se continu cu pasul 4.

10.2.4. Optimizare prin interpolare cubic

Exist mai multe variante ale metodei care aproximeaz funcia de


minimizat printr-un polinom de grad 3. Pot fi utilizate, de exemplu, valorile funciei
ntr-un punct sau valorile funciei n trei puncte i valoarea derivatei acesteia ntr-un
punct sau valoarea funcie i a derivatei acesteia n cte dou puncte. Rata de
convergena este mai ridicat dect interpolarea ptratic dar este necesar i calculul
derivatelor funciei.
Fie dou puncte a i b n care cunoatem valorile f(a) i f(b), precum i
valorile derivatelor f(a) i f(b). Polinomul cubic de interpolare se construiete cu
ajutorul acestor valori i este de forma:
p( ) c1( a )3 c2 ( a )2 c3 ( a ) c4 (10.13)
unde ci , i = 1, 2, 3, 4 sunt coeficienii polinomului i se pot determina din condiiile
iniiale evidente:
135
Calcul numeric asistat Teorie i aplicaii n MATLAB

p( a ) c4 f ( a ) (10.14)
3 2
p( b ) c1( b a ) c2 ( b a ) c3 ( b a ) c4 f ( b ) (10.15)
p' ( a ) c3 f ' ( a ) (10.16)
p' ( b ) 3c1( b a )2 2c2 ( b a ) c3 ( b a ) f ' ( b ) (10.17)
Desigur, condiiile suficiente pentru minim sunt:
p' ( ) 3c1( a )2 2c2 ( a ) c3 0 (10.18)
i
p' ' ( ) 6 c1( a ) 2c2 0 (10.19).
n urma unor manipulri, se obine urmtaorea relaie pentru minimul
cutat:
w f'( a ) z
a (b a ) (10.20)
f ' ( b ) f ' ( a ) 2w
unde:
w z2 f ' ( a ) f ' ( b ) (10.21)
z s f'( a ) f'(b ) (10.22)
i:
f (b ) f ( a )
s 3 (10.23).
ba

10.3. Comenzi pentru minimizarea funciilor n Matlab


Funciile Matlab dedicate optimizrii corespund problemelor de minim
pentru funcii de o variabil sau mai multe, i anume: fmin sau fminbnd calculeaz
minimul funciilor de o variabil, fmins sau fminsearch - calculeaz minimul
funciilor de mai multe variabile.

10.3.1. Optimizarea unidimensional

Comanda fminbnd(funcie,a,b,opiuni) sau comanda similar, care nu


se gsete la versiunile superioare ale programului, fmin(funcie,a,b,opiuni)
calculeaz minimul funciilor de o variabil. Funcia poate fi introdus ca atare ntre
apostrofuri, poate fi definit cu ajutorul comenzii inline, sau cu ajutorul caracterului
@ (pentru versiunile superioare ale Matlab-ului) sau poate fi o funcie special
predefinit n Matlab cu ajutorul unui fiier M. Valorile a i b sunt valorile ntre care
se caut minimul funciei, rezultatul obinut fiind valoarea variabilei x [ a ,b ]
pentru care funcia este minim. Calculul trebuie deci s nceap prin stabilirea unui
interval n care se gsete un minim local sau global i abia apoi se poate apela
comanda fminbnd pentru a cuta n acel interval stabilit. Opiunile se refer afiarea
sau nu a valorilor intermediare ale rezolvrii, la impunerea toleranei calculelor
136
Capitolul 10 - OPTIMIZAREA FUNCIILOR

(valoarea implicit fiind 10-4 ) sau la impunerea unui numr maxim de pai pentru
iteraiile de calcul.
Comanda fminbnd mai poate fi apelat cu sintaxa:
[x fval]=fminbnd(funcie,a,b,opiuni) astfel nct sunt calculate simultan
valoarea abscisei i valoarea ordonatei n punctul de minim al funciei din intervalul
[a b].
160
EXEMPLU 10.1 140
S se procedeze la cutarea 120
minimului funciei de mai jos n 100
intervalul a = 1 i b = 10, cu
80
algoritmul metodei seciunii de aur,
60
prin metoda interpolrii ptratice i
prin aplicarea funciei 40

corespunztoare n Matlab: 20
3 0
x
f( x) 5 x cos x (10.24)
10 -20
1 2 3 4 5 6 7 8 9 10

Soluie: Fig. 10.6. Graficul funciei f(x) i minimul global


a) Metoda seciunii de aur:
n tabelul 10.1 sunt prezentate rezultatele obinute n procesul iterativ de aflare a
minimului funciei prin metoda seciunii de aur. Dup 16 iteraii se ajunge la
concluzia c minimul funciei se gsete n intervalul cuprins ntre 6,055 i 6,0821.
Pentru determinarea unui rezultat cu o eroare i mai mic dect cel obinut mai jos
trebuie ca s se realizeze calculele cu mai mult de 4 zecimale dup virgul.

Tabel 10.1. Paii algoritmului seciunii de aur


pentru determinarea minimului funciei din exemplul 10.1
Nr. a b d x1 x2 f(x1) f(x2)
1 1 10 5.5623 6.5623 4.4377 -3.2818 14.7579 a x2
2 4.4377 10 3.4377 7.8754 6.5623 49.6874 -3.2818 b x1
3 4.4377 7.8754 2.1246 6.5623 5.7508 -3.2818 -5.7553 b x1
4 4.4377 6.5623 1.3131 5.7508 5.2492 -5.7553 1.0411 a x2
5 5.2492 6.5623 0.8115 6.0608 5.7508 -7.2944 -5.7553 a x2
6 5.7508 6.5623 0.5016 6.2523 6.0608 -6.8054 -7.2944 b x1
7 5.7508 6.2523 0.3099 6.0607 5.9424 -7.2944 -7.0193 a x2
8 5.9424 6.2523 0.1916 6.1339 6.0607 -7.2497 -7.2944 b x1
9 5.9424 6.1339 0.1184 6.0607 6.0155 -7.2944 -7.2385 a x2
10 6.0155 6.1339 0.0732 6.0887 6.0607 -7.2974 -7.2944 a x2
11 6.0607 6.1339 0.0452 6.1060 6.0887 -7.2869 -7.2974 b x1
12 6.0607 6.1060 0.0279 6.0887 6.0780 -7.2974 -7.2991 b x1
13 6.0607 6.0887 0.0173 6.0780 6.0714 -7.2991 -7.2984 a x2
14 6.0714 6.0887 0.0107 6.0821 6.0780 -7.2989 -7.2991 b x1
15 6.0714 6.0821 0.0066 6.0780 6.0755 -7.2991 -7.2990 a x2
16 6.0755 6.0821 0.0041 6.0796 6.0780 -7.2991 -7.2991

137
Calcul numeric asistat Teorie i aplicaii n MATLAB

b) Metoda interpolrii parabolice


Plecnd de la punctele iniiale x1 = 0, x2 = 5 i x3= 10, metoda interpolrii parabolice
presupune construirea tabelului 10.2.

Tabel 10.2. Paii algoritmului care folosete interpolarea parabolic cu 3 puncte


pentru determinarea minimului funciei din exemplul 10.1
Nr. x1 f(x1) x2 f(x2) x3 f(x3) x4 f(x4)
1 4 19.4729 5 5.4084 9 113.9009 5.3537 -0.6691
2 5 5.4084 5.3537 -0.6691 9 113.9009 5.8839 -6.7352
3 5.3537 -0.6691 5.8839 -6.7352 9 113.9009 6.0347 -7.2698
4 5.8839 -6.7352 6.0347 -7.2698 9 113.9009 6.0837 -7.2986
5 6.0347 -7.2698 6.0837 -7.2986 9 113.9009 6.0799 -7.2991
6 6.0347 -7.2698 6.0799 -7.2991 6.0837 -7.2986 6.0781 -7.2991

c) Rezolvarea cu ajutorul funciei fminbnd n Matlab presupune execuia


urmtoarelor linii de program:
[xmin valfct]=fminbnd('x.^3/10-5*x.*cos(x)',1,10)
Optimization terminated successfully:
the current x satisfies the termination criteria using OPTIONS.TolX
of 1.000000e-004
xmin = 6.07813080125879
valfct = -7.29911807666044

Pentru evidenierea soluiei problemei se traseaz graficul din figura 10.6.


Celelalte doua variante de calcul sunt prezentate mai jos:

functie=inline('x.^3/10-5*x.*cos(x)')
functie =
Inline function:
functie(x) = x.^3/10-5*x.*cos(x)
[xmin valfct]=fminbnd(functie,1,10)
Optimization terminated successfully:
the current x satisfies the termination criteria using OPTIONS.TolX
of 1.000000e-004
xmin = 6.0781
valfct = -7.2991

sau
>> [xmin valfct]=fminbnd(@(x) x^3/10-5*x*cos(x),1,10)
xmin = 6.078130801258789
valfct = -7.299118076660442

sau, dac exist fiierul M:


function functie = functie (x)
functie = x.^3/10-5*x.*cos(x)
%Calculeaz valoarea funciei
end
se poate introduce:
>> [xmin valfct]=fminbnd(@functie,1,10)
functie = 14.757903355198081
functie = -3.281839431242535
functie = 49.687388240259367
functie = -6.160106579698574

138
Capitolul 10 - OPTIMIZAREA FUNCIILOR

functie = -7.124652223036932
functie = -7.294852652145337
functie = -7.298712354070990
functie = -7.299117777390752
functie = -7.299118076660442
functie = -7.299118069439469
functie = -7.299118048842171
xmin = 6.078130801258789
valfct = -7.299118076660442

sau:
>> [xmin valfct]=fminbnd('functie',1,10)
cu acelai rezultat prezentat mai sus.

10.3.2. Optimizarea multidimensional

Comanda fminsearch(funcie,x0,opiuni) sau comanda similar care


nu se gsete la versiunile superioare ale programului, fmins(funcie,x0,opiuni)
calculeaz minimul funciilor de mai multe variabile.Comanzile utilizeaz metoda
direct de cutare a minimului cu ajutorul algoritmului Nelder-Mead simplex.
Din punct de vedere al sintaxei, funcia este similar celei utilizate pentru
optimizarea unidimensional.
[xmin valfct]=fminsearch(functie, [sol1 sol2] )

EXEMPLU 10.2
S se gseasc minimul funciei de mai jos, cu ajutorul funciei dedicate din Matlab
i rezolvare grafic pentru urmtoarele intervale de variaie a parametrilor
x [ 3, 3 ] i y [ 2, 2 ] .
f(x,y) 53 ( x y ) x y ( x2 y 2 )2 2 (10.25)

Soluie:
Trasarea graficelor funciei se face cu ajutorul comenzilor de mai jos:
x=linspace(-2,2,50)
y=linspace(-3,3,50)
% se genereaz reeaua de puncte
[X,Y]=meshgrid(x,y)
% se calculeaz valorile funciei n nodurile reelei
Z=5*X.^2-5*X.*Y+2.5*Y.^2-X-1.5*Y+10
subplot(1,2,1)
%se traseaz izolinii pentru suprafaa definita
cs=contour(X,Y,Z);colormap([0 0 0]);
clabel(cs);grid on
xlabel('x');ylabel('y')
subplot(1,2,2)
%se traseaz suprafata 3D
cs=surfc(X,Y,Z);colormap
zmin=floor(min(Z))
zmax=ceil(max(Z))
xlabel('x');ylabel('y')

139
Calcul numeric asistat Teorie i aplicaii n MATLAB

Din figura 10.7 se poate observa c funcia are un minim de ~10 n jurul valorilor
x 0 i y 0 ,5 .
Utilizarea comenzii fminsearch presupune:
fct102=inline('5*x(1).^2-5*x(1).*x(2)+2.5*x(2).^2-x(1)-1.5*x(2)+10')
fct102 =
Inline function:
fct102(x) = 5*x(1).^2-5*x(1).*x(2)+2.5*x(2).^2-x(1)-1.5*x(2)+10
[xmin,valfct]=fminsearch(fct102,[0 -0.5])
Optimization terminated successfully:
the current x satisfies the termination criteria using OPTIONS.TolX
of 1.000000e-004
and F(X) satisfies the convergence criteria using OPTIONS.TolFun of
1.000000e-004
xmin = 0.5000 0.8000
valfct = 9.1500
80
80
70
70
60
60
50
50
40
40
30
30

10 10

30 30
20 20 40 40
50 50
60 60
70 70
80
80

a) b)
Fig. 10.7. Reprezentrile grafice corespunztoare funciei de la exemplul 10.2

EXEMPLU 10.3
Fie funcia de trei variabile:
f(x,y, z) e x 5( y 2 z 9 x )2 (10.26).
S se gseasc valorile parametrilor pentru care valoare funciei este minim.
Soluie:
fct105=inline('exp(x(1))+5*(x(2)-2*x(3)+9*x(1))^2')
fct105 =
Inline function:
fct105(x) = exp(x(1))+5*(x(2)-2*x(3)+9*x(1))^2
[xmin,valfct]=fminsearch(fct105,[0.5 0.5 0.5])
Optimization terminated successfully:
the current x satisfies the termination criteria using OPTIONS.TolX
of 1.000000e-004
and F(X) satisfies the convergence criteria using OPTIONS.TolFun of
1.000000e-004
xmin = -59.0229 155.6969 -187.7546
valfct = 2.3264e-026
140

S-ar putea să vă placă și