优选法和newton法在实践中的比较

对于函数f(x)=2*x^2-4*x-6 ,求在(-1,2)范围内的极值,分别用优选法和newton法实践,看比较的次数。

(setq  count  0)

(defun  calc  (x)

(progn

(incf  count )

(+   (*  2

(*  x

x))

(-  0

(*  4

x))

(-  0

6))))

newton

(defun  look ( mid left right  fun)

(if (< (abs (-  (funcall fun  mid )

(funcall fun  left ) ))

(/ 1.0  10000000))

mid

(if  (>  (funcall fun  left )

(funcall fun  right ))

(look   (/  (+  mid right ) 2.0)  mid right  fun)

(look   (/  (+  left mid ) 2.0) left mid  fun ))))

//节省计算次数  ,保存局部变量

(defun  look ( mid left right leftvalue rightvalue fun)

(let  ( (midvalue  (funcall  fun  mid) ))

(if (< (abs (-  midvalue

leftvalue ))

(/ 1.0  10000000))

mid

(if  (>  leftvalue

rightvalue)

(look   (/  (+  mid right ) 2.0)  mid right midvalue rightvalue fun)

(look   (/  (+  left mid ) 2.0) left mid  leftvalue  midvalue fun )))))

(setq  count  0)

(print (look (/  (+  -1.0  2.0)  2)  -1.0  2.0  (calc -1.0) (calc 2.0) 'calc ))

(print  'compare)

(setq  count  0)

(print (lookex 0.8  0  (/ pi  2)  0.5 'calc ))

没保存局部变量前为54,保存之后下降为16。

下面看下优选法:

(setq  golden  (/  (-  (sqrt  5)

1)

2.0))

(defun  getright  (left right)

(+  left

(*  golden

(-  right

left))))

(defun  getleft  (left right)

(+  left

(*  (- 1 golden)

(-  right

left))))

(defun  look (goldenleft goldenright leftvalue rightvalue left right  fun)

(if (< (abs (-  leftvalue

rightvalue  ))

(/ 1.0  10000000))

goldenleft

(if  (>  leftvalue

rightvalue)

(look   goldenright (getright goldenleft right)  rightvalue (calc (getright goldenleft right)) goldenleft right fun)

(look   (getleft left goldenright) goldenleft (calc (getleft left goldenright))   leftvalue  left  goldenright fun ))))

(setq  count  0)

(print (look (getleft -1.0  2.0 )

(getright -1.0  2.0 )

(calc (getleft -1.0  2.0 ) )

(calc (getright -1.0  2.0 ) )

-1.0

2.0

'calc ))

[9]> count

19

从结果可以发现比较了19次才得出结果;

另外要注意,在判断终止条件的时候,两者选择的标准是不一样的,一个是以值,一个以坐标。

不过在目前的情况中是一样的,这样是为了便于与newton法比较;但在这种情况下有可能出现两者相等,但离所求的点很远的情况,(关于轴对称的情况).

优选法和newton法在实践中的比较相关推荐

  1. 优选法和newton法在实践中的比较(分析原因)

    优选法和newton法在实践中的比较(分析原因) 优选法得到应用的原因是在它所表示的情况下,上一次判断总能给下一次判断节省一次,下面来证明: 假设长度为l的线段,其中的黄金分割点分别为x,这个点的对称 ...

  2. 向量值函数在计算机工程与应用,拟Newton法在高阶矩阵中的应用-计算机工程与应用.PDF...

    Computer Engineering and Applications 计算机工程与应用 2012 ,48 (16) 33 ⦾研究.探讨⦾ 拟Newton 法在高阶矩阵中的应用 --求解最大特征值 ...

  3. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  4. 黑盒测试技术中的等价类划分法、边界值分析法、因果图法和决策表法进行测试用例设计

    一.实验目的 1.能熟练应用黑盒测试技术中的等价类划分法.边界值分析法.因果图法和决策表法进行测试用例设计. 2.对测试用例进行优化设计 二.实验环境 Windows系统+ Office工具 三.实验 ...

  5. AHP层次分析法在水利中的实践技术应用

    原文:AHP层次分析法在水利中的实践技术应用 内容简述: 1.认识 AHP,掌握 AHP 的基本原理,优缺点及建模的步骤.以手算案例的方式,熟 悉层次分析法的计算过程,为后期学习软件夯实理论基础. 2 ...

  6. python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  7. 软件测试中等价类划分为,等价类划分法和边界值法

    等价类划分法和边界值法都是软件测试中基于输入域的方法.从被测试的对象来看,无论是整个系统,还是一个模型.一个函数.都有数据输入或参数调用,通过对不同数据的输入,检查其输出的数据以判断测试是否通过的方法 ...

  8. 容量法和库仑法的异同点_快速搞懂「活性污泥法」,主要把握这4点!

    本篇讲活性污泥法,初识活性污泥主要把握好以下4点内容. 01 微生物和活性污泥是一回事儿不? 这两个概念有一定相似性.重合性,但又不尽相同. 微生物我们前面讲过了,就是肉眼不可见的微小生命体:而活性污 ...

  9. 单纯形法和单纯形表法

    单纯形法 单纯形法(Simplex Method)是一种线性规划算法,用于求解线性规划问题.它是由乔治·达内(George Dantzig)于1947年发明的,是现代数学编程的里程碑之一.单纯形法基于 ...

最新文章

  1. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp
  2. android软件更新模块实现的技术和方法,Android APK签名原理及方法
  3. 使用github pages创建博客
  4. JAVA中的“+”、“concat”和“append”
  5. 数据库日志文件(databasename_log.ldf)太大 如何清除
  6. Web浏览器测试,怎么提取测试点 - web测试方法总结
  7. Element UI 极简教程(1)
  8. 伺服电机算功率基本公式_伺服电机功率计算选型.ppt
  9. 终结者2免费教程_如何在模拟器上玩(匹配的还是手机服)_适用最新客户端
  10. 清华天才王垠受邀面试阿里P9,被P10面跪后网上怒发文,惨打325的P10赵海平回应了!...
  11. 阿里技术专家十五问,真题面试刀刀见肉,走进面试间(答案解析)
  12. AutoIt教程资源汇总
  13. Tensorflow1.7+cuda9.0+cudnn7.0中的各种意(da)外(keng)
  14. 0203逻辑卷管理、RAID磁盘阵列、VD0、管理运行级别
  15. 网络布线的概念和IP的计算
  16. 2021年危险化学品生产单位安全生产管理人员新版试题及危险化学品生产单位安全生产管理人员考试总结
  17. mysql使用()文件中的配置参数_MySQL使用( )文件中的配置参数。 答案:my.ini
  18. 替代A4988的微型打印机驱动TMI8421国产电机驱动芯片
  19. 辐射光电流测试软件,辐照度测量与评估教程.pptx
  20. 近1、2年来设计的几个飞机构型

热门文章

  1. awk命令初级、高级篇(详细)
  2. 软通动力适合应届生实习吗?
  3. 数学分析闭区间套定理_闭区间套定理的介绍及其应用
  4. 极限初学者常遇到的几个坑(一)
  5. 五、解读VisualDSP++案例之21489 AD1939 C Sample-based Talkthru 48 or 96 kHz
  6. 【转】【详细】SATA、mSATA 、PCIe和M.2——SSD硬盘的接口
  7. 《笨方法学python3》习题46.2 创建骨架项目目录
  8. 打印直角三角形(朝右)
  9. 如何导出IEEE中的参考文献
  10. Jvm的堆、栈和数据结构的堆、栈的区别