国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Yalmip入門教程(1)-入門學(xué)習(xí)

這篇具有很好參考價(jià)值的文章主要介紹了Yalmip入門教程(1)-入門學(xué)習(xí)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

? ? ? ? 博客中所有內(nèi)容均來(lái)源于自己學(xué)習(xí)過(guò)程中積累的經(jīng)驗(yàn)以及對(duì)yalmip官方文檔的翻譯:YALMIP

1.Yalmip工具箱的下載與安裝

1.1下載

????????Yalmip的作者是Johan L?fberg,是由Matlab平臺(tái)編程實(shí)現(xiàn)的一個(gè)免費(fèi)開(kāi)源數(shù)學(xué)優(yōu)化工具箱,在官網(wǎng)上就可以下載。官方下載鏈接如下:
Download - YALMIP

????????下載時(shí)可以選擇最新版本或者舊版本(如果使用的Matlab版本比較舊,有可能與最新版Yalmip工具箱不兼容,這時(shí)候就可以選擇下載舊版本的Yalmip)

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

圖1 Yalmip工具箱下載

1.2安裝

????????Yamlip工具箱所有功能都是基于m文件實(shí)現(xiàn)的,因此安裝過(guò)程實(shí)際上就是把Yalmip工具箱的路徑添加到Matlab平臺(tái)中,具體安裝方式有以下幾種:

????????1)手動(dòng)添加路徑

????????第一步,將下載的壓縮包解壓,然后把解壓后的文件夾放在Matlab路徑中的toolbox中(也可以隨便放在其他的文件夾中,只要保證該文件夾不會(huì)被刪除,被移動(dòng)即可)。

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

????????第二步,將Yalmip工具箱添加到Matlab的路徑中。

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程?圖2?Matlab手動(dòng)添加路徑示意

????????2)使用addpath(genpath(pwd))命令

????????pwd表示當(dāng)前路徑,這個(gè)命令表示將當(dāng)前文件夾下的所有子文件夾都添加到Matlab的路徑中。首先使用時(shí)首先將下載的壓縮包解壓,然后把解壓后的文件夾放在Matlab路徑中的toolbox中(也可以隨便放在其他的文件夾中,只要保證該文件夾不會(huì)被刪除,被移動(dòng)即可)。然后使用addpath(genpath(pwd))命令,并將其中的pwd修改為對(duì)應(yīng)的路徑即可,例如:

addpath(genpath(‘D:\Program Files\MATLAB\R2016b\toolbox\YALMIP-master’))

1.3測(cè)試

????????安裝成功后,可以使用yalmiptest函數(shù)測(cè)試是否安裝成功。使用時(shí)在命令行輸入yalmiptest并回車,Yalmip會(huì)自動(dòng)求解一組優(yōu)化問(wèn)題來(lái)測(cè)試工具箱是否安裝成功(中間有一段需要輸入任意內(nèi)容并回車,才能繼續(xù)測(cè)試):

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

圖3?Yalmip測(cè)試結(jié)果

????????如果和圖3的求解結(jié)果一樣,除了三個(gè)無(wú)解的問(wèn)題,都顯示”successfully solved”,表示工具箱可以正常使用了。但是,在求解優(yōu)化問(wèn)題時(shí),Yalmip其實(shí)相當(dāng)于“中間商”的地位,只是將各類求解器不同的數(shù)學(xué)建模方式修改為統(tǒng)一的形式,真正求解優(yōu)化問(wèn)題的還是那些求解器。工具箱中已經(jīng)內(nèi)置了一些免費(fèi)的求解器,可以求解簡(jiǎn)單的優(yōu)化問(wèn)題,但針對(duì)復(fù)雜問(wèn)題這些求解器的性能可能不是很好,這時(shí)候就需要功能更強(qiáng)大的商業(yè)求解器了。具有學(xué)術(shù)免費(fèi)版的商業(yè)求解器主要有Gurobi、Cplex、Mosek,它們的下載地址和優(yōu)缺點(diǎn)如表1所示:

表1 常用的學(xué)術(shù)免費(fèi)版商業(yè)求解器

求解器

官網(wǎng)地址

