日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

线性规划Matlab程序(小白向)

發(fā)布時(shí)間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性规划Matlab程序(小白向) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,線性規(guī)劃標(biāo)準(zhǔn)形式

? 所以對(duì)于目標(biāo)函數(shù)為max f(x),我們將其轉(zhuǎn)化為求min -f(x),在結(jié)尾輸出-f(x)即為所求;?

? 對(duì)于A*x>=b,我們將其轉(zhuǎn)化為-A*x<=-b。

??

二,問(wèn)題求解

1,基于求解器

接下來(lái)對(duì)同種題用二-1,二-2分別求解,并做函數(shù)引入和介紹:

利用求解器求解的程序?yàn)?#xff1a;

??

2,基于問(wèn)題求解

這里要用到優(yōu)化問(wèn)題的求解函數(shù)OptimizationProblem:

一個(gè)OptimizationProblem?對(duì)象說(shuō)明一個(gè)優(yōu)化問(wèn)題,包括優(yōu)化的變量、約束、目標(biāo)函數(shù)以及目標(biāo)是最大化還是最小化。使用?solve?求解完整的問(wèn)題。

使用?optimproblem?創(chuàng)建一個(gè)?OptimizationProblem?對(duì)象:

prob = optimproblem('ObjectiveSense', 'max')

ObjectiveSense指示最小化或最大化,指定為?'minimize'?或?'maximize',該屬性影響?solve?的運(yùn)行。可以使用短名稱?'min'?表示?'minimize'?或?'max'?表示?'maximize'。

Objective目標(biāo)函數(shù),可以在創(chuàng)建問(wèn)題時(shí)加入目標(biāo)函數(shù),也可以在此后通過(guò)圓點(diǎn)表示法將目標(biāo)函數(shù)加入問(wèn)題中:

prob = optimproblem('Objective',5*brownies + 2*cookies) % or prob = optimproblem; prob.Objective = 5*brownies + 2*cookies

OptimizationConstraint優(yōu)化約束,可以在創(chuàng)建問(wèn)題時(shí)加入約束,或之后通過(guò)圓點(diǎn)表示法將約束加入問(wèn)題中:

constrs = struct('TrayArea',10*brownies + 20*cookies <= traysize,...'TrayWeight',12*brownies + 18*cookies <= maxweight); prob = optimproblem('Constraints',constrs) % or prob.Constraints.TrayArea = 10*brownies + 20*cookies <= traysize prob.Constraints.TrayWeight = 12*brownies + 18*cookies <= maxweight

對(duì)例題(1.1)基于問(wèn)題的求解方法:

clc, clear prob = optimproblem('ObjectiveSense', 'max') c = [4;3]; b = [10;8;7]; a = [2,1;1,1;0,1]; lb = zeros(2,1); x = optimvar('x',2,'LowerBound',0); %定義兩個(gè)變量x1,x2,LowerBound下限為0,等價(jià)于題目中最后一個(gè)約束 prob.Objective = c'*x; %目標(biāo)函數(shù) prob.Constraints.con = a*x<=b; %約束 [sol, fval, flage, out] = solve(prob) %用solve求解,fval為結(jié)果 sol.x %顯示決策變量x1,x2的值

基于問(wèn)題求解可以用來(lái)解決大多的線性規(guī)劃問(wèn)題,而且他的約束,目標(biāo)函數(shù)等表達(dá)的形式有很多,在此不再一一列舉,都是基于基礎(chǔ)的語(yǔ)法,大家可以多看代碼,有自己的風(fēng)格就好,其實(shí)花哨的格式都是一個(gè)目的。

三,可轉(zhuǎn)化為線性規(guī)劃的問(wèn)題

clc, clear c = [1:4]'; b = [-2,-1,-1/2]'; a = [1,-1,-1,1;1,-1,1,-3;1,-1,-2,3]; prob = optimproblem; %默認(rèn)求max u = optimvar('u',4,'LowerBound',0); v = optimvar('v',4,'LowerBound',0); prob.Objective = sum(c'*(u+v)); prob.Constraints.con = a*(u-v)<=b; [sol,fval,flag,out]=solve(prob) x = sol.u - sol.v

? 博客首發(fā)哈哈,博主也是暑假正式接觸數(shù)學(xué)建模擔(dān)任編程手,小白一名。想記錄一下所學(xué)避免忘記,也希望能幫到大家。有問(wèn)題歡迎評(píng)論區(qū)交流呀~

總結(jié)

以上是生活随笔為你收集整理的线性规划Matlab程序(小白向)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。