matlab求多元函數(shù)極限(matlab多元約束函數(shù)優(yōu)化)
fseminf是一個(gè)非線性規(guī)劃求解器,可最小化由以下指定的問題:(帶有附加參數(shù)約束):
1.fseminf函數(shù)
x=fseminf(fun,x0,ntheta,seminfcon)x=fseminf(fun,x0,ntheta,seminfcon,A,b)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,選項(xiàng))x=fseminf(problem)[x,fval]=fseminf(___)[x,fval,exitflag,output]=fseminf(___)[x,fval,exitflag,output,lambda]=fseminf(___)b和beq是向量。A和Aeq是矩陣。c(x)、ceq(x)和Ki(x,wi)是返回向量的函數(shù)。f(x)是返回標(biāo)量的函數(shù)。f(x)、c(x)和ceq(x)可以是非線性函數(shù)。向量(或矩陣)Ki(x,wi)0是x和一組附加變量w1,w2,wn的連續(xù)函數(shù)。變量w1,w2,wn是最大長度為2的向量。x、lb和ub可以作為向量或矩陣傳遞;請(qǐng)參閱矩陣參數(shù)。x=fseminf(fun,x0,ntheta,seminfcon)從x0開始,找到滿足seminfcon中定義的ntheta半無限約束的函數(shù)fun的最小值。x=fseminf(fun,x0,ntheta,seminfcon,A,b)還嘗試滿足線性不等式A*xb。x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq)也會(huì)最小化,從而滿足線性方程Aeq*x=beq。如果不存在不等式,則設(shè)A=[]且b=[]。x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub)定義x中設(shè)計(jì)變量的一組下限和上限,使得解始終在lbx范圍內(nèi)ub。[x,fval,exitflag,output]=fseminf(___)還返回描述退出條件的值exitflag以及提供有關(guān)優(yōu)化過程的信息的結(jié)構(gòu)輸出。[x,fval,exitflag,output,lambda]=fseminf(___)返回一個(gè)結(jié)構(gòu)體lambda,其字段包含解x處的拉格朗日乘子。x=fseminf(fun,x0,ntheta,seminfcon,A,b,Aeq,beq,lb,ub,options)使用options指定的優(yōu)化選項(xiàng)執(zhí)行最小化。使用optimoptions來設(shè)置這些選項(xiàng)。x=fseminf(problem)求problem的最小值,也就是problem中描述的結(jié)構(gòu)。[x,fval]=fseminf(___),對(duì)于上述任何輸入語法,返回解x處目標(biāo)函數(shù)fun的值。2.實(shí)例1
程序
clc;全部清除;objfun=@(x)(x-1)^2;%匿名函數(shù)x0=0.2;%設(shè)置初始點(diǎn)x0=0.2。ntheta=1;%指定半無限約束。A=[];b=[];Aeq=[];貝q=[];磅=0;ub=2;選項(xiàng)=optimoptions(fseminf,PlotFcn,optimplotfval,顯示,iter,MaxIterations,1000);[x,fval,exitflag,output,lambda]=fseminf(objfun,x0,ntheta,@seminfcon,A,b,Aeq,beq,lb,ub,options)%解決問題并通過調(diào)用fseminf查看結(jié)果。x1=fseminf(objfun,x0,ntheta,@seminfcon)seminfcon.m函數(shù)
function[c,ceq,K1,s]=seminfcon(x,s)c=[];%非線性不等式約束ceq=[];%非線性等式約束%t初始采樣間隔(步長為0.01,采樣間隔為0到1)如果isnan(s)s=[0.010];結(jié)束時(shí)間=0:s(1):1;%和半無限約束函數(shù)g(x,t)K1=(x-0.5)-(t-0.5).^2;最終運(yùn)行結(jié)果
最大線性搜索定向一階迭代F計(jì)數(shù)f(x)約束步長導(dǎo)數(shù)最優(yōu)性過程020.64-0.2140.254.684e-121-1.60.3發(fā)現(xiàn)滿足約束的局部最小值。優(yōu)化完成,因?yàn)槟繕?biāo)函數(shù)在可行方向上不遞減,在最優(yōu)容差值內(nèi),并且在約束容差值內(nèi)滿足約束。停止標(biāo)準(zhǔn)詳細(xì)信息x=0.5000fval=0.2500exitflag=1輸出=struct:iterations:包含以下字段2funcCount:4lssteplength:1stepsize:4.6841e-12Algorithm:活動(dòng)集firstorderopt:9.3682e-12constrviolation.6841e-12message:局部最小值發(fā)現(xiàn)滿足約束條件。優(yōu)化已完成,因?yàn)槟繕?biāo)函數(shù)在可行方向上不遞減,在最優(yōu)容差值內(nèi),并且滿足約束條件,在約束容差值內(nèi)。停止條件詳細(xì)信息優(yōu)化已完成:一階最優(yōu)性度量9.e-12小于options.OptimalityTolerance=1.e-06,最大約束違規(guī)4.e-12小于options.ConstraintTolerance=1.e-06.lambda=struct:包含以下字段lower:0upper:0eqlin:[01double]eqnonlin:[01double]ineqlin:[01double]ineqnonlin:[10double]發(fā)現(xiàn)滿足約束的局部最小值。優(yōu)化完成,因?yàn)槟繕?biāo)函數(shù)在可行方向上不遞減,在最優(yōu)容差值內(nèi),并且在約束容差值內(nèi)滿足約束。停止標(biāo)準(zhǔn)詳細(xì)信息x1=0.50003.實(shí)例2
方式一目標(biāo)函數(shù)以匿名函數(shù)形式計(jì)算
程序
clc;全部清除;objfun=@(x)-0.225*(x(1))-0.225*(x(2))-0.1*(x(3));x0=[0.50.51];恩西塔=1;A=[1,21;3,40;5,60];b=[10;20;30];Aeq=[1,2,3;2,4,1];beq=[10;20];磅=[00-inf];ub=[];選項(xiàng)=optimoptions(fseminf,PlotFcn,optimplotfval,顯示,iter,MaxIterations,1000);x=fseminf(objfun,x0,ntheta,@seminfcon1,A,b,Aeq,beq,lb,ub,options)seminfcon1.m函數(shù)
function[c,ceq,K1,s]=seminfcon1(x,s)c=[];%非線性不等式約束ceq=[];%非線性等式約束%t初始采樣間隔(步長為0.01,采樣間隔為0到1)如果isnan(s)s=[0.010];結(jié)束t(1,)=0:s(1):1;t(2,)=1-t(1);num=長度(t(1,));t(3,)=linspace(-5,5,num);t(4,)=linspace(-5,5,num);t(5,)=linspace(-5,5,num);保存t%和半無限約束函數(shù)g(x,t)K1=(0.48-0.225).*(t(1,)-x(1))+(0.51-0.225).*(t(2,)-x(2))-0.1*(t(3,)-x(3))-t(4,)-t(5,)*0.5;最終運(yùn)行結(jié)果
最大線性搜索定向一階迭代F計(jì)數(shù)f(x)約束步長導(dǎo)數(shù)最優(yōu)性過程04-0.不可行起始點(diǎn)18-4..981-0.1355.89不可行收斂到不可行點(diǎn)。fseminf停止,因?yàn)楫?dāng)前搜索方向的大小小于步長容差值的兩倍,但約束條件未滿足在約束容差值內(nèi)。停止標(biāo)準(zhǔn)詳細(xì)信息x=28.4915-9..0000方式二目標(biāo)函數(shù)以函數(shù)句柄計(jì)算
程序
clc;全部清除;x0=[0.50.51];恩西塔=1;A=[1,21;3,40;5,60];b=[10;20;30];2,3;2,4,1];貝q=[10;20];磅=[00-inf];ub=[];選項(xiàng)=optimoptions(fseminf,PlotFcn,optimplotfval,顯示,iter,MaxIterations,1000);x=fseminf(@myfun,x0,ntheta,@seminfcon1,A,b,Aeq,beq,lb,ub,options)seminfcon1.m函數(shù)
function[c,ceq,K1,s]=seminfcon1(x,s)c=[];%非線性不等式約束ceq=[];%非線性等式約束%t初始采樣間隔(步長為0.01,采樣間隔為0到1)如果isnan(s)s=[0.010];結(jié)束t(1,)=0:s(1):1;t(2,)=1-t(1);num=長度(t(1,));t(3,)=linspace(-5,5,num);t(4,)=linspace(-5,5,num);t(5,)=linspace(-5,5,num);保存t%和半無限約束函數(shù)g(x,t)K1=(0.48-0.225).*(t(1,)-x(1))+(0.51-0.225).*(t(2,)-x(2))-0.1*(t(3,)-x(3))-t(4,)-t(5,)*0.5;endmyfun.m
函數(shù)y=myfun(x)y=-0.225*(x(1))-0.225*(x(2))-0.1*(x(3));最終運(yùn)行結(jié)果
最大線性搜索定向一階迭代F計(jì)數(shù)f(x)約束步長導(dǎo)數(shù)最優(yōu)性過程04-0.不可行起始點(diǎn)18-4..981-0.1355.89不可行收斂到不可行點(diǎn)。fseminf停止,因?yàn)楫?dāng)前搜索方向的大小小于步長容差值的兩倍,但約束條件未滿足在約束容差值內(nèi)。停止條件詳細(xì)信息x=28.4915-9..0000fseminf停止原因,以整數(shù)形式返回。
標(biāo)識(shí)
闡明
1
該函數(shù)收斂到解x。
4
搜索方向的模數(shù)小于指定的容差,并且約束違規(guī)小于options.ConstraintTolerance。
5
方向?qū)?shù)的大小小于指定的容差,并且約束違規(guī)小于options.ConstraintTolerance。
0
迭代次數(shù)超過options.MaxIterations或函數(shù)計(jì)算次數(shù)超過options.MaxFunctionevaluations。
-1
由輸出函數(shù)或繪圖函數(shù)停止。
-2
找不到可行點(diǎn)。
4.參考內(nèi)容
[1
作者|郭志龍
編輯|郭志龍
校對(duì)|郭志龍
相關(guān)資訊
- 死磕這100個(gè)經(jīng)典短語是什么(死磕這100個(gè)經(jīng)典短語)
- 澳洲留學(xué)移民專業(yè)列表(information system 澳洲移民專業(yè))
- 向量以及向量的運(yùn)算入門知識(shí)點(diǎn)(向量以及向量的運(yùn)算入門知識(shí)點(diǎn)總結(jié))
- 如何windows激活(怎么激活windows1)
- 四人賽詞組帶拼音題匯總及記憶規(guī)律是什么(四人賽正確詞語)
- 如何評(píng)價(jià)2022年高考數(shù)學(xué)全國乙卷的答案(2021年高考數(shù)學(xué)全國乙卷難嗎)
- 滑塊木板滑動(dòng)摩擦力方向判斷(木板滑動(dòng)摩擦力的高中物理題)
- 新高考英語第一冊(cè)(新版高考英語)_重復(fù)