優(yōu)點(diǎn)

缺點(diǎn)

Gurobi

http://www.gurobi.com

1.集成了啟發(fā)式算法

2.MILP求解性能排名前列

3.有官方中文網(wǎng)站,學(xué)術(shù)許可證申請(qǐng)容易

4.學(xué)術(shù)版沒(méi)有規(guī)模限制

1.學(xué)術(shù)許可證只有一年有效,到期需要重新申請(qǐng)

2.使用人數(shù)較少,遇到問(wèn)題時(shí)通過(guò)檢索不容易找到答案

Cplex

IBM Products

1.擁有自己的建模環(huán)境?Ilog,也支持Java、C++、C?等語(yǔ)言

2.目前使用人數(shù)最多,通過(guò)檢索較容易找到相關(guān)問(wèn)題的解答

免費(fèi)版和學(xué)術(shù)版都有規(guī)模限制,無(wú)法求解大規(guī)模問(wèn)題

Mosek

http://www.mosek.com

內(nèi)點(diǎn)法性能比較好,解SOCP、SDP等錐優(yōu)化性能最優(yōu)。

學(xué)術(shù)許可申請(qǐng)比較麻煩,需要學(xué)校郵箱支持

2.Yalmip使用方法介紹

????????使用Yalmip工具箱包括定義變量、定義約束條件、定義目標(biāo)函數(shù)、定義求解器選項(xiàng)、求解優(yōu)化問(wèn)題以及檢查優(yōu)化結(jié)果并獲取優(yōu)化問(wèn)題的解。下面的代碼是Yalmip官方給出的示例,包括了上述所有步驟(PS:下文代碼選擇的求解器為cplex,如果沒(méi)有安裝cplex,只需在定義options時(shí)刪除該求解器的設(shè)置,Yalmip將自動(dòng)選擇其他已安裝的求解器):

% 定義變量
x = sdpvar(10,1);

% 設(shè)置約束條件
Constraints = [sum(x) <= 10, x(1) == 0, 0.5 <= x(2) <= 1.5];
for i = 1 : 7
  Constraints = [Constraints, x(i) + x(i+1) <= x(i+2) + x(i+3)];
end

% 定義目標(biāo)函數(shù)
Objective = x'*x + norm(x,1);

% 使用options結(jié)構(gòu)體來(lái)為YALMIP和所需求解器指定優(yōu)化參數(shù)
options = sdpsettings('verbose',1,'solver','cplex');

% 將約束條件、目標(biāo)函數(shù)和選項(xiàng)作為輸入傳遞給優(yōu)化函數(shù),進(jìn)行問(wèn)題求解
sol = optimize(Constraints,Objective,options);

% 獲取最終解或進(jìn)行錯(cuò)誤分析
if sol.problem == 0
 % 獲取解的值
 disp(‘求解成功’)
 solution = value(x);
else
 disp('出錯(cuò)了!');
 sol.info
 yalmiperror(sol.problem)
end

????????下面將對(duì)以上步驟分別進(jìn)行介紹。

2.1定義決策變量

????????工具箱中定義決策變量的命令包括Binvar,blkvar,intvar,sdpvar和semivar,這里僅介紹sdpvar的用法,其余命令和sdpvar的用法相似。

????????sdpvar用于定義連續(xù)型的決策變量,其基本語(yǔ)法如下:

x = sdpvar(n)

x = sdpvar(n,m)

x = sdpvar(n,m,'type')

x = sdpvar(n,m,'type','field')

x = sdpvar(dim1,dim2,dim3,...,dimn,'type','field')

sdpvar x

????????例如定義一個(gè)n行m列決策變量P的方法如下:

P = sdpvar(n,m);

????????需要注意的是,使用sdpvar定義決策變量時(shí),若決策變量為方陣,則默認(rèn)其為對(duì)稱陣(如果使用sdpvar定義了方陣x,則x(i,j) = x(j,i))。

????????例如,定義一個(gè)3行3列決策變量P的語(yǔ)法如下:

P = sdpvar(3,3);

