无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【科研小技巧】——多自變量目標(biāo)函數(shù)求最小值,matlab非線性規(guī)劃函數(shù)fmincon使用方法

2022-06-04 20:25 作者:ACK阿薩卡  | 我要投稿

最近搞科研遇到了一個(gè)問(wèn)題,描述如下:

對(duì)于自變量x1,x2,已知x1∈(0,1),x2∈(0,x1),且有f=f(x1,x2),如何求解f(x1,x2)對(duì)應(yīng)的最小值?

最早我用的辦法就是遍歷的方法,利用兩個(gè)for循環(huán)嵌套的方式,求解該函數(shù)的最小值,但這種方法計(jì)算速度很慢,效率低下。

那么如何快速求解上述問(wèn)題呢?在與辦公室大佬的交流中,我得知了fmincon函數(shù),這也令我如獲至寶。

fmincon這個(gè)函數(shù)的使用方法百度有很多教程有教學(xué),我也簡(jiǎn)單記錄一下。

非線性規(guī)劃函數(shù)fmincon調(diào)用形式如下:

[x,fval] = fmincon(fun ,x0 ,A ,b ,Aeq ,Beq ,LB ,UB ,nonicon)

其中:

(1)x為求解函數(shù)的最小值,fun為目標(biāo)函數(shù)

fun函數(shù)寫(xiě)成句柄的函數(shù)形式

例如:fun=@(x)?x(1)^2+x(2)^2+8;

(2)x0為自變量初始估值

如有兩個(gè)自變量估值x1,x2應(yīng)寫(xiě)成[x1; x2],注意這里是用分號(hào)隔開(kāi)

(2)A,b為線性不等式約束

如果不等式約束有:

x1+x2<1

x1+2*x2<10

則這里的A為自變量系數(shù),即為[1,1; 1,2],不同的不等式約束之間用分號(hào)連接

b為小于號(hào)右邊數(shù),即為[1;10]

(3)Aeq,beq為線性等式約束

如果等式約束有:

x1 + x2 =?5

x1 + 2*x2 = 15

則這里的Aeq為自變量系數(shù),即為[1,1; 1,2],不同的不等式約束之間用分號(hào)連接

beq為等于號(hào)右邊數(shù),即為[5;15]

(4)LB,UB分別為自變量x1,x2上下限

如果x1和x2分別滿足

0<x1,x2<1

則這里L(fēng)B = [0,0],UB=[1,1]

(5)nonlincon是非線性約束

這里需要單獨(dú)將其寫(xiě)成一個(gè)函數(shù)形式,比如非線性約束有:

非線性約束

那么這里可以單獨(dú)寫(xiě)一個(gè)非線性約束的函數(shù)

例如

function [c,ceq] = nonlincon(x)

c = -x(1)^2 +?x(2)????????%一定要保持c ≤ 0 這種形式

ceq = -x(1) - x(2)^2 + 2;

利用fmincon函數(shù),將前述問(wèn)題具體化,可寫(xiě)為:

[x,eval] =?fmincon(fun?,x0?,A?,b?,Aeq?,Beq?,LB?,UB?,nonicon)

fun = @(x) f(x);? ? ? ?%具體函數(shù)形式根據(jù)求解問(wèn)題確定

x0 = [0.5,0.4];

A = [-1,1];

b = 0;

Aeq = [];

Beq = [];

LB = [0,0];

UB = [1,1];

這樣即可求解出目標(biāo)函數(shù)的最小值fval,以及對(duì)應(yīng)的自變量x



【科研小技巧】——多自變量目標(biāo)函數(shù)求最小值,matlab非線性規(guī)劃函數(shù)fmincon使用方法的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
易门县| 巴中市| 都匀市| 枣强县| 南丹县| 郓城县| 广宁县| 呼和浩特市| 广汉市| 兴安县| 达州市| 贞丰县| 呼图壁县| 桐庐县| 得荣县| 陇川县| 文山县| 奉节县| 镇平县| 高邮市| 张北县| 清涧县| 新兴县| 福鼎市| 乌拉特中旗| 彩票| 安义县| 石棉县| 建宁县| 盐亭县| 都安| 安远县| 明星| 彰化县| 高雄县| 兴业县| 浮山县| 桑日县| 长宁区| 鹤山市| 昌平区|