python/C++/matlab三選二復(fù)現(xiàn)題目解法
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-540330.html
國(guó)賽歷年賽題下載地址:全國(guó)大學(xué)生數(shù)學(xué)建模競(jìng)賽 (mcm.edu.cn)
一、概括題目要求,寫出大致思路
此題題目如下,截取一些關(guān)鍵信息:
?
?
整理一下思維導(dǎo)圖,大概是這么一個(gè)過(guò)程?
私以為,
其中第一問(wèn)線性規(guī)劃
第二問(wèn)設(shè)計(jì)全局思路
第三問(wèn)規(guī)劃得出方程
第四問(wèn)單目標(biāo)規(guī)劃列表達(dá)式
第五問(wèn)多目標(biāo)規(guī)劃
這是一個(gè)典型的優(yōu)化問(wèn)題,第二問(wèn)是全局設(shè)計(jì)的靈魂
二、與相關(guān)論文思路進(jìn)行比對(duì)與思路更正
參考了相關(guān)的博文和當(dāng)年的優(yōu)秀論文,發(fā)現(xiàn)自己思考不細(xì)致,也有錯(cuò)漏之處,在此進(jìn)行說(shuō)明
第一問(wèn)兩篇優(yōu)秀博文采用的都是多元線性回歸的方式,原因是數(shù)據(jù)太多,沒(méi)有變量數(shù)據(jù),可以直接通過(guò)數(shù)據(jù)擬合方程。
第二問(wèn)主要就是語(yǔ)言表述,定下解決問(wèn)題的方案,需要利用費(fèi)用分?jǐn)偡?,或者是自己建立蘇納法
第三問(wèn)是單目標(biāo)規(guī)劃模型,需要建立兩個(gè)模型,一個(gè)是阻塞費(fèi)用計(jì)算模型,一個(gè)是可消除輸電阻塞的調(diào)整方案的非線性規(guī)劃模型
第四問(wèn)我們加入了安全裕度輸電的非線性規(guī)劃模型,給出安全與經(jīng)濟(jì)約束下的調(diào)整模型,這是一個(gè)多目標(biāo)規(guī)劃模型
第五問(wèn)其實(shí)是對(duì)第三問(wèn)第四問(wèn)解法的驗(yàn)證與補(bǔ)充,為此我們需要再建立一個(gè)拉閘限電模型,防止用其他模型也找不到輸電阻塞的出力分配方案
我們發(fā)掘有如下幾個(gè)難點(diǎn):
1.八個(gè)機(jī)組和六個(gè)各線路潮流值的關(guān)系
2.由段容量確定段價(jià)
3.由段價(jià)求出清算價(jià)
4.讀懂輸電阻塞規(guī)則
三、復(fù)現(xiàn)論文解法
matlab版:
第一問(wèn):多元線性回歸
所謂多元線性回歸,其實(shí)就是數(shù)據(jù)擬合之后進(jìn)行統(tǒng)計(jì)分析。我們需要找到表一和表二數(shù)據(jù)之間的關(guān)系,因?yàn)槭且笥泄Τ绷鲗?duì)各發(fā)電機(jī)組出力的表達(dá)式,我們可以列6個(gè)式子,其中每個(gè)式子具有8個(gè)參數(shù)。這里我們采用regress()進(jìn)行擬合。
?
?
可以看出我們兩個(gè)表格都是有32個(gè)方案,方案0屬于對(duì)照組,可以用它來(lái)進(jìn)行驗(yàn)證。
我們可以把兩個(gè)表格合在一起分析。y是各線路的有功潮流值,x1到x8代表8個(gè)機(jī)組,系數(shù)由這32個(gè)方案決定。下面的代碼是算y1時(shí)列的,其他同理。
clc;
clear all;
data1=xlsread('2004_b1.xlsx');
x1=xlsread('2004_b1.xlsx','B3:B34');
x2=xlsread('2004_b1.xlsx','C3:C34');
x3=xlsread('2004_b1.xlsx','D3:D34');
x4=xlsread('2004_b1.xlsx','E3:E34');
x5=xlsread('2004_b1.xlsx','F3:F34');
x6=xlsread('2004_b1.xlsx','G3:G34');
x7=xlsread('2004_b1.xlsx','H3:H34');
x8=xlsread('2004_b1.xlsx','I3:I34');
y=xlsread('2004_b2.xlsx','B3:B34');
%在這里各個(gè)機(jī)組之間其實(shí)是互不影響的,所以沒(méi)必要計(jì)算具有交互效應(yīng)項(xiàng)的線性模型的回歸系數(shù)(向量點(diǎn)乘),這里列下式子不予運(yùn)行
%X1=[ones(size(x1)) x1 x2 x1.*x2];
%X2=[ones(size(x3)) x3 x4 x3.*x4];
%X3=[ones(size(x5)) x5 x6 x5.*x6];
%X4=[ones(size(x5)) x7 x8 x7.*x8];
%但各個(gè)方案之間是影響的,所以要計(jì)算它們之間的回歸系數(shù)
X1=[ones(32,1),x1];
X2=[ones(32,1),x2];
X3=[ones(32,1),x3];
X4=[ones(32,1),x4];
X5=[ones(32,1),x5];
X6=[ones(32,1),x6];
X7=[ones(32,1),x7];
X8=[ones(32,1),x8];
b1=regress(y,X1);
b2=regress(y,X2);
b3=regress(y,X3);
b4=regress(y,X4);
b5=regress(y,X5);
b6=regress(y,X6);
b7=regress(y,X7);
b8=regress(y,X8);
b_1=[b1(1)+b2(1)+b3(1)+b4(1)+b5(1)+b6(1)+b7(1)+b8(1)]/8
x1fit = min(x1):32:max(x1);
x2fit = min(x2):32:max(x2);
x3fit = min(x3):32:max(x3);
x4fit = min(x4):32:max(x4);
x5fit = min(x5):32:max(x5);
x6fit = min(x6):32:max(x6);
x7fit = min(x7):32:max(x7);
x8fit = min(x8):32:max(x8);
YFIT = b_1 + b1(2)*x1fit + b2(2)*x2fit +b3(2)*x3fit + b4(2)*x4fit+b5(2)*x5fit + b6(2)*x6fit +b7(2)*x7fit + b8(2)*x8fit
算出的擬合式子為:
?另外四個(gè)式子也是這么列出來(lái)的
我發(fā)現(xiàn)算出的結(jié)果其實(shí)比方案0的值大,比如說(shuō)方案0中,線路1的值是160,但我們算出來(lái)的總結(jié)果是200。對(duì)照示例論文中的式子發(fā)現(xiàn)是b_1值偏差比較大,但我也沒(méi)想到解決方式,因?yàn)槔響?yīng)來(lái)說(shuō)b1(1)到b8(1)的值都比120大,但我發(fā)現(xiàn)示例論文的b_1值居然才110多,所以一直沒(méi)想懂哪出現(xiàn)了問(wèn)題,歡迎評(píng)論區(qū)指正
算出的結(jié)果與方案0結(jié)果比較:
方案0:
算出的結(jié)果:
通道數(shù)(潮流值) | 1 | 2 | 3 | 4 | 5 | 6 |
算出的結(jié)果 | 200.2359 ?204.0222 | 142.6112 ?140.0648 | ?-156.7545 -162.9327 | 145.2540 ?150.3254 | 138.7074 ?136.4516 | 183.3939 ?188.6894 |
?
之后還會(huì)補(bǔ)充文章繼續(xù)復(fù)現(xiàn),敬請(qǐng)期待文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-540330.html
?
到了這里,關(guān)于復(fù)現(xiàn)國(guó)賽數(shù)學(xué)建模題目解法第一彈——2004年B題:電力市場(chǎng)的輸電阻塞管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!