- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
最速下降法和牛顿法求最小值点的算法及结果
最速下降法计算:f=(x-1) +5(x-5)
程序代码如下:
#includestdio.h
#includemath.h
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(se1)
{
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(r1r0)
{
x0=x1-h*2*(x1-1);
y0=y1-h*10*(y1-5);
r0=r1;
h=h+h;
}
else if(fabs(h)e0)
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);
}
初始值设为x1=3,x2=6时,运行结果如下图1-1:
图1-1
初始值设为x1=30000,x2=60000时,运行结果如下图1-2:
图1-2
牛顿法计算:f=(x-1) +5(x-5)
程序代码如下:
#includestdio.h
#includemath.h
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(se1)
{
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(r1r0)
{
x0=x1-h*(x1-1);
y0=y1-h*(y1-5);
r0=r1;
h=h+h;
}
else if(fabs(h)e0)
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);
}
初始值设为x1=3,x2=6时,运行结果如下图2-1:
图2-1
初始值设为x1=30000,x2=60000时,运行结果如下图2-2:
图2-2
最速下降法求:f=(x-1) +(x-1)+5(x-5)+5(x-5)
程序代码如下:
#includestdio.h
#includemath.h
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*
您可能关注的文档
最近下载
- 售电公司与电力用户购售电合同示范文本(2021年修订版).docx
- 大众进口途观途威Tiguan 2011-2016用户手册说明书.pdf
- 初二数学分式方程练习题含答案.docx VIP
- 南京军区总院医生护士进修汇报PPT总结模板 内容完整 血透室【36页】.pptx VIP
- 2023年建设工程施工图设计常见问题120例(建筑专业)20231228.pdf
- 气管镜检查术的护理配合完整版课件.ppt VIP
- 呼吸衰竭ppt(共40张PPT)【40页】.pptx
- 消除母婴三病传播培训课件.pptx
- 医疗器械收货和验收管理制度.docx VIP
- 进一步加强高校统战工作和辅导员队伍建设意见和建议.doc VIP
文档评论(0)