阻尼牛顿法(共5页).docx

上传人:飞****2 文档编号:14324368 上传时间:2022-05-03 格式:DOCX 页数:5 大小:132.81KB
返回 下载 相关 举报
阻尼牛顿法(共5页).docx_第1页
第1页 / 共5页
阻尼牛顿法(共5页).docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《阻尼牛顿法(共5页).docx》由会员分享,可在线阅读,更多相关《阻尼牛顿法(共5页).docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上阻尼牛顿法求解二维函数极小值的程序说明一 题目利用阻尼牛顿法求函数的极小值点(迭代两次,一维搜索任选一种方法)。二 阻尼牛顿法基本思想:1) 给定初始点,收敛精度,置。2) 计算、 、和3) 求,其中为沿进行一维搜索的最佳步长。4) 检查收敛精度。若,则,停机;否则置,返回步骤2,继续进行进行搜索。改进后的阻尼牛顿法程序框图如下:三 用阻尼牛顿法求函数程序如下:/ 阻尼牛顿法 .cpp : Defines the entry point for the console application./#include#include#include#include doub

2、le fun1(double q1,double q2)return(pow(q1-2),4)+pow(q1-2*q2),2); /修改函数f(x1,x2)=(x1-2)*(x1-2)*(x1-2)*(x1-2)+(x1-2*x2)*(x1-2*x2)double fun2(double g,double x,double y,double r1,double r2) return (pow(x+g*y-2),4)+pow(x+g*y-2*(r1+g*r2),2);/关于阻尼因子的函数void main() double A21,B22,C21,D21,X21; double E21=4,3;

3、/迭代的初始点x0 int t=0,i=0,j=0; double E0,x1,x2,x3,h(0.1); double y1,y2,y3,m; double a,b,k=0.618,a1,a2,f1,f2; printf(输入收敛精度:);/输入标准收敛精度 std:cinE0; do D00=E00; D10=E10; A00=4*(D00-2)*(D00-2)*(D00-2)+2*D00-4*D10; A10=-4*(D00-2*D10);/A00,A10为原函数梯度的各项 B00=1.0/(12.0*(D00-2)*(D00-2); B01=1.0/(24.0*(D00-2)*(D00

4、-2); B10=1.0/(24.0*(D00-2)*(D00-2); B11=(6.0*(D00-2)*(D00-2)+1)/(48.0*(D00-2)*(D00-2);/B00,B01,B10,B11分别代表原函数的海赛矩阵的逆阵的各项 C00=-(B00*A00+B01*A10); C10=-(B10*A00+B11*A10);/C00,C10为搜索方向dk的各项 /下面利用外推法寻找函数2的区间,找单谷区间 x1=0; x2=x1+h; y1=fun2(x1,D00,C00,D10,C10); y2=fun2(x2,D00,C00,D10,C10); if(y2y1) h=-h; x3

5、=x1,y3=y1; x1=x2,y1=y2; x2=x3,y2=y3; x3=x2+h; y3=fun2(x3,D00,C00,D10,C10); while(y3=f2) a=a1; a1=a2; f1=f2; a2=a+k*(b-a); f2=fun2(a2,D00,C00,D10,C10); else b=a2; a2=a1; f2=f1; a1=b-k*(b-a); f1=fun2(a1,D00,C00,D10,C10); j+; while(fabs(b-a)/b)=E0&fabs(f2-f1)/f2)=E0); m=0.5*(a+b);/m为阻尼因子 E00=D00+m*C00;

6、 E10=D10+m*C10; printf(%d%15f10%15f10n,t,E00,E10,fun1(E00,E10); t+; while(fabs(E00-D00)=E0&fabs(E10-D10)=E0); X00=E00; X10=E10; printf(迭代了%d次n,t); printf(极小点(x1,x2)=(%f10,%f10)n,X00,X10); printf(极小值f(x1,x2)=%f10n,fun1(X00,X10);程序运行结果:四 结论由该程序的运行结果可知,要求迭代两次后函数的极小值点在(2.,1.)处,经验证,运算结果完全正确。验证了该程序的可行性。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