????????這時(shí)候變量P默認(rèn)為一個(gè)對(duì)稱矩陣,也就是P(1,2) = P(2,1),P(1,3) = P(3,1),P(2,3) = P(3,2)。如果需要定義一個(gè)不對(duì)稱的變量P,則需要添加’full’,語(yǔ)法如下:

P = sdpvar(3,3,’full’);

????????定義矩陣時(shí)沒(méi)有添加參數(shù)’full,導(dǎo)致變量默認(rèn)為方陣,這是初學(xué)Yalmip工具箱最容易犯一個(gè)錯(cuò)誤,需要留意?。。。∥覀兒芏鄷r(shí)候定義變量時(shí),維度都是不確定的,為了避免出錯(cuò),就可以在不需要定義對(duì)稱矩陣時(shí),都添加參數(shù)full。

????????另外一點(diǎn)需要說(shuō)明的是,Matlab中對(duì)于標(biāo)量和矩陣的絕大部分函數(shù)都可以用于sdpvar類型變量,記住這一點(diǎn)可以簡(jiǎn)化很多代碼量。

????????例如:

x = sdpvar(1,6);

len_x = length(x)

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

????????對(duì)于sdpvar類型變量,建模時(shí)其他常用的命令還有diag、eye、end等等,這就需要在使用過(guò)程中慢慢地嘗試。定義決策變量的更多內(nèi)容將在后文進(jìn)行介紹。

2.2定義約束條件

????????Yalmip工具箱中可以非常方便的定義約束條件,針對(duì)決策變量使用約束條件定義函數(shù)或約束條件定義運(yùn)算符即可表示一個(gè)約束條件。最常用的約束條件定義運(yùn)算符包括’>=’、’<=’、’==’,分別表示大于等于、小于等于和等于。

????????例如,假設(shè)二維決策變量x的約束條件包括:

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

????????上面的式子實(shí)際上包含三個(gè)約束條件,可以分別寫成:

x = sdpvar(1,2);
C1 = [x(1) >= 1];
C2 = [x(1) <= 2];
C3 = [x(2) == 3];

????????將每個(gè)約束條件通過(guò)矩陣拼接或者使用’+’相加的方式連接在一起,便可以組合多個(gè)約束條件。

C = [C1 , C2 , C3];

????????或者

C_dot = C1 + C2 + C3;

????????兩種表達(dá)方式是完全等價(jià)的。上面的例子中,變量x1的約束是一個(gè)連續(xù)不等式,也可以同時(shí)進(jìn)行定義,方式如下:

C4 = [1 <= x(1) <= 2];

????????需要注意的是,Yalmip中不支持嚴(yán)格的不等式約束(也就是不含等號(hào)的不等式),如果使用了嚴(yán)格的不等號(hào),將會(huì)收到非常經(jīng)典的Yalmip“貓貓警告”,例如,運(yùn)行下面這份代碼,將會(huì)彈出如圖4的警告:

x = sdpvar(1,2);

C1 = [x(1) > 1];

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

圖4?嚴(yán)格不等號(hào)收到的錯(cuò)誤提示

????????除了最常用的約束條件定義運(yùn)算符包括’>=’、’<=’、’==’之外,Yalmip中還支持使用其他命令定義約束,如alldifferent, ?binary,? complements,? cone,? cut,? expcone,? iff,? implies,? integer,? ismember等等,將在后文進(jìn)行詳細(xì)介紹。

2.3定義目標(biāo)函數(shù)

????????Yalmip優(yōu)化時(shí)默認(rèn)的目標(biāo)函數(shù)是取最小值。如果目標(biāo)函數(shù)是取最大值,在目標(biāo)函數(shù)前加上一個(gè)負(fù)號(hào)就可以了。

????????例如,有兩個(gè)不同的目標(biāo)函數(shù)分別為:

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

定義這兩個(gè)目標(biāo)函數(shù)的代碼如下:

x = sdpvar(1,2);
f1 = x(1)^2 + 3*x(2);
f2 = -(x(1)^3 + 2*x(2)^2);

2.4設(shè)置求解參數(shù)

