資源描述:
《共軛梯度法,機(jī)械優(yōu)化設(shè)計(jì)說(shuō)明書》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、WORD格式整理實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)課程名稱機(jī)械優(yōu)化設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目名稱共軛梯度法年級(jí)專業(yè)學(xué)生姓名學(xué)號(hào)實(shí)驗(yàn)時(shí)間:2012年11月2日學(xué)習(xí)參考資料分享WORD格式整理學(xué)生所在學(xué)院:專業(yè):班級(jí):姓名學(xué)號(hào)實(shí)驗(yàn)組實(shí)驗(yàn)時(shí)間指導(dǎo)教師成績(jī)實(shí)驗(yàn)項(xiàng)目名稱共軛梯度法求函數(shù)極小值1、實(shí)驗(yàn)?zāi)康募耙螅簩?shí)驗(yàn)?zāi)康模赫莆諜C(jī)械優(yōu)化設(shè)計(jì)方法并能夠理論聯(lián)系實(shí)際地加以應(yīng)用,任務(wù)是將課程所學(xué)的知識(shí)應(yīng)用于實(shí)踐,通過(guò)實(shí)際編寫調(diào)試及運(yùn)行程序加深理論知識(shí)的掌握并提高解決優(yōu)化問(wèn)題的能力。根據(jù)實(shí)驗(yàn)指導(dǎo)書的要求應(yīng)能夠獨(dú)立的編寫優(yōu)化程序并在計(jì)算機(jī)上運(yùn)行,學(xué)會(huì)判斷結(jié)
2、果及程序的正確性,學(xué)會(huì)建立機(jī)械優(yōu)化設(shè)計(jì)的數(shù)學(xué)模型,合理選用優(yōu)化方法,獨(dú)立的解決機(jī)械優(yōu)化設(shè)計(jì)的實(shí)際問(wèn)題。實(shí)驗(yàn)(或算法)原理:共軛梯度法是共軛方向法中的一種,該方法中每一個(gè)共軛向量都是依賴與迭代點(diǎn)處的負(fù)梯度而構(gòu)造出來(lái)。它通過(guò)梯度來(lái)尋找極小點(diǎn)。先通過(guò)一維搜索確定搜索區(qū)間,然后再通過(guò)共軛梯度法運(yùn)用c語(yǔ)言編程求解。實(shí)驗(yàn)硬件及軟件平臺(tái):vs2010學(xué)習(xí)參考資料分享WORD格式整理實(shí)驗(yàn)步驟:1.確定所需求解的函數(shù)y=pow(x[0]+t*p[0],2)+25*pow(x[1]+t*p[1],2)2.確定搜索區(qū)間
3、3.畫出程序框圖4.用c語(yǔ)言在vs2010上寫出源代碼5.運(yùn)行程序6.檢驗(yàn)試驗(yàn)結(jié)果,分析結(jié)果實(shí)驗(yàn)內(nèi)容(包括實(shí)驗(yàn)具體內(nèi)容、算法分析、源代碼等等):本實(shí)驗(yàn)通過(guò)c語(yǔ)言編程,運(yùn)用共軛梯度法求解函數(shù)y極小值;程序框圖學(xué)習(xí)參考資料分享WORD格式整理源程序#include#include#defineN10#defineepspow(10,-6)doublef(doublex[],doublep[],doublet){doubles;s=pow(x[0]+t*p[0],2)+
4、25*pow(x[1]+t*p[1],2);returns;}voidsb(double*a,double*b,doublex[],doublep[]){doublet0,t1,t,h,alpha,f0,f1;intk=0;t0=2.5;/*初始值*/h=1;/*初始步長(zhǎng)*/alpha=2;/*加步系數(shù)*/f0=f(x,p,t0);t1=t0+h;f1=f(x,p,t1);while(1){if(f15、){h=-h;t=t1;}else{*a=tt1?t:t1;break;學(xué)習(xí)參考資料分享WORD格式整理}}t1=t0+h;f1=f(x,p,t1);}}doublehjfg(doublex[],doublep[]){doublebeta,t1,t2,t;doublef1,f2;doublea=0,b=0;double*c,*d;c=&a,d=&b;sb(c,d,x,p);printf("x1=%lf,x2=%lf,p1=%lf,p2=%lf",x[0],x[1],
6、p[0],p[1]);printf("[a,b]=[%lf,%lf]",a,b);system("pause");beta=(sqrt(5)-1.0)/2;t2=a+beta*(b-a);f2=f(x,p,t2);t1=a+b-t2;f1=f(x,p,t1);while(1){if(fabs(t1-t2)7、1=f2;t2=a+beta*(b-a);f2=f(x,p,t2);學(xué)習(xí)參考資料分享WORD格式整理}}}t=(t1+t2)/2;returnt;}voidgtd(){doublex[N],g[N],p[N],t=0,f0,mod1=0,mod2=0,nanda=0;inti,k,n;printf("請(qǐng)輸入函數(shù)的元數(shù)值n=");scanf("%d",&n);printf("請(qǐng)輸入初始值");for(i=0;i8、]=2*x[0];g[1]=50*x[1];mod1=sqrt(pow(g[0],2)+pow(g[1],2));if(mod1>eps){p[0]=-g[0];p[1]=-g[1];k=0;while(1){t=hjfg(x,p);printf("p1=%lf,p2=%lf,t=%lf",p[0],p[1],t);x[0]=x[0]+t*p[0];x[1]=x[1]+t*p[1];g[0]=2*x[0];g[1]=50*x[1];/*printf("x1=%lf,x2=%