当前位置:范文大全 > 调查报告 > c语言数组实验报告_一维优化算法数学实验报告

c语言数组实验报告_一维优化算法数学实验报告

时间:2021-10-15 13:30:52 浏览次数:

PAGE

 数学实验

 实验报告

  实验名称 一维优化算法比较

 班 级 2012211122

 学 号 2012210532

 姓 名 朱海潮

 一、实验概述:

 【问题简述】

 有关“三点一维搜索”、“改进的抛物线法”两个优化算法,你可以选择其中一个,也可以将二者统一考虑。

 需要你编程实现(注:课件所附程序仅作参考,存在瑕疵),选择适当的算例进行测试,就你所得到的实验结果给出翔实的报告——当然,你可以给出可能的改进性算法及其相应的数值结果。

 比方,就“三点一维搜索”算法,可以研究算法与0.618法的区别与联系,可以以幂函数 的最小化问题作为测试算例,编程实现之,讨论算法的计算效率以及收敛性;特别,你可以尝试调节的取值,观测其对算法性能的影响;你还可以讨论算法中的不同构造方法(抛物线迭代、随机等)对方法的计算效率有大的影响吗?你有不同的改进建议吗?

 【实验目的】

 熟悉使用mathmatic软件进行计算机模拟的方法,掌握在该环境下的编程办法。

 掌握三种一维优化算法。

 【实验环境】

  Wolfram Mathamtic 9.0

 二、实验内容:

 【算法】

 0.618算法步骤:

 三点一维搜索步骤:

 改进的抛物线算法:

 【程序代码】

 【实验步骤】

  实验讨论两个问题

  1.对于函数,讨论当α取不同值时算法的效率(即迭代次数)。

  2.对于三点一维搜索算法,讨论当p取不同值时算法的效率。每次进行100次计算,然后取100次的平均值作为最终结果。

  首先编写三种搜索算法的函数,然后通过改变α获得不同α时的结果(α取0到7),并作图。同理,改变p获得不同p时三点一维算法的搜索结果(),并作图。

 三.实验总结

 【实验结论】

 图1 三点一维算法在取不同p值时的迭代次数

 如图1所示,在p取0.25左右时,迭代次数最小,此时三点一维算法的效率最好。

 图2 三种算法在α取不同值时的迭代次数

 如图2所示,在p取0.25时,三点一维搜索算法的波动较小且迭代次数较少;而0.618算法的迭代次数多且波动较大,算法不稳定;改进的抛物线算法在α取不同值时迭代次数改变很大。

 综上所述,三点一维算法可以说是最好的算法。

 【实验小结】

 通过实验,掌握了三种一维搜索算法,并且比较了三种算法的优劣,最后得出了三点一维搜索算法为较好的算法的结论。