????????使用sdpsettings函數(shù)可以對(duì)求解的相關(guān)參數(shù)進(jìn)行設(shè)置。最常用的設(shè)置選項(xiàng)包括求解器的選擇(solver)、命令行結(jié)果展示的詳細(xì)程度(verbose)與步驟展示(showprogress)。例如,下面的代碼就是將求解器選擇為cplex,結(jié)果展示的詳細(xì)程度為0(最少的命令行展示,最大值為3),不顯示步驟(showprogress為0):

ops = sdpsettings('solver','cplex','verbose',0,'showprogress',0);

????????也可以先對(duì)選項(xiàng)結(jié)構(gòu)體進(jìn)行賦值,然后通過(guò)結(jié)構(gòu)體操作修改具體選項(xiàng)的內(nèi)容,例如:

ops = sdpsettings;
ops.solver?= cplex;
ops.verbose = 0;
ops.showprogress = 0;

????????Yalmip求解的參數(shù)非常多,如果想要查看完整的參數(shù),可以先定義一個(gè)默認(rèn)的參數(shù)選項(xiàng)ops,然后在工作區(qū)或者命令行查看該結(jié)構(gòu)體的內(nèi)容:

>> ops

ops =

??包含以下字段的 struct:

???????????????????solver: ''

??????????????????verbose: 1

????????????????????debug: 0

????????????????????usex0: 0

??????????????????warning: 1

?????????????cachesolvers: 0

?????????????showprogress: 0

????????????????saveduals: 1

?????????removeequalities: 0

?????????savesolveroutput: 0

??????????savesolverinput: 0

??????????saveyalmipmodel: 0

????????convertconvexquad: 1

????assertgpnonnegativity: 1

?????????????thisisnotagp: 0

???????????????????radius: Inf

????????????????????relax: 0

??????????????????dualize: 0

????????????????savedebug: 0

???????????????????expand: 1

????????????????allowmilp: 1

???????????allownonconvex: 1

????????????????????shift: 0

???????????????????dimacs: 0

????????????beeponproblem: [-5 -4 -3 -2 -1]

????????????mosektaskfile: ''

????????????????bisection: [1×1 struct]

??????????????????bilevel: [1×1 struct]

???????????????????bmibnb: [1×1 struct]

??????????????????????bnb: [1×1 struct]

???????????????????cutsdp: [1×1 struct]

??????????????????????kkt: [1×1 struct]

???????????????????moment: [1×1 struct]

???????????????????????mp: [1×1 struct]

????????????????????mpcvx: [1×1 struct]

?????????????????????plot: [1×1 struct]

???????????????????robust: [1×1 struct]

??????????????????????sos: [1×1 struct]

??????????????????refiner: [1×1 struct]

????????????????????baron: []

?????????????????bintprog: [1×1 struct]

???????????????????bonmin: []

?????????????????????cdcs: [1×1 struct]

??????????????????????cdd: [1×1 struct]

??????????????????????cbc: [1×1 struct]

??????????????????????clp: [1×1 struct]

????????????????????cplex: [1×1 struct]

?????????????????coneprog: []

?????????????????????csdp: [1×1 struct]

?????????????????????dsdp: [1×1 struct]

?????????????????????ecos: []

?????????????????filtersd: [1×1 struct]

??????????????????fmincon: [1×1 struct]

???????????????fminsearch: [1×1 struct]

????????????????????frlib: [1×1 struct]

?????????????????????glpk: [1×1 struct]

???????????????????gurobi: [1×1 struct]

????????????????????ipopt: [1×1 struct]

???????????????intlinprog: [1×1 optim.options.Intlinprog]

???????????????????knitro: [1×1 struct]

??????????????????linprog: [1×1 struct]

???????????????????lmilab: [1×1 struct]

??????????????????lmirank: [1×1 struct]

????????????????logdetppa: [1×1 struct]

??????????????????lpsolve: [1×1 struct]

????????????????lsqnonneg: [1×1 struct]

???????????????????lsqlin: [1×1 struct]

?????????????????????kypd: [1×1 struct]

????????????????????kktqp: [1×1 struct]

??????????????????????nag: [1×1 struct]

????????????????????mosek: [1×1 struct]

????????????????????nomad: []

?????????????????????ooqp: []

