版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、機(jī)械優(yōu)化設(shè)計(jì)一一復(fù)合形方法及源程序(一)題目:用復(fù)合形法求約束優(yōu)化問(wèn)題nmi /(x)= (a -5尸 +4(*2 -6T ; g = 64-xf -x22 0; g3 = -10 0的最優(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 + lk2nf在可行域內(nèi)構(gòu)成具有k個(gè)頂點(diǎn)的初始復(fù)合 形。2)
2、計(jì)算復(fù)合形個(gè)頂點(diǎn)的目標(biāo)函數(shù)值,比較其大小,找出最好點(diǎn)xl、最壞點(diǎn)xh、及此壞點(diǎn)xg.3)計(jì)算除去最壞點(diǎn)xh以外的(k-1)個(gè)頂點(diǎn)的中心X*判別xc是否可行,若xc為可行點(diǎn),則轉(zhuǎn)步驟4);若xc為非可行點(diǎn),則重新確定設(shè)計(jì)變量的下限和上限值,即令。=xL,b = xc , 然后轉(zhuǎn)步驟1),重新構(gòu)造初始復(fù)合形。4)按式xR=xc + axc-xM算反射點(diǎn)Xr,必要時(shí)改變反射系數(shù)a的值,直至反射成功,即滿足式gy(x/?)0,(; = 1,2,inf(xR)f(xH)o然后Xr以取代Xh,構(gòu)成新的復(fù)合形。5)若收斂條件,上|/優(yōu))_得到滿足,計(jì)算終止。約束最優(yōu)解為: k 一 1 j=ix =x/(x
3、)=/(xL)o(三)復(fù)合形法程序框圖見(jiàn)下圖:(四)源程序如下:/*復(fù)合形法收斂控制精度*/*申請(qǐng)矩陣空間*/*目標(biāo)函數(shù)*/*約束函數(shù)*/*可行點(diǎn)的判斷*/int n.k;mt i,j,kl;int 1;double temporary;double restrain;double reflect;srand(unsigned)tmie(NULL);pnntf(”請(qǐng)輸入目標(biāo)函數(shù)的維數(shù)n:”);scanf(”d,&n);pnntf(”請(qǐng)輸入復(fù)合形的頂點(diǎn)數(shù)k:”);scanf(”d”,&k);double *x=apply(k,n);double *y=(double *)calloc(k.siz
4、eof(double);double *p=(double *)calloc(3,sizeof(double);double *a=(double *)calloc(n.sizeof(double);double *b=(double *)calloc(n,sizeof(double);double *x_c=(double *)calloc(n.sizeof(double);double *x_r=(double *)calloc(n,sizeof(double);/*收斂條件*/*反射系數(shù)*/*輸入己知數(shù)據(jù)*/*存放復(fù)合形頂點(diǎn)*/*存放目標(biāo)函數(shù)值*/*存放約束函數(shù)值*/*存放設(shè)計(jì)變量的下限
5、*/*存放設(shè)計(jì)變量的上限*/*存放可行點(diǎn)中心*/*存放最壞點(diǎn)的反射點(diǎn)*/*輸入值選擇n=2,k=3,本程序可以處理n為2或3, k為3或4的情況*/#iiiclude #iiiclude #iiiclude #iiiclude #defiiie EO le-5double *apply(int,int);double f(double *);double *g(double *);bool judge(double *);int niaiii()pnntf(”本程序中的所有輸入,兩個(gè)數(shù)之間用空格隔開(kāi),然后按enter鍵時(shí)不要長(zhǎng)時(shí)間的按,否則,可 能會(huì)出錯(cuò)寸);請(qǐng)輸入選定的第一個(gè)可行點(diǎn)xl(包含
6、(1個(gè)數(shù)fbi(i=0;in;i+)scanff%lP;x+i);pnntf(iW輸入初選變量的下限a(包含(1個(gè)數(shù)fbi(i=0;in;i+)scanff%lf,a+i);pnntf(iW輸入初選變量的上限b(包含d個(gè)數(shù)):F);fbi(i=0;in;i+)scanff%lP,b+i);pnntf(”輸出輸入結(jié)果為:nn=%d,k=%d,xl=(”,n,k);/*輸出已知數(shù)據(jù)*/fbr(i=O;in-l;i+)pnnW%51f”,*(*x+i);pnntff%.51f)Ea=(”,*(*x+n-l);fbr(i=O;in-l;i+)pnnrfT%f”,*(a+i);pnntff%.51f),
7、b=(”,*(a+n.l);fbr(i=O;in-l;i+)pnntf(”f”,*(b+i);pnntff%.51f)ir,*(b+n-l);Ll: for(i=l;ik;i+)/*隨機(jī)得到其余(k-1)個(gè)可行點(diǎn)*/foi(j=Ojnj+) *(*(x+i)+j)=*(a-fj)+(double)(rand()%10000)/10000*(*(b+j)-*(a+j); 1=1; fol(l=l;ik;l+)/*找出可行點(diǎn)的個(gè)數(shù)1,并把可行點(diǎn)放在前1個(gè)位置上*/if(judge(*(x+i)I for(j=lJk;j+) if(!judge(*(x+j) ( for(kl=0;kln;kl+)
8、( tempoiary=*(*(x+i)+kl); *(*(x+i)+kl)=*(*(x+j)+kl);* (* (x+j )+k l)=temp orary; break;) 1+; foi(i=0;il-l;i+)/*把前1個(gè)可行點(diǎn)按目標(biāo)函數(shù)值從大到小排序*/for(j=i+lJl;j+) if(f(*(x+i)f(*(x+j) fbr(k l=0;kln;kl +) ( temporary=*(*(x+i)+k 1); *(*(x+i)+kl)=*(*(x+j)+kl); *(*(x+j)+kl )=temporaiy; )foi(i=0;in;i+)/*求可行點(diǎn)中心 */*(x_c+i
9、)=O; foi(i=0;il;i+) for(j=0jvnj+) *(x_c+j)+=*(*(x+i)+j);*(x_c+i)/=l;if( !judge(x_c)/*判斷可行點(diǎn)中心是否可行*/*(a+i)=*(*(x+l-l)+i);*(b+i)=*(x_c+i);goto LI; else for(i=l;ivk;i+)/*將不可行點(diǎn)可行化*/do( for(j=0jn;j-H-) *(*(x+i)+j)=*(x_c+j)+0.5*(*(*(x+i)+j)-*(x_c+j);wlule(!judge(*(x+i);L2:foi(i=0;ik-l;i+)/*將可行點(diǎn)按目標(biāo)函數(shù)值從大到小排序
10、*/fbr(j=i+ljkj+) f(f(*(x+i)vf(*(x+j) for(kl=0;kln;kl+) ( tempoiary=*(*(x+i)+kl); *(*(x+i)+kl)=*(*(x+j)+kl);* (* (x+j )+k 1 )=temp orary;restiaiii=O;/*求收斂條件 */fbr(i=O;ik;i-H-) restiain+=(R*(x+i)f(*(x+k-l)*(f(*(x+i)f(*(x+kl);iestiaiii=sqrt(l .0/(k- l)*iestrain); if(restiaiiiEO)/* 判斷收斂條件 */J I pnntf(”n
11、求得約束最優(yōu)點(diǎn)為:(”); for(i=O;in;i-H-)pnntff%.5f ”,*(*(x+k.l)+i);pnntf()ii 目標(biāo)函數(shù)的最優(yōu)解為:%.5fn”,f(*(x+k-l); return 0: elseL3:for(i=0;in;i+)/*計(jì)算除去最壞點(diǎn)*x外的(k-1)個(gè)頂點(diǎn)的中心*/*(x_c+i)=0; for(i=l;ik;i+) for(j=0jn;j-H-) *(x_c+j)+=*(*(x+i)+j); for(i=0;in;i-H-) *(x_c+i)/=kl; reflect=1.3;L4:for(i=0;in;i+)/* 求反射點(diǎn)*/*(x_r+i)=*(x
12、_c+i)+reflect*(*(x_c+i)*(*x+i); if(!judge(x_r)reflect*=0.5;goto L4;else if(f(x_r)vR*x)jfbr(i=O;in;i+)*(*x+i)=*(x_r+i);goto L2;else if(reflect=le-10)fbr(i=0;in;i+)* (*x+i)=* (* (x+1 )+i);goto L3;elsereflect*=0.5;goto L4;double *apply(iiit row,hit col) /* 申請(qǐng)矩陣空間 */(int i;double *x=(double*)calloc(row*
13、col,sizeof(double);double *y=(double *)calloc(row,sizeof(double *);if(!x | !y)pnntf(吶存分配失敗!,exit(l);for(i=0;iiow;i-H-)*(y+i)=x+i*col;return y;double f(double *x)/* 目標(biāo)函數(shù)*/(return (*x-5)*(*x-5)+4*(*(x+l)-6)*(*(x+l)-6);double *g(double *x)/*約束函數(shù)*/(double *p=(double *)calloc(3,sizeof(double);】f(!p)pnntf(吶存分配失敗!,exit(l);*p=64-(*x)*(*x)-(*(x+
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年財(cái)務(wù)咨詢(xún)服務(wù)條款3篇
- 2025年度智能電網(wǎng)關(guān)鍵設(shè)備變壓器安裝及運(yùn)維服務(wù)承包合同3篇
- 2025年度倉(cāng)儲(chǔ)設(shè)施建設(shè)與運(yùn)營(yíng)維護(hù)合同3篇
- 2024版貨運(yùn)運(yùn)輸合同范文
- 世界地理分區(qū)習(xí)題《帶答案》大全
- 2025年度數(shù)字工廠廠房出租居間服務(wù)協(xié)議3篇
- 馬良三夢(mèng)好詞好句好段讀后感
- 2024年智能暖通系統(tǒng)節(jié)能優(yōu)化改造工程合同3篇
- 浙江水利水電學(xué)院《面向?qū)ο蟮某绦蛟O(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南環(huán)境生物職業(yè)技術(shù)學(xué)院《生物醫(yī)用高分子村料》2023-2024學(xué)年第一學(xué)期期末試卷
- 水泥采購(gòu)?fù)稑?biāo)方案(技術(shù)標(biāo))
- 鋁型材采購(gòu)技術(shù)規(guī)范
- 物業(yè)投訴處理培訓(xùn)課件
- 《春秋》導(dǎo)讀學(xué)習(xí)通章節(jié)答案期末考試題庫(kù)2023年
- 物流無(wú)人機(jī)垂直起降場(chǎng)選址與建設(shè)規(guī)范(征求意見(jiàn)稿)
- 2023年湖南成人學(xué)位英語(yǔ)考試真題
- 分居聲明告知書(shū)范本
- 能源中國(guó)(上海電力大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測(cè)試答案
- 采購(gòu)計(jì)劃流程圖
- 強(qiáng)迫振動(dòng)法測(cè)量單自由度系統(tǒng)固有頻率和阻尼比
- GB/T 4795-200915 ppm艙底水分離器
評(píng)論
0/150
提交評(píng)論