以下为《《最优化理论与方法》实验报告(学号_姓名)》的无排版文字预览,完整内容请下载
海南师范大学数学与***
《最优化理论与方法》课程实验报告
班级
2020级数物信类5班
学号
***0528
姓 名
田某某
得 分
实验内容
利用Matlab编程,实现采用简单Armijo非精确线搜索求步长的三种方法:负梯度法、BFGS法及FR共轭梯度法,并求解如下无约束优化问题:
通过实验过程进一步理解三种方法的原理和步骤,并对实验结果进行分析比较。
实验目的
掌握无约束最优化算法的基本架构,并能熟练使用Matlab软件实现一些基本实用的算法并进行数值试验分析。
实验报告要求
1. 描述三个算法的步骤;
2. 说明程序中的参数设置以及关键技术(语句);
3. 对实验结果进行分析比较;
4. 实验总结
5. 附上Matlab程序清单:
5.1 计算函数值的程序
5.2 计算梯度的程序
5.3 简单Armijo非精确线性搜索程序
5.4 采用Armijo搜索的负梯度法程序
5.5 采用Armijo搜索的BFGS法程序
5.6 采用Armijo搜索的FR共轭梯度法程序
5.7 主程序
测试和分析要求
1. 三个算法中相同参数的取值设置须一致,终止准则均采用。
2. 算法程序的输入包括:初始点、终止准则中的精度和迭代次数上限;
输出包括:迭代次数,近似最优解、目标函数值;
3. 对给定的一个精度值,随机选取10个不同的初始点进行计算,用表格列出三种算法的结果(包括迭代次数、运行时间以及近似解目标函数值,近似解与精确解的2范数下的误差)
4. 随机选定一个初始点,对不同的精度值()进行计算,用表格列出三种算法的结果(包括迭代次数、运行时间以及近似解目标函数值,近似解与精确解的2范数下的误差)。
5. 除用规定的表格形式外,还鼓励自选其他形式对结果进行分析比较。
一、算法描述
二、程序中的参数设置、终止准则、关键技术(语句)等说明
三、实验结果及分析比较
四、实验总结(分析以及总结本次实验的经验收获以及心得体会)
附录(Matlab程序清单)
1.计算函数值的程序function?y=fun(x)y=100*(x(2)-x(1)^2)^2+(1-x(1))^2;end2.计算梯度的程序function?g=gfun(x)g=[-400*(x(2)-x(1).^2)*x(1)-2*(1-x(1)),200*(x(2)-x(1).^2)]';end
3.简单Armijo非精确线性搜索程序function?[x,fx,m]=Armijo(xk,fk,dk,gdk)p=0.4;b=0.4;a=1;x=xk+a*dk;fx=fun(x);m=1;mmax=20;while?(mfk+a*p*gdk)????????a=a*b;????????x=xk+a*dk;????????fx=fun(x);????????m=m+1;????else????????break????endend4.采用Armijo搜索的负梯度法程序function?[k,xk,fx]?=?SD_Armijo(?x0,myeps,kmax)k=0;xk=x0;while?k
以上为《《最优化理论与方法》实验报告(学号_姓名)》的无排版文字预览,完整内容请下载
《最优化理论与方法》实验报告(学号_姓名)由用户“tmm398195389”分享发布,转载请注明出处