最速下降法.doc
实验名称 最速下降法 一、 实验目的:
掌握最速下降法
二、 实验要求:
理解最速下降法的算法的思想,利用计算机编写出此算法的程
序。
三、 实验学时数:
2学时
四、 实验类别:
基础实验
五、 实验内容:
22Tminf(x),x,25x,X,,,2,2,,,0.01120用最速下降法求解
六、 实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
a) 实验程序流程图
b) 主要模块代码
#include
#include
float fun1(float x1,float x2)
{float a;
a=2*x1;
return a;
}
float fun2(float x1,float x2)
{float b;
b=50*x2;
return b;
}
float fun3(float x1,float x2)
{float y;
y=x1*x1+25*x2*x2;
return y;
}
main()
{ float t, e=0.01, x1=0, x2=1, a, b, y, m;
a=fun1(x1,x2);
b=fun2(x1,x2);
m=sqrt(a*a+b*b);
while(m>e)
{ t=(a*a+b*b)/(2*a*a+50*b*b);
x1=x1-a*t;
x2=x2-b*t;
a=fun1(x1,x2);
b=fun2(x1,x2);
m=sqrt(a*a+b*b);
}
y=fun3(x1,x2);
printf("The min is %f",y); }
c) 实例计算结果
d) 收获体会
最速下降法算法简单,每次迭代计算量小,即使从一个不好
的初始点出发,往往也能收敛到局部极小点。由于在远离极小点
的地方每次迭代可以使目标函数值有较大的下降,但是在接近极
小点的地方,由于锯齿现象,会导致每次行进距离缩短,从而使
收敛速度不快。