???????????????????penbmi: [1×1 struct]

???????????????????penlab: []

???????????????????pensdp: [1×1 struct]

??????????????????????pop: [1×1 struct]

??????????????????qpoases: []

?????????????????????osqp: []

????????????????????qsopt: [1×1 struct]

?????????????????quadprog: [1×1 struct]

???????????????quadprogbb: [1×1 struct]

?????????????????????scip: [1×1 struct]

??????????????????????scs: [1×1 struct]

?????????????????????sdpa: [1×1 struct]

????????????????????sdplr: [1×1 struct]

????????????????????sdpt3: [1×1 struct]

???????????????????sdpnal: [1×1 struct]

???????????????????sedumi: [1×1 struct]

????????????????sparsepop: [1×1 struct]

????????????????????snopt: [1×1 struct]

???????????????sparsecolo: [1×1 struct]

?????????????????????vsdp: [1×1 struct]

???????????????????xpress: []

??????????????????default: [1×1 struct]

????????求解參數(shù)設(shè)置的更多內(nèi)容將在后文進(jìn)行介紹,此處不再贅述。

2.5求解優(yōu)化問(wèn)題

????????Yalmip中求解優(yōu)化問(wèn)題用到的函數(shù)為optimize,使用的語(yǔ)法為:

sol?= optimize(Constraints,Objective,options);

????????其中,Constraints表示約束條件,Objective表示目標(biāo)函數(shù),options表示求解的參數(shù)。

????????如果只需要在約束條件中找到?jīng)Q策變量的一組解,就可以省略目標(biāo)函數(shù),例如:

x = sdpvar(1,2);
Constraints = [x <= 3 , x(1) >=?2 , x(2) >= 1];
ops = sdpsettings;
sol = optimize(Constraints);

????????或者將最后一行代碼改為:

sol = optimize(Constraints , [] , ops);

????????就可以在省略目標(biāo)函數(shù)的同時(shí),使用自己定義的求解參數(shù)。想要求解完整的優(yōu)化問(wèn)題,在加上目標(biāo)函數(shù)即可:

x = sdpvar(2,1);
Constraints = [x <= 3 , x(1) >=?2 , x(2) >= 1];
Objective = [1 3]*x;
ops = sdpsettings;
sol = optimize(Constraints , Objective , ops);

????????上面2.3節(jié)提到,因?yàn)閅almip默認(rèn)是求目標(biāo)函數(shù)最小值,所以求最大值時(shí)可以在目標(biāo)函數(shù)前加一個(gè)負(fù)號(hào)。當(dāng)然,也可以在定義目標(biāo)函數(shù)時(shí)保持原有的形式,使用optimize求解時(shí)給目標(biāo)函數(shù)添加負(fù)號(hào),可實(shí)現(xiàn)一樣的效果。

sol = optimize(Constraints , Objective , ops);

2.6檢查并獲取優(yōu)化問(wèn)題的解

????????optimize函數(shù)的返回值sol是一個(gè)包含六個(gè)字段的結(jié)構(gòu)體:

>> sol

sol =

??包含以下字段的 struct:

????yalmipversion: '20210331'

????matlabversion: '9.1.0.441655 (R2016b)'

???????yalmiptime: 0.0851

???????solvertime: 0.0439

?????????????info: 'Successfully solved (GUROBI-GUROBI)'

??????????problem: 0

其中,yalmipversion表示Yalmip工具箱的版本,matlabversion表示Matlab的版本,yalmiptime表示Yalmip的建模時(shí)間,solvertime表示求解器的求解時(shí)間,info表示返回的信息,problem為求解成功的標(biāo)志,0表示求解成功,1表示求解失敗。

????????其中最重要的參數(shù)就是problem和info,可以顯示求解是否成功,以及可能遇到的問(wèn)題。因此通常可以在optimize函數(shù)求解之后再加一部分代碼來(lái)展示是否求解成功和求解失敗的原因:

if sol.problem == 0

?disp('求解成功')

else

