使用不同Newton型算法、不同的线搜索策略、不同求步长方法计算Watson函数(课本P93的2(1))的极小值(初值为0向量,m=31,2<=n<=31),分析比较算法的优劣:
- 阻尼Netown法、修正Netown法、拟Newton法(SR1法、BFGS法、DFP法)。
- 线搜索策略包括:精确搜索、满足Goldstein准则和Wolfe准则。
- 求步长方法包括:二分法、插值法。
- 从迭代次数、函数调用次数、导数次数、CPU时间四个角度分析不同方法的有效性(效率)。
- 程序使用Python语言实现(3.6以上版本),数值计算可以使用numpy库,符号计算可以使用sympy库,CPU时间可以使用time库time.process_time(),禁用其它库。
- 需提交程序源代码和分析报告(包含程序运行结果和分析结论)。 评分标准:
- 基础部分:60。完成阻尼Netown法、修正Netown法和一种拟Newton法每种方法都用二分法搜索满足三种搜索策略的步长。
- 延申部分:20。在1的基础上进一步实现剩余两种拟Newton法同样用用二分法搜索满足三种搜索策略的步长。
- 提高部分:20。在1和2的基础上进一步对上述Newton型算法都使用插值法搜索满足三种搜索策略的步长。 该项目仅完成了前两部分,分别实现阻尼牛顿法,修正牛顿法,DFP法,BFPS法,SR1法。
因作业需要,所以该项目在调用不同方法时,未写相应的调用程序,所以在调用相应方法时需要手动控制,将需要运行的方法注释去掉 例如调用DFP方法如下:
