《MATLAB實踐教程》課件第8章_第1頁
《MATLAB實踐教程》課件第8章_第2頁
《MATLAB實踐教程》課件第8章_第3頁
《MATLAB實踐教程》課件第8章_第4頁
《MATLAB實踐教程》課件第8章_第5頁
已閱讀5頁,還剩80頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

8.1解優(yōu)化問題的MATLAB程序結(jié)構(gòu)及其運行機制

8.2線性規(guī)劃(LinearProgramming)

8.3二次規(guī)劃

8.4無約束非線性規(guī)劃(UnconstrainedNonlinearMinimization)

8.5約束非線性規(guī)劃

8.6最小二乘規(guī)劃

8.7非線性方程求根

第8單元MATLAB優(yōu)化設(shè)計

解優(yōu)化問題的MATLAB程序具有如圖8-1所示的結(jié)構(gòu)。8.1解優(yōu)化問題的MATLAB

程序結(jié)構(gòu)及其運行機制圖8-1解優(yōu)化問題的MATLAB程序結(jié)構(gòu)和數(shù)據(jù)流主程序至少包括必要數(shù)據(jù)、初始解、優(yōu)化設(shè)置和解算函數(shù)四個部分。必要數(shù)據(jù)是需預(yù)先賦值的優(yōu)化模型常量參數(shù);初始解是設(shè)計變量的初始指定值;優(yōu)化設(shè)置由optimset函數(shù)實現(xiàn),它控制解算函數(shù)的算法、設(shè)計變量允差、目標函數(shù)允差、約束條件允差等;解算函數(shù)亦稱優(yōu)化解法器,是優(yōu)化工具箱提供的M-file函數(shù),它完成特定的優(yōu)化模型解法。

優(yōu)化設(shè)置舉例見表8-1。表8-1優(yōu)化設(shè)置語句及其含義線性規(guī)劃的MATLAB標準型如下所示,它采用OptimizationToolbox_linprog函數(shù)解算。8.2線性規(guī)劃(LinearProgramming)

【例8.1】解下面的線性規(guī)劃問題

首先將原線性規(guī)劃問題轉(zhuǎn)換為線性規(guī)劃的MATLAB標準型,如下所示:其中:

MATLAB解線性規(guī)劃程序如下:

clc;clearall;closeall;

C=[-4-5-1];A=[-3-2-1;210];b=[-17;10];Aeq=[111];beq=10;%必要數(shù)據(jù)

lb=[0;0;0];ub=[]; %必要數(shù)據(jù)

X0=[0;0;0];

%初始解

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7); %優(yōu)化設(shè)置

[X,Y,exitflag,output,lambda]=linprog(C,A,b,Aeq,beq,lb,ub,X0,options)%解算程序執(zhí)行的部分結(jié)果如下:

X=

0.0000

10.0000

0.0000

Y=-50.0000

exitflag=1

問題的最優(yōu)解X和最優(yōu)值Y分別為

,

【例8.2】某廠生產(chǎn)CP1、CP2、CP3三種產(chǎn)品,均需A、B兩道工序加工。設(shè)A工序可在設(shè)備A1或A2上完成,B工序可在設(shè)備B1、B2或B3上完成。已知產(chǎn)品CP1可在A、B任何一種設(shè)備上加工;產(chǎn)品CP2可在任何規(guī)格的A設(shè)備上加工,但完成B工序時,只能在B1設(shè)備上加工;產(chǎn)品CP3只能在A2與B2設(shè)備上加工。加工單位產(chǎn)品所需工序時間及其它各項數(shù)據(jù)見表8-2。試建立問題的線性規(guī)劃模型,求解使該廠獲利最大的最優(yōu)生產(chǎn)規(guī)劃。表8-2與產(chǎn)品加工、設(shè)備能力和銷售等有關(guān)的數(shù)據(jù)

(1)建立問題的線性規(guī)劃模型,步驟如下:

確定設(shè)計變量:

x1—A1加工的CP1件數(shù)x2—A2加工的CP1件數(shù)

x3—B1加工的CP1件數(shù)x4—B2加工的CP1件數(shù)

x5—B2加工的CP1件數(shù)x6—A1加工的CP2件數(shù)

x7—A2加工的CP2件數(shù)x8—B1加工的CP2件數(shù)

x9—A2加工的CP3件數(shù)x10—B2加工的CP3件數(shù)確定目標函數(shù)(總利潤):確定線性規(guī)劃模型:(2)將原線性規(guī)劃問題轉(zhuǎn)換為線性規(guī)劃的MATLAB標準型:

(3)?MATLAB解線性規(guī)劃程序如下:

clc;clearall;closeall;

C=[-0.75-0.79-0.64-0.56-0.65-1.15-1.38-1.17-1.94-1.09];%必要數(shù)據(jù)

A=[50000100000;07000090120;0060000800;

00040000011;0000500000]; %必要數(shù)據(jù)

b=[6000;10000;4000;7000;4000]; %必要數(shù)據(jù)

Aeq=[11-1-1-100000;0000011-100;000000001-1]; %必要數(shù)據(jù)

beq=[0;0;0]; %必要數(shù)據(jù)

lb=[0;0;0;0;0;0;0;0;0;0];ub=[]; %必要數(shù)據(jù)

X0=[0;0;0;0;0;0;0;0;0;0]; %初始解

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7); %優(yōu)化設(shè)置

[X,Y,exitflag,output,lambda]=linprog(C,A,b,Aeq,beq,lb,ub,x0,options)%解算

xCP1=X(1)+X(2)

xCP2=X(6)+X(7)

xCP3=X(9)

fval=-Y

(4)程序執(zhí)行的部分結(jié)果如下:

Optimizationterminated.

X=1.0e+003*

1.2000

0.2300

0.0000

0.8586

0.5714

0.0000

0.5000

0.5000

0.3241

0.3241

Y=-4.6017e+003

exitflag=1

xCP1=1.4300e+003產(chǎn)品1總件數(shù)

xCP2=500.0000

產(chǎn)品2總件數(shù)

xCP3=324.1379

產(chǎn)品3總件數(shù)

fval=1.1906e+003總利潤采用OptimizationToolbox_quadprog函數(shù)可解算如下所示的MATLAB標準型二次規(guī)劃。8.3二次規(guī)劃

【例8.3】試求解下面的二次規(guī)劃首先將原二次規(guī)劃問題轉(zhuǎn)換為二次規(guī)劃的MATLAB標準型,如下所示:

其中:海森矩陣:

采用OptimizationToolbox_quadprog函數(shù)編程求解二次規(guī)劃。程序如下:

clc;clearall;closeall;

H=[1-1;-12];C=[-2;-6];A=[11;-12;21];b=[2;2;3]; %必要數(shù)據(jù)

Aeq=[];beq=[];lb=[0;0];ub=[]; %必要數(shù)據(jù)

X0=[0;0]; %初始解

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7); %優(yōu)化設(shè)置

[X,Y,exitflag,output,lambda]=quadprog(H,C,A,b,Aeq,beq,lb,ub,X0,options)程序執(zhí)行的部分結(jié)果如下:

Optimizationterminated.

X=最優(yōu)解

0.6667

1.3333

Y=-8.2222最優(yōu)值

exitflag=1歐氏空間En、n元自變量X、目標函數(shù)f

(X)無約束非線性規(guī)劃的MATLAB標準型為:8.4無約束非線性規(guī)劃(UnconstrainedNonlinearMinimization)8.4.1無約束非線性規(guī)劃的單純形解法

用OptimizationToolbox_fminsearch函數(shù)可實現(xiàn)無約束非線性規(guī)劃的單純形解法。

【例8.4】求解下面函數(shù)的極小點和極小值

采用OptimizationToolbox_fminsearch函數(shù)編程求解無約束非線性規(guī)劃。程序如下:

clc;clearall;closeall;

fun=@(x)100*(x(2)-x(1)^2)^2+(sqrt(2)-x(1))^2; %目標函數(shù)

X0=[0;0]; %初始解

options=optimset('TolX',1e-7,'TolFun',1e-7); %優(yōu)化設(shè)置

[X,Fx,exitflag,output]=fminsearch(fun,X0,options) %解算程序執(zhí)行的部分結(jié)果如下:

X=極小點

1.4142

2.0000

Fx=9.3621e-016極小值

exitflag=18.4.2無約束非線性規(guī)劃的梯度解法

用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)無約束非線性規(guī)劃的梯度解法,它需要調(diào)用計算目標函數(shù)和梯度的M-file函數(shù),故要先完成目標函數(shù)和梯度計算的M-file函數(shù)編程。

【例8.5】求解下面的無約束非線性規(guī)劃

梯度計算公式:首先為目標函數(shù)和梯度計算編寫一個M-file函數(shù)uncfun.m。程序如下:

function[f,g]=uncfun(x)

f=3*x(1)^2+2*x(1)*x(2)+x(2)^2;

ifnargout>1%若輸出多于1

g(1)=6*x(1)+2*x(2);

g(2)=2*x(1)+2*x(2);

end

采用OptimizationToolbox_fminunc函數(shù)編程調(diào)用uncfun并求解無約束非線性規(guī)劃。程序如下:X0=[0;0];%初始解

options=optimset('GradObj','on','TolX',1e-7,'TolFun',1e-7); %優(yōu)化設(shè)置

[X1,Fx1,exitflag,output,grad]=fminunc(@uncfun,X0)%缺省設(shè)置解算

[X2,Fx2,exitflag,output,grad]=fminunc(@uncfun,X0,options)%用戶設(shè)置解算

程序執(zhí)行的部分結(jié)果如下:

X1=1.0e-005*

0.2675

-0.2231

Fx1=1.4509e-011

exitflag=1

grad=1.0e-004*

0.1163

0.0087X2=1.0e-022*

-0.1323

0

Fx2=5.2549e-046

exitflag=1

grad=1.0e-022*

-0.7941

-0.26478.4.3無約束非線性規(guī)劃的最速下降解法

用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)無約束非線性規(guī)劃的最速下降解法。steepdesc最速下降法需通過優(yōu)化設(shè)置啟用。

【例8.6】用最速下降法求解下面的無約束非線性規(guī)劃,選定初始解X0?=?[0;0]采用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)最速下降法解無約束非線性規(guī)劃。程序如下:

clc;clearall;closeall;

X0=[0;0];%初始解

uncfun=@(x)x(1)^2+2*x(2)^2-2*x(1)*x(2)-3*x(2); %目標函數(shù)

options=optimset('LargeScale','off','HessUpdate','steepdesc',…

'MaxFunEvals',270); %優(yōu)化設(shè)置

[X,Fx,exitflg]=fminunc(uncfun,X0,options) %用最速下降法解算

程序執(zhí)行的結(jié)果如下:

X=

1.5000

1.5000

Fx=-2.2500

exitflg=18.4.4無約束非線性規(guī)劃的DFP變尺度解法

用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)DFP擬牛頓變尺度法解無約束非線性規(guī)劃。DFP需通過優(yōu)化設(shè)置啟用。

【例8.7】用DFP求解下面的非線性規(guī)劃,選定初始解X0?=?[4,0]。采用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)DFP擬牛頓法編程求解無約束非線性規(guī)劃。程序如下:

clc;clearall;closeall;

X0=[4;0]; %初始解

uncfun=@(x)-1./(x(1)^2+x(2)^2+2); %目標函數(shù)

options=optimset('LargeScale','off','HessUpdate','dfp');%優(yōu)化設(shè)置

[X,Fx,exitflg]=fminunc(uncfun,X0,options) %用DFP法解算

程序執(zhí)行的結(jié)果如下:

X=1.0e-006*

-0.7840

0

Fx=-0.5000

exitflg=18.4.5無約束非線性規(guī)劃的BFGS變尺度解法

用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)BFGS法解無約束非線性規(guī)劃。BFGS法需通過優(yōu)化設(shè)置啟用。

【例8.8】用BFGS法求解下面的非線性規(guī)劃,選定初始解X0?=?[4,0]。采用OptimizationToolbox_fminunc函數(shù)可實現(xiàn)BFGS法編程求解無約束非線性規(guī)劃。程序如下:

clc;clearall;closeall;

X0=[4;0]; %初始解

uncfun=@(x)-1./(x(1)^2+x(2)^2+2); %目標函數(shù)

options=optimset('LargeScale','off','HessUpdate','bfgs'); %優(yōu)化設(shè)置

[X,Fx,exitflg]=fminunc(uncfun,X0,options) %用BFGS法解算

程序執(zhí)行的結(jié)果如下:

X=1.0e-006*

-0.7840

0

Fx=-0.5000

exitflg=18.5.1約束一元非線性規(guī)劃

約束一元非線性規(guī)劃求解某區(qū)間上一元非線性函數(shù)的最小化問題,它的MATLAB標準型為:8.5約束非線性規(guī)劃

【例8.9】求解下面的約束一元非線性規(guī)劃問題

采用OptimizationToolbox_fminbnd函數(shù)編程求解約束一元非線性規(guī)劃。程序如下:

clc;clearall;closeall;

objfun=@(x)(x-1.5)^2+0.2*x^3; %目標函數(shù)

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7);%優(yōu)化設(shè)置

[X,Fx,exitflg]=fminbnd(objfun,0,3,options) %解算

程序執(zhí)行的結(jié)果如下:

X=

1.1222

Fx=

0.4254

exitflg=18.5.2約束多元非線性規(guī)劃

約束多元非線性規(guī)劃問題的MATLAB標準型為:非線性不等式約束非線性等式約束線性不等式約束線性等式約束設(shè)計變量區(qū)間約束

【例8.10】求解下面的約束多元非線性規(guī)劃問題,初始解選定X0?=?[10;10;10]。

首先將約束多元非線性規(guī)劃問題轉(zhuǎn)換為MATLAB標準型。

其中:采用OptimizationToolbox_fmincon函數(shù)編程求解約束多元非線性規(guī)劃。程序如下:

clc;clearall;closeall;

objfun=@(x)-x(1)*x(2)*x(3); %目標函數(shù)X0=[10;10;10]; %初始解A=[-1-2-2;122];b=[0;72]; %必要數(shù)據(jù)options=optimset(‘TolX’,1e-7,‘TolFun’,1e-7,‘TolCon’,1e-7);%優(yōu)化設(shè)置

[X,Y,exitflg]=fmincon(objfun,X0,A,b,[],[],[],[],[],options)%解算程序執(zhí)行的結(jié)果如下:

Activeinequalities(towithinoptions.TolCon=1e-007):

lowerupperineqlinineqnonlin

2

X=

24.0000

12.0000

12.0000

Y=-3.4560e+003

exitflg=58.5.3約束多元最大最小規(guī)劃

最大最小規(guī)劃是指實現(xiàn)約束多元非線性向量函數(shù)的最大分量最小化,它的MATLAB標準型為:非線性不等式約束非線性等式約束線性不等式約束線性等式約束設(shè)計變量區(qū)間約束

【例8.11】求解下面的最大最小規(guī)劃,初始解選定X0?=?[0.1;0.1]。

其中

例8.11的最大最小化問題無約束,本身已是MATLAB標準型,無需模型轉(zhuǎn)換。首先將目標函數(shù)編寫成M-file函數(shù)minmaxobj.m。程序如下:

functionf=minmaxobj(x);

f(1)=2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;

f(2)=-x(1)^2-3*x(2)^2;

f(3)=x(1)+3*x(2)-18;

f(4)=-x(1)-x(2);

f(5)=x(1)+x(2)-8;采用OptimizationToolbox_fminimax函數(shù)編程調(diào)用minmaxobj并求解最大最小規(guī)劃。程序如下:

clc;clearall;closeall;

x0=[0.1;0.1]; %初始解

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7); %優(yōu)化設(shè)置

formatshorte;

[x,fval,maxfval,exitflag]=fminimax(@minmaxobj,x0,[],[],[],[],[],[],[],options)

程序執(zhí)行的結(jié)果如下:

Activeinequalities(towithinoptions.TolCon=1e-007):%起作用約束

lowerupperineqlinineqnonlin

1

5

x= %最優(yōu)解

4.0000e+000

4.0000e+000

fval=

4.9454e-011-6.4000e+001-2.0000e+000-8.0000e+000-1.5445e-012 %目標函數(shù)值

maxfval=4.9454e-011 %最大目標函數(shù)值

exitflag=48.5.4約束多元多目標規(guī)劃

多目標規(guī)劃問題是讓非線性向量函數(shù)(多目標)整體上與期望目標的差異最小,它的MATLAB標準型為:非線性不等式約束非線性等式約束線性不等式約束線性等式約束設(shè)計變量區(qū)間約束

【例8.12】例8.11最大最小規(guī)劃問題采用多目標規(guī)劃模型求解,初始解仍選定X0?=?[0.1;0.1]。

確定目標函數(shù)向量F(X)的目標值向量goal和目標權(quán)重向量weight:

;先將目標函數(shù)編寫成M-file函數(shù)multgoalobj.m。程序如下:

functionf=multgoalobj(x);

f(1)=2*x(1)^2+x(2)^2-48*x(1)-40*x(2)+304;

f(2)=-x(1)^2-3*x(2)^2;

f(3)=x(1)+3*x(2)-18;

f(4)=-x(1)-x(2);

f(5)=x(1)+x(2)-8;采用OptimizationToolbox_fgoalattain函數(shù)編程調(diào)用multgoalobj并求解多目標規(guī)劃。程序如下:

clc;clearall;closeall;

x0=[0.1;0.1]; %初始解

goal=[00000]'; %目標值

weight=goal+1; %目標權(quán)重,選定權(quán)重相同

options=optimset('TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7);%優(yōu)化設(shè)置

formatshorte;

[x,fval,attainfactor,exitflag]=fgoalattain(@minmaxobj,x0,goal,weight,...

[],[],[],[],[],[],[],options)

程序執(zhí)行的結(jié)果如下:

Activeinequalities(towithinoptions.TolCon=1e-007):%起作用約束

lowerupperineqlinineqnonlin

1

5

x=%最優(yōu)解

4.0000e+000

4.0000e+000

fval=5.2978e-011-6.4000e+001-2.0000e+000-8.0000e+000-1.6502e-012

attainfactor=-1.7365e-012%松弛因子值

exitflag=58.6.1非線性方程最小二乘規(guī)劃

響應(yīng)變量的測定值Ydata與它的估計值f?(X)之差稱做誤差,自變量X的n點測試就會產(chǎn)生n個誤差。采用OptimizationToolbox_lsqcurvefit函數(shù)編程實現(xiàn)非線性方程最小二乘規(guī)劃,即實現(xiàn)n個誤差平方和的最小化,它的MATLAB標準型為:8.6最小二乘規(guī)劃其中

響應(yīng)變量Y與自變量X的關(guān)系可表示為下面的響應(yīng)模型:維模型參數(shù),包括β0;維自變量樣本(試驗數(shù)據(jù));維響應(yīng)變量樣本(試驗數(shù)據(jù));維響應(yīng)變量估計值。是1維響應(yīng)變量是p維自變量是p+1維模型參數(shù)是誤差

【例8.13】為考察水稻品種IR72的籽粒平均粒重y?(毫克)與開花后天數(shù)x的關(guān)系,測定了兩變量的9對數(shù)據(jù),詳見表8-3。表8-3水稻品種IR72的性狀觀測為試驗測定數(shù)據(jù)擬合一個Logistic生長模型,即:

,(參數(shù)k、a、b均大于零)

采用lsqcurvefit函數(shù)的其他案例,可考察第4單元中4.4.2小節(jié)的一元函數(shù)最小二乘擬合問題和第7單元中7.7.1小節(jié)的一元非線性回歸問題。樣本數(shù)據(jù)和模型參數(shù)表為下面的向量:Logistic生長模型對參數(shù)β的偏導(dǎo)數(shù)表示為梯度G的轉(zhuǎn)置向量:

n個試驗觀測上的偏導(dǎo)數(shù)向量表示為Jacobian矩陣:將目標函數(shù)和Jacobian矩陣編寫成M-file函數(shù)IR72objfun.m。程序如下:

function[F,J]=IR72objfun(beta,xdata)

fenmu=1+beta(2)*exp(-beta(3)*xdata);

F=beta(1)./fenmu;

ifnargout>1;%Jacobianofthefunctionevaluatedatbeta

yk=1./fenmu;

ya=-beta(1)*exp(-beta(3)*xdata)./fenmu.^2;

yb=beta(1)*beta(2)*xdata.*exp(-beta(3)*xdata)./fenmu.^2;

J=[ykyayb];

end;采用OptimizationToolbox_lsqcurvefit函數(shù)編程調(diào)用IR72objfun并求解最小二乘規(guī)劃。程序如下:

clc;clearall;

xdata=[03691215182124]';

ydata=[0.30.723.319.7113.0916.8517.7918.2318.43]';

beta0=[1,1,1]';%Startingguess

lb=[000]';ub=[];

options=optimset('GradObj','on','TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7);

[beta,resnorm,residual,exitflag]=...

lsqcurvefit(@IR72objfun,beta0,xdata,ydata,lb,ub,options)程序執(zhí)行的部分結(jié)果如下:

Optimizationterminated:relativefunctionvaluechangingbylessthanOPTIONS.TolFun.

beta=

1.8280e+001

4.8221e+001

4.1987e-001

resnorm=2.2398e+000

exitflag=3

平均粒重與開花后天數(shù)關(guān)系的Logistic生長模型擬合如圖8-2所示。圖8-2平均粒重與開花后天數(shù)關(guān)系的Logistic生長模型擬合8.6.2非線性方程組最小二乘規(guī)劃

采用OptimizationToolbox_lsqnonlin函數(shù)可編程實現(xiàn)非線性方程組或向量函數(shù)的最小二乘規(guī)劃,問題的MATLAB標準型為:

其中,為非線性函數(shù)組或向量函數(shù)。

【例8.14】求解下面的非線性方程組最小二乘規(guī)劃:

其中Jacobian矩陣的計算:將目標函數(shù)和Jacobian矩陣的計算編寫成M-file函數(shù)nonlinobjfun.m。程序如下:

function[FJ]=nonlinobjfun(x);

i=[1:10]’;

F=2+2*i-exp(i*x(1))-exp(i*x(2));

ifnargout>1;%twooutputarguments

fori=1:10;

forj=1:2;

J(i,j)=-i*exp(i*x(j));

end;

end;%Jacobianofthefunctionevaluatedatx

end;采用OptimizationToolbox_lsqnonlin函數(shù)編程調(diào)用nonlinobjfun并求解最小二乘規(guī)劃。程序如下:

clc;clearall;

options=optimset('Jacobian','on','TolX',1e-7,'TolFun',1e-7);

x0=[0.3;0.4];%Startingguess

[x,resnorm,residual,exitflag]=lsqnonlin(@nonlinobjfun,x0,[],[],options)

程序執(zhí)行的部分結(jié)果如下:

Optimizationterminated:normofthecurrentstepislessthanOPTIONS.TolX.

x=

0.2578

0.2578

resnorm=

124.3622

exitflag=28.6.3線性方程組約束最小二乘規(guī)劃

采用OptimizationToolbox_lsqlin函數(shù)可編程實現(xiàn)線性方程組約束最小二乘規(guī)劃,常用于求取約束或無約束超定線性方程組的最小二乘解。問題的MATLAB標準型為:

【例8.15】求解下面的線性方程組約束最小二乘規(guī)劃:

其中采用OptimizationToolbox_lsqlin函數(shù)編程求解線性方程組約束最小二乘規(guī)劃。程序如下:

clc;clearall;

C=[0.95010.76200.61530.4057

0.23110.45640.79190.9354

0.60680.01850.92180.9169

0.48590.82140.73820.4102

0.89120.44470.17620.8936];

d=[0.05780.35280.81310.00980.1388]’;

lb=-0.1*ones(4,1);ub=2*ones(4,1);

A=[0.20270.27210.74670.4659

0.19870.19880.44500.4186

0.60370.01520.93180.8462];

b=[0.52510.20260.6721]’;

options=optimset('LargeScale','off','TolX',1e-7,'TolFun',1e-7,'TolCon',1e-7);

[x,resnorm,residual,exitflag]=lsqlin(C,d,A,b,[],[],lb,ub,[],options)

程序執(zhí)行的部分結(jié)果如下:

Optimizationterminated.

x=

-0.1000

-0.1000

?0.2152

?0.3502

resnorm=0.1672

exitflag=18.6.4線性方程組非負最小二乘規(guī)劃

采用OptimizationToolbox_lsqnonneg函數(shù)可編程實現(xiàn)線性方程組非負最小二乘規(guī)劃,常用于求取超定線性方程組的非負約束最小二乘解。問題的MATLAB標準型為:

【例8.16】求下面二元線性方程組的非負最小二乘解,即求的最小二乘解。

其中采用OptimizationToolbox_lsqnonneg函數(shù)編程求解線性方程組非負最小二乘規(guī)劃。程序如下:

clc;clearall;

C=[0.03720.2869

0.68610.7071

0.62330.6245

0.6344

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論