機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序

機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序

ID:37059637

大?。?36.50 KB

頁(yè)數(shù):7頁(yè)

時(shí)間:2019-05-15

機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序_第1頁(yè)
機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序_第2頁(yè)
機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序_第3頁(yè)
機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序_第4頁(yè)
機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序_第5頁(yè)
資源描述:

《機(jī)械優(yōu)化設(shè)計(jì)復(fù)合形方法與源程序》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、機(jī)械優(yōu)化設(shè)計(jì)——復(fù)合形方法及源程序(一)題目:用復(fù)合形法求約束優(yōu)化問(wèn)題;;的最優(yōu)解?;舅悸罚涸诳尚杏蛑袠?gòu)造一個(gè)具有K個(gè)頂點(diǎn)的初始復(fù)合形。對(duì)該復(fù)合形各頂點(diǎn)的目標(biāo)函數(shù)值進(jìn)行比較,找到目標(biāo)函數(shù)值最大的頂點(diǎn)(即最壞點(diǎn)),然后按一定的法則求出目標(biāo)函數(shù)值有所下降的可行的新點(diǎn),并用此點(diǎn)代替最壞點(diǎn),構(gòu)成新的復(fù)合形,復(fù)合形的形狀每改變一次,就向最優(yōu)點(diǎn)移動(dòng)一步,直至逼近最優(yōu)點(diǎn)。(二)復(fù)合形法的計(jì)算步驟1)選擇復(fù)合形的頂點(diǎn)數(shù)k,一般取,在可行域內(nèi)構(gòu)成具有k個(gè)頂點(diǎn)的初始復(fù)合形。2)計(jì)算復(fù)合形個(gè)頂點(diǎn)的目標(biāo)函數(shù)值,比較其大小,找出最好點(diǎn)xL、最壞點(diǎn)xH、

2、及此壞點(diǎn)xG..3)計(jì)算除去最壞點(diǎn)xH以外的(k-1)個(gè)頂點(diǎn)的中心xC。判別xC是否可行,若xC為可行點(diǎn),則轉(zhuǎn)步驟4);若xC為非可行點(diǎn),則重新確定設(shè)計(jì)變量的下限和上限值,即令,然后轉(zhuǎn)步驟1),重新構(gòu)造初始復(fù)合形。4)按式計(jì)算反射點(diǎn)xR,必要時(shí)改變反射系數(shù)α的值,直至反射成功,即滿(mǎn)足式。然后xR以取代xH,構(gòu)成新的復(fù)合形。5)若收斂條件得到滿(mǎn)足,計(jì)算終止。約束最優(yōu)解為:。(三)復(fù)合形法程序框圖見(jiàn)下圖:是否否否否是是是是否求反射點(diǎn)計(jì)算各頂點(diǎn)的目標(biāo)函數(shù)值f(xj)(j=1,2,……,k)一次壞點(diǎn)xG代替最壞點(diǎn)xH結(jié)束xR可行?xC可

3、行??計(jì)算出去xH后的各頂點(diǎn)中心將各定點(diǎn)的目標(biāo)函數(shù)值和坐標(biāo)按目標(biāo)函數(shù)值的大小排序形成初始復(fù)合形的k個(gè)頂點(diǎn)xj(j=1,2,……,k)輸入n,k,ε開(kāi)始(一)源程序如下:/*輸入值選擇n=2,k=3,本程序可以處理n為2或3,k為3或4的情況*/#include#include#include#include#defineE01e-5/*復(fù)合形法收斂控制精度*/double**apply(int,int);/*申請(qǐng)矩陣空間*/doublef(double*);/

4、*目標(biāo)函數(shù)*/double*g(double*);/*約束函數(shù)*/booljudge(double*);/*可行點(diǎn)的判斷*/intmain(){intn,k;inti,j,k1;intl;doubletemporary;doublerestrain;/*收斂條件*/doublereflect;/*反射系數(shù)*/srand((unsigned)time(NULL));printf("請(qǐng)輸入目標(biāo)函數(shù)的維數(shù)n:");/*輸入已知數(shù)據(jù)*/scanf("%d",&n);printf("請(qǐng)輸入復(fù)合形的頂點(diǎn)數(shù)k:");scanf("%d",&k

5、);double**x=apply(k,n);/*存放復(fù)合形頂點(diǎn)*/double*y=(double*)calloc(k,sizeof(double));/*存放目標(biāo)函數(shù)值*/double*p=(double*)calloc(3,sizeof(double));/*存放約束函數(shù)值*/double*a=(double*)calloc(n,sizeof(double));/*存放設(shè)計(jì)變量的下限*/double*b=(double*)calloc(n,sizeof(double));/*存放設(shè)計(jì)變量的上限*/double*x_c=(d

6、ouble*)calloc(n,sizeof(double));/*存放可行點(diǎn)中心*/double*x_r=(double*)calloc(n,sizeof(double));/*存放最壞點(diǎn)的反射點(diǎn)*/printf("本程序中的所有輸入,兩個(gè)數(shù)之間用空格隔開(kāi),然后按enter鍵時(shí)不要長(zhǎng)時(shí)間的按,否則,可能會(huì)出錯(cuò)");printf("請(qǐng)輸入選定的第一個(gè)可行點(diǎn)x1(包含%d個(gè)數(shù)):",n);for(i=0;i

7、(i=0;i

8、5lf),b=(",*(a+n-1));for(i=0;i

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。