资源描述:
《机械创新实验报告1》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验一一维优化程序的设计、调试与运用一、实验目的与要求通过本实验使学生了解常用一维优化方法的基本原理和特点,并通过对某种具体方法的编程调试及验证,加深对该方法基本理论的理解,并培养独立编程的能力。二、实验方案用自编优化程序求解下列一维优化问题:1、minF(X)=4X2-12X+10搜索区间:[1,3],迭代精度E1=10-52、minF(X)=X4-5X3+4X2-6X+60搜索区间:[1,10],迭代精度E1=10-53、minF(X)=(X+1)(X-2)2搜索区间:[1,10],迭代精度E1=1
2、0-54、minF(X)=8X3-2X2-7X+3搜索区间:[1,10],迭代精度E1=10-5程序清单如下:READA,B,E140NF=050GOSUB30060PRINT"optimumresults:"70PRINT"Fmin=";F80PRINT"X=";X90PRINT"NF=";NF100END110DATA1,10,0.00001300'SubprogramofGoldenSectionMethod310S=B-A320X1=A+.618*(B-A):X=X1:GOSUB2000:F1=
3、FX330X2=A+.382*(B-A):X=X2:GOSUB2000:F2=FX340IFF1>F2THENGOTO380350A=X2:X2=X1:F2=F1360X1=A+.618*(B-A):X=X1:GOSUB2000:F1=FX370GOTO400380B=X1:X1=X2:F1=F2390X2=A+.382*(B-A):X=X2:GOSUB2000:F2=FX400IFABS((B-A)/S)>E1THENGOTO340410X=.5*(A+B):GOSUB2000:F=FX420RETU
4、RN2000'ObjectveFunction2010NF=NF+12020FX=X^4-5*X^3+X^2-6*X+602030RETURN其中:A———初始搜索区间的下界值;B———初始搜索区间的上界值E1———迭代精度实验过程中修改110行DATA后方数据,四次修改依次为:1、1,3,0.000012、1,10,0.000013、-3,6,0.000014、0,6,0.00001修改2020行FX=后方函数,四次修改依次为:1、4*X^2-12*X+102、X^4-5*X^3+4*X^2-6*X+
5、603、(X+1)*(X-2)^24、8*X^3-2*X^2-7*X+3三、实验结果及数据处理1、Fmin=1X=1.500121NF=282、Fmin=22.65901X=3.279831NF=273、Fmin=-0.00000000009822562X=2.000006NF=274、Fmin=-0.2034246X=0.6297983NF=271、搜索区间:[1,3],迭代精度E1=10-5计算机输出结果:Fmin=1X=1.500121NF=282、搜索区间:[1,10],迭代精度E1=10-5计
6、算机输出结果:Fmin=22.65901X=3.279831NF=273、搜索区间:[-3,6],迭代精度E1=10-5计算机输出结果:Fmin=9.822562*10-11X=2.000006NF=274、搜索区间:[0,6],迭代精度E1=10-5计算机输出结果:Fmin=-0.2034246X=0.6297983NF=27四、结论黄金分割法只是一种直接法,利用不停的逼近最优值,在满足迭代精度的条件下就可以把结果当成是最优值。五、问题与讨论1、常用一维优化方法有哪些?答:常用的一维优化方法有:格点法
7、、黄金分割法、二次插值法、三次插值法。2、进退法、黄金分割法、二次插值法基本原理是什么?各有什么特点?答:进退法基本原理:取一初始点,若,则在其右方取点;若,则令,;若仍有,则继续取点;若则以作为区间,否则继续做下去。对于的情况,则做类似于的情况去讨论,特点:最后确定的区间必定是包含最小点在内的单峰区间。黄金分割法基本原理:逐步缩小搜索区间,直至最小点存在的范围达到允许的误差范围为止。特点:缩短后的区间是原区间的一部分,最终收缩区间的中点为近似最优点。二次插值法基本原理:在求解一元函数的极小点时,常常利
8、用一个低次插值多项式来逼近原目标函数,然后求该多项式的极小点(低次多项式的极小点比较容易计算),并以此作为目标函数的近似极小点。如果其近似的程度尚未达到所要求的精度时,可以反复使用此法,逐次拟合,直到满足给定的精度时为止。特点:是用二次插值多项式逼近原目标函数的近似求解方法。实验二多维无约束优化程序的设计、调试和运用一、实验目的与要求通过本实验使学生了解常用多维无约束优化方法的基本原理和特点,并通过对某种具体方法的编程、调试及验证,加深对该