首页 最速下降法和牛顿法求最小值点的算法及结果

最速下降法和牛顿法求最小值点的算法及结果

举报
开通vip

最速下降法和牛顿法求最小值点的算法及结果PAGE 工程优化作业 共11 = 11 页 第11页 姓名:龚尚映 学号:1103121816 1. 最速下降法计算:f=(x -1) +5(x -5) (1) 程序代码如下: #include #include double f1(double ...

最速下降法和牛顿法求最小值点的算法及结果
PAGE 工程优化作业 共11 = 11 页 第11页 姓名:龚尚映 学号:1103121816 1. 最速下降法计算:f=(x -1) +5(x -5) (1) 程序代码如下: #include #include double f1(double x,double y) { double r; r=(pow(x-1,2)+5*pow((y-5),2)); return r; } //最速下降法求最优解 void main() { double h=3,x0=3,x1,y0=6,y1,s,r0,r1; double e0=0.000001,e1=0.000001; int k=0; s=sqrt(pow(2*x0-2,2)+pow(10*y0-50,2)); printf("%d x1=%f x2=%f s=%f\n",k,x0,y0,s); while(s>e1) { x1=x0; y1=y0; r0=f1(x0,y0); h=3; //一维搜索,成功失败法 while(fabs(h)>e0) { r1=f1((x1-h*2*(x1-1)),(y1-h*10*(y1-5))); if(r1e0) h=(-1)*h/4; } s=sqrt(pow(2*x0-2,2)+pow(10*y0-50,2)); k++; printf("%d x1=%f x2=%f s=%f\n",k,x0,y0,s); } printf("x1=%f x2=%f",x0,y0); (2) } (3) 初始值设为x1=3,x2=6时,运行结果如下图1-1: 图1-1 (4) 初始值设为x1=30000,x2=60000时,运行结果如下图1-2: 图1-2 2. 牛顿法计算:f=(x -1) +5(x -5) (1) 程序代码如下: #include #include double f1(double x,double y) { return (pow(x-1,2)+5*pow(y-5,2)); } //牛顿法求最优解 void main() { double h=3,x0=3,x1,y0=6,y1,s,r0,r1; double e0=0.000001,e1=0.000001; int k=0; s=sqrt(pow(2*x0-2,2)+pow(10*y0-50,2)); printf("%d x=%f y=%f s=%f\n",k,x0,y0,s); while(s>e1) { x1=x0; y1=y0; r0=f1(x0,y0); h=3; //一维搜索 while(fabs(h)>e0) { r1=f1((x1-h*(x1-1)),(y1-h*(y1-5))); if(r1e0) h=(-1)*h/4; } s=sqrt(pow(2*x0-2,2)+pow(10*y0-50,2)); k++; printf("%d x=%f y=%f s=%f\n",k,x0,y0,s); } printf("x=%f y=%f",x0,y0); } (2) 初始值设为x1=3,x2=6时,运行结果如下图2-1: 图2-1 (3) 初始值设为x1=30000,x2=60000时,运行结果如下图2-2: 图2-2 3. 最速下降法求:f=(x -1) +(x -1) +5(x -5) +5(x -5) (1) 程序代码如下: #include #include double f1(double x,double x1,double y,double y1) { double r; r=(pow(x-1,2)+pow(x1-1,2)+5*pow(y-5,2)+5*pow(y1-5,2)); return r; } //最速下降法求最优解 void main() { //x1,x2,x3,x4分别为多项式函数中四个分量的初始值 //x5,x6,x7,x8分别为对应的下一个值 double d=3,x1=3,x5,x2=4,x6,x3=8,x7,x4=6,x8,s,r0,r1; double e0=0.000001,e1=0.000001; int k=0; s=sqrt(pow(2*x1-2,2)+pow(2*x2-2,2)+pow(10*x3-50,2)+pow(10*x4-50,2)); printf("%d x1=%f x2=%f x3=%f x4=%f s=%f\n",k,x1,x2,x3,x4,s); while(s>e1) { x5=x1; x6=x2; x7=x3; x8=x4; r0=f1(x1,x2,x3,x4); d=3; //一维搜索 while(fabs(d)>e0) { r1=f1((x5-d*2*(x5-1)),(x6-d*2*(x6-1)),(x7-d*10*(x7-5)),(x8-d*10*(x8-5))); if(r1e0) d=(-1)*d/4; } s=sqrt(pow(2*x1-2,2)+pow(2*x2-2,2)+pow(10*x3-50,2)+pow(10*x4-50,2)); k++; printf("%d x1=%f x2=%f x3=%f x4=%f s=%f\n",k,x1,x2,x3,x4,s); } printf("\nx1=%f x2=%f x3=%f x4=%f s=%f\n",x1,x2,x3,x4,s); (2) } (3) 初始值设为x1=3,x2=4,x3=8,x4=6时,运行结果如下图3-1: 图3-1 (4) 初始值设为x1=30000,x2=40000,x3=80000,x4=60000时,运行结果如下图3-2: 图3-2 4. 牛顿法计算:f=(x -1) +(x -1) +5(x -5) +5(x -5) (1) 程序代码如下: #include #include double f1(double x,double x1,double y,double y1) { double r; r=(pow(x-1,2)+pow(x1-1,2)+5*pow(y-5,2)+5*pow(y1-5,2)); return r; } //最速下降法求最优解 void main() { //x1,x2,x3,x4分别为多项式函数中四个分量的当前值 //x5,x6,x7,x8分别为多项式函数中四个分量对应的下一个值 double d=3,x1=3,x5,x2=4,x6,x3=8,x7,x4=6,x8,s,r0,r1; double e0=0.000001,e1=0.000001; int k=0; s=sqrt(pow(2*x1-2,2)+pow(2*x2-2,2)+pow(10*x3-50,2)+pow(10*x4-50,2)); printf("%d x1=%f x2=%f x3=%f x4=%f s=%f\n",k,x1,x2,x3,x4,s); while(s>e1) { x5=x1; x6=x2; x7=x3; x8=x4; r0=f1(x1,x2,x3,x4); d=3; //一维搜索 while(fabs(d)>e0) { r1=f1((x5-d*(x5-1)),(x6-d*(x6-1)),(x7-d*(x7-5)),(x8-d*(x8-5))); if(r1e0) d=(-1)*d/4; } s=sqrt(pow(2*x1-2,2)+pow(2*x2-2,2)+pow(10*x3-50,2)+pow(10*x4-50,2)); k++; printf("%d x1=%f x2=%f x3=%f x4=%f s=%f\n",k,x1,x2,x3,x4,s); } printf("\nx1=%f x2=%f x3=%f x4=%f s=%f\n",x1,x2,x3,x4,s); } (2) 初始值设为x1=3,x2=4,x3=8,x4=6时,运行结果如下图4-1: 图4-1 (3) 初始值设为x1=30000,x2=40000,x3=80000,x4=60000时,运行结果如下图4-2: 图4-2 5. 总结 (1) 每一种计算最优解的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 中,如果初始值不一样,那么得到最终结果所需的步骤数不一样;比较图1-1与图1-2,在图1-1中初始值为x1=3,x2=6,得到最终结果所需步骤数为23,而在图1-2中初始值为x1=30000,x2=60000,得到最终结果所需步骤数为39;同一算法中取值越偏离最优解,所需的计算步骤越多。标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 2、3、4下的每前两个图都说明了这一点。 (2) 分别用最速下降法和牛顿法求同一多项式值,初始值都一样的情况下,牛顿法收敛速度较快;图1-2中用最速下降法计算,得到结果共计算了39步,经过一步迭代运算,x1从30000收敛到24375.187500,再经过一步收敛到15234.867188,图2-2中用牛顿法计算才用了20步,经过一步x1从30000收敛到了7500.750000,再经过一步收敛到了1875.937500。 (3) 从图3-2和图4-2中可以看出最速下降法和牛顿法计算最小值,前面步骤收敛较快,每经过一步,x值的变化都比较大,后面步骤收敛慢,每经过一步,x值的变化比较小。 _1382568536.unknown _1382568558.unknown _1382568609.unknown _1382568710.unknown _1382568725.unknown _1382568726.unknown _1382568724.unknown _1382568697.unknown _1382568559.unknown _1382568598.unknown _1382568547.unknown _1382216729.unknown _1382216747.unknown _1382216756.unknown _1382216740.unknown _1382216518.unknown _1382216503.unknown
本文档为【最速下降法和牛顿法求最小值点的算法及结果】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_195518
暂无简介~
格式:doc
大小:274KB
软件:Word
页数:11
分类:
上传时间:2012-12-24
浏览量:156