预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验的题目和要求一、所属课程名称:最优化方法二、实验日期:2010年5月10日~2010年5月15日三、实验目的掌握最速下降法牛顿法和共轴梯度法的算法思想并能上机编程实现相应的算法。二、实验要求用MATLAB实现最速下降法牛顿法和共轴梯度法求解实例。四、实验原理最速下降法是以负梯度方向最为下降方向的极小化算法相邻两次的搜索方向是互相直交的。牛顿法是利用目标函数在迭代点处的f(x)xkTaylor展开式作为模型函数并利用这个二次模型函数的极小点序列去逼近目标函数的极小点。共轴梯度法它的每一个搜索方向是互相共轴的而这些搜索方向仅仅是负梯度方向与上一次接待的搜索方向的组合。dkgkdk1五.运行及结果如下:最速下降法:题目:f=(x-2)人2+(y-4)人2M文件:function[Rn]=steel(x0y0eps)symsx;symsy;f=(x-2)A2+(y-4)A2;v=[xy];j=jacobian(fv);T=[subs(j(1)xx0)subs(j(2)yy0)];temp=sqrt((T(1))A2+(T(2))A2);x1=x0;y1=y0;n=0;symskk;while(temp>eps)d=-T;f1=x1+kk*d(1);f2=y1+kk*d(2);fT=[subs(j(1)xf1)subs(j(2)yf2)];fun=sqrt((fT(1))A2+(fT(2))A2);Mini=Gold(fun010.00001);x0=x1+Mini*d(1);y0=y1+Mini*d(2);T=[subs(j(1)xx0)subs(j(2)yy0)];temp=sqrt((T(1))A2+(T(2))A2);x1=x0;y1=y0;n=n+1;endR=[x0y0]调用黄金分割法:M文件:functionMini=Gold(fa0b0eps)symsx;formatlong;symskk;u=a0+0.382*(b0-a0);v=a0+0.618*(b0-a0);k=0;a=a0;b=b0;array(k+11)=a;array(k+12)=b;while((b-a)/(b0-a0)>=eps)Fu=subs(fkku);Fv=subs(fkkv);if(Fu<=Fv)b=v;v=u;u=a+0.382*(b-a);k=k+1;elseif(Fu>Fv)a=u;u=v;v=a+0.618*(b-a);k=k+1;endarray(k+11)=a;array(k+12)=b;endMini=(a+b)/2;输入:[Rn]=steel(010.0001)R=1.999994136676423.99999120501463R=1.999994136676423.99999120501463n=1牛顿法:题目:f=(x-2)人2+(y-4)人2M文件:symsx1x2;f=(x1-2)A2+(x2-4)A2;v=[x1x2];df=jacobian(fv);df=df.';G=jacobian(dfv);epson=1e-12;x0=[00]';g1=subs(df{x1x2}{x0(11)x0(21)});G1=subs(G{x1x2}{x0(11)x0(21)});k=0;mul_count=0;sum_count=0;mul_count=mul_count+12;sum_count=sum_count+6;while(norm(g1)>epson)p=-G1\g1;x0=x0+p;g1=subs(df{x1x2}{x0(11)x0(21)});G1=subs(G{x1x2}{x0(11)x0(21)});k=k+1;mul_count=mul_count+16;sum_count=sum_count+