?disp('求解失敗,失敗原因?yàn)椋?)

?disp(sol.info)

end

以下的代碼是一個(gè)能求解成功的例子:

x = sdpvar(2,1);

Constraints = [x <= 3 , x(1) >=?2 , x(2) >= 1];

Objective = [1 3]*x;

ops = sdpsettings;

sol = optimize(Constraints , Objective , ops);

if sol.problem == 0

?disp('求解成功')

else disp('求解失敗,失敗原因?yàn)椋?)

?disp(sol.info)

end

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

下面的例子是一個(gè)求解失敗的代碼:

x = sdpvar(2,1);

Constraints = [x <= 1?, x(1) >=?2 , x(2) >= 1];

Objective = [1 3]*x;

ops = sdpsettings;

sol = optimize(Constraints , Objective , ops);

if sol.problem == 0

?disp('求解成功')

else

?disp('求解失敗,失敗原因?yàn)椋?)

?disp(sol.info)

end

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

????????因?yàn)榧s束條件中x1≤1且x1≥2,所以導(dǎo)致優(yōu)化問(wèn)題無(wú)解。

????????在確保優(yōu)化問(wèn)題求解成功的情況下,可以采用value命令或者目標(biāo)函數(shù)或者決策變量的取值,例如:

x = sdpvar(2,1);

Constraints = [x <= 3 , x(1) >= 2 , x(2) >= 1];

Objective = [1 3]*x;

ops = sdpsettings;

sol = optimize(Constraints , Objective , ops);

if sol.problem == 0

????disp('求解成功')

????x1 = value(x(1))

????x2 = value(x(2))

????Objective = value(Objective)

else

????disp('求解失敗,失敗原因?yàn)椋?)

????disp(sol.info)

end

結(jié)果為:

Yalmip入門教程(1)-入門學(xué)習(xí),Yalmip工具箱使用教程,matlab,yalmip,數(shù)學(xué)規(guī)劃,教程

????????表示這個(gè)優(yōu)化問(wèn)題的最優(yōu)解為x1=2,x2=1,目標(biāo)函數(shù)最小值為5。

3.測(cè)試題

3.1測(cè)試1

求如下優(yōu)化問(wèn)題的解

max z=3x1+x2

s.t. x1-x2≥-2

x1-2x2≤3

3x1+2x2≤14

x1≥0, x2≥0

3.2測(cè)試2

????????找出下列代碼中的錯(cuò)誤并修改,使優(yōu)化問(wèn)題可以正常求解:

clc

clear

x = sdpvar(2,2);

Constraints = [x >= 1 , 5 >= x(1,:) >= 3 , 8 >= x(2,:) >= 6];

Objective = sum(x(:));

ops = sdpsettings('solver' , 'BNB' , 'verbose' , 3 , 'showprogress' , 1);

sol = optimize(Constraints , Objective , ops);

if sol.problem == 0

????disp('求解成功')

else

????disp('求解失敗,失敗原因?yàn)椋?)

????disp(sol.info)

end

3.3測(cè)試3

????????某廠生產(chǎn)甲乙兩種口味的飲料,每噸甲飲料需用原料6千克,工人10名,可獲利10萬(wàn)元。每噸乙飲料需用原料5千克,工人20名,可獲利9萬(wàn)元。今工廠共有原料60千克,工人150名,又由于其他條件所限甲飲料產(chǎn)量不超過(guò)8噸。問(wèn)如何安排生產(chǎn)計(jì)劃,即兩種飲料各生產(chǎn)多少使獲利最大?使用Matlab+Yalmip工具箱求解上述問(wèn)題。

3.4測(cè)試題參考答案

????????第一章測(cè)試題的參考答案可以從下面的鏈接中獲?。?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-614603.html

https://download.csdn.net/download/weixin_44209907/88035061文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-614603.html

到了這里,關(guān)于Yalmip入門教程(1)-入門學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MATLAB:Image Processing Toolbox工具箱入門實(shí)戰(zhàn)

    MATLAB:Image Processing Toolbox工具箱入門實(shí)戰(zhàn)

    目錄 1.基本圖像導(dǎo)入、處理和導(dǎo)出 2.實(shí)戰(zhàn)項(xiàng)目一:利用imfindcircles()函數(shù)檢測(cè)和測(cè)量圖像中的圓形目標(biāo) 3.實(shí)戰(zhàn)項(xiàng)目二:圖像增強(qiáng)(預(yù)處理)統(tǒng)計(jì)米粒 4.實(shí)戰(zhàn)項(xiàng)目三:利用Sobel算子進(jìn)行裂紋檢測(cè) 1.基本圖像導(dǎo)入、處理和導(dǎo)出 Basic Image Import, Processing, and Export- MATLAB Simulink This exa

    2024年03月17日
    瀏覽(27)
  • 至尊寶工具箱 - 電商運(yùn)營(yíng)選品必備工具下載安裝詳細(xì)教程

    至尊寶工具箱 - 電商運(yùn)營(yíng)選品必備工具下載安裝詳細(xì)教程

    至尊寶插件是一款電商網(wǎng)絡(luò)瀏覽插件,能夠幫助店主更好地運(yùn)營(yíng)自己的網(wǎng)店,這款插件功能十分全面強(qiáng)大,可以實(shí)現(xiàn)搜主圖、快速商家商品、優(yōu)化商品標(biāo)題等,通過(guò)幫助店家增加曝光量來(lái)增效銷售,感興趣的朋友快來(lái)體驗(yàn)。 1、首先我們先下載該插件 下載鏈接:https://www.her

    2023年04月18日
    瀏覽(1005)
  • ImageJ | 免疫組織化學(xué)(IHC)圖像分析工具箱 | 下載地址 | 安裝教程 | 使用教程

    ImageJ | 免疫組織化學(xué)(IHC)圖像分析工具箱 | 下載地址 | 安裝教程 | 使用教程

    安裝IHC 工具箱,需要安裝ImageJ 1.40或更高版本。你可以使用小編提供的最新版本的ImageJ。(截至發(fā)文前) :::block-1 ImageJ 軟件下載 ImageJ for Windows 鏈接:https://pan.baidu.com/s/1v9pXegaU8Lps0CaT3ZYx2A?pwd=yp23 提取碼:yp23 ImageJ for MacOS(Intel) 鏈接:https://pan.baidu.com/s/1LyBa-fWtfTVLo7OWTF84HA?pwd

    2024年01月17日
    瀏覽(30)
  • 【RTB機(jī)器人工具箱學(xué)習(xí)記錄】軌跡規(guī)劃實(shí)例

    【RTB機(jī)器人工具箱學(xué)習(xí)記錄】軌跡規(guī)劃實(shí)例

    給定位置: 位姿插值: trinterp() trinterp(T0, T1, M) ? T0:初始變換矩陣 ? T1:結(jié)束變換矩陣 ? M: 線性插值軌跡動(dòng)畫:(軌跡如上圖左所示) 五次多項(xiàng)式插值軌跡動(dòng)畫:(軌跡如上圖右所示,和上面用mtraj遍歷方式的軌跡相同) 笛卡爾軌跡 ctraj() : TC = ctraj(T0, T1, N) ? T0:初始變

    2023年04月22日
    瀏覽(37)
  • ChatGP4 的體驗(yàn) 一站式 AI工具箱 -—Poe(使用教程)

    ChatGP4 的體驗(yàn) 一站式 AI工具箱 -—Poe(使用教程)

    界面介紹: 是一個(gè)基于機(jī)器學(xué)習(xí)的聊天機(jī)器人,能夠識(shí)別自然語(yǔ)言并做出智能回答。Sage通過(guò)自然語(yǔ)言處理和對(duì)話管理技術(shù)來(lái)實(shí)現(xiàn)對(duì)話的自然流暢和個(gè)性化,同時(shí)支持多種語(yǔ)言。Sage較為擅長(zhǎng)語(yǔ)言相關(guān)的工作,例如創(chuàng)作文章,做摘要等。 是由開(kāi)放人工智能(OpenAI)公司開(kāi)發(fā)的一

    2024年02月11日
    瀏覽(30)
  • ChatGPT4 的體驗(yàn) 一站式 AI工具箱 -—Poe(使用教程)

    ChatGPT4 的體驗(yàn) 一站式 AI工具箱 -—Poe(使用教程)

    界面介紹: 是一個(gè)基于機(jī)器學(xué)習(xí)的聊天機(jī)器人,能夠識(shí)別自然語(yǔ)言并做出智能回答。Sage通過(guò)自然語(yǔ)言處理和對(duì)話管理技術(shù)來(lái)實(shí)現(xiàn)對(duì)話的自然流暢和個(gè)性化,同時(shí)支持多種語(yǔ)言。Sage較為擅長(zhǎng)語(yǔ)言相關(guān)的工作,例如創(chuàng)作文章,做摘要等。 是由開(kāi)放人工智能(OpenAI)公司開(kāi)發(fā)的一

    2023年04月22日
    瀏覽(31)
  • 【C#學(xué)習(xí)記錄】添加控件后工具箱不顯示是什么原因

    【C#學(xué)習(xí)記錄】添加控件后工具箱不顯示是什么原因

    大家好,我是雷工! 今天在一個(gè)Winform程序中用到將WindowsMediaPlayer控件添加到工具箱,但添加了好幾次,工具箱內(nèi)均無(wú)法顯示,經(jīng)翻找資料和驗(yàn)證確認(rèn)是跟創(chuàng)建項(xiàng)目時(shí)選擇的模板有關(guān),為了遇到同樣問(wèn)題的小伙伴能夠快速解決問(wèn)題,現(xiàn)將問(wèn)題情況記錄如下: 1、VS版本信息:

    2024年02月13日
    瀏覽(17)
  • 基于MATLAB的最小二乘法擬合與擬合工具箱使用教程(附完整代碼與算法)

    基于MATLAB的最小二乘法擬合與擬合工具箱使用教程(附完整代碼與算法)

    給定一組數(shù)據(jù)滿足某一函數(shù)模型,其中a為待定系數(shù)向量。 那么,最小二乘曲線擬合的目標(biāo)就是:求出一組待定系數(shù)的值,使得以下表達(dá)式子最?。?在MATLAB中格式如下: 由以下MATLAB代碼生成一組數(shù)據(jù): 該組數(shù)據(jù)滿足y(x),求出待定系數(shù),使得目標(biāo)函數(shù)的值為最小。 解: MATL

    2024年01月17日
    瀏覽(24)
  • matlab學(xué)習(xí)指南(2):安裝工具箱Toolbox的方法(詳細(xì)圖解)

    matlab學(xué)習(xí)指南(2):安裝工具箱Toolbox的方法(詳細(xì)圖解)

    歡迎來(lái)到饅頭俠的博客,該類目主要講數(shù)學(xué)建模的知識(shí),大家一起學(xué)習(xí),聯(lián)系最后的橫幅! 喜歡的朋友可以關(guān)注下,私信下次更新不迷路! 資源鏈接:點(diǎn)擊這里獲取眾多數(shù)模資料、思路精講、論文模板latex和word、學(xué)習(xí)書籍等 除了使用matlab自帶的工具箱庫(kù)以外,我們還可以安

    2024年02月13日
    瀏覽(30)
  • 從零開(kāi)始學(xué)MATLAB強(qiáng)化學(xué)習(xí)工具箱使用(五):Simulink+強(qiáng)化學(xué)習(xí)設(shè)計(jì)器

    從零開(kāi)始學(xué)MATLAB強(qiáng)化學(xué)習(xí)工具箱使用(五):Simulink+強(qiáng)化學(xué)習(xí)設(shè)計(jì)器

    建立Simulink環(huán)境,導(dǎo)入強(qiáng)化學(xué)習(xí)設(shè)計(jì)器里,添加代理,進(jìn)行訓(xùn)練 首先準(zhǔn)備好你的Simulink模型,這里還用上節(jié)用到的水箱模型。 RL Agent模塊報(bào)錯(cuò)是由于還沒(méi)有給其綁定代理,后續(xù)會(huì)在強(qiáng)化學(xué)習(xí)設(shè)計(jì)器里配置,暫時(shí)不用理會(huì)。 下一步,在MATLAB命令行窗口或腳本里為環(huán)境指定狀態(tài)空

    2024年04月09日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包