这篇文章主要介绍了python中黄金分割法实现方法,涉及Python数学计算的相关技巧,需要的朋友可以参考下

本文实例讲述了python中黄金分割法实现方法。分享给大家供大家参考。具体实现方法如下:

''' a,b = bracket(f,xStart,h)

Finds the brackets (a,b) of a minimum point of the

user-supplied scalar function f(x).

The search starts downhill from xStart with a step

length h.

x,fMin = search(f,a,b,tol=1.0e-6)

Golden section method for determining x that minimizes

the user-supplied scalar function f(x).

The minimum must be bracketed in (a,b).

'''

from math import log, ceil

def bracket(f,x1,h):

c = 1.618033989

f1 = f(x1)

x2 = x1 + h; f2 = f(x2)

# Determine downhill direction and change sign of h if needed

if f2 > f1:

h = -h

x2 = x1 + h; f2 = f(x2)

# Check if minimum between x1 - h and x1 + h

if f2 > f1: return x2,x1 - h

# Search loop

for i in range (100):

h = c*h

x3 = x2 + h; f3 = f(x3)

if f3 > f2: return x1,x3

x1 = x2; x2 = x3

f1 = f2; f2 = f3

print "Bracket did not find a mimimum"

def search(f,a,b,tol=1.0e-9):

nIter = int(ceil(-2.078087*log(tol/abs(b-a)))) # Eq. (10.4)

R = 0.618033989

C = 1.0 - R

# First telescoping

x1 = R*a + C*b; x2 = C*a + R*b

f1 = f(x1); f2 = f(x2)

# Main loop

for i in range(nIter):

if f1 > f2:

a = x1

x1 = x2; f1 = f2

x2 = C*a + R*b; f2 = f(x2)

else:

b = x2

x2 = x1; f2 = f1

x1 = R*a + C*b; f1 = f(x1)

if f1 < f2: return x1,f1

else: return x2,f2

希望本文所述对大家的Python程序设计有所帮助。

黄金比例编程python_python中黄金分割法实现方法相关推荐

  1. 黄金分割法 java实现_python中黄金分割法实现方法

    本文实例讲述了python中黄金分割法实现方法.分享给大家供大家参考.具体实现方法如下: ''' a,b = bracket(f,xStart,h) Finds the brackets (a,b) ...

  2. python绝对值编程_python中取绝对值简单方法总结

    python如何使用绝对值?下面给大家介绍三种求绝对值的方法: import math def abs_value1(): a = float(input('1.请输入一个数字:')) if a &g ...

  3. bmi编程python_Python中计算BMI的有效程序设计

    我是编程新手,也处于初级阶段.我写了一个程序来计算BMI在这里的几个主题的帮助下.在 代码点评:是这样吗我已经在程序中使用了三次main函数,我认为编写bmi公式也可以更加有效,即避免将float转换 ...

  4. 圆形比例分布图怎么做_比例的秘密,教你如何在设计中运用黄金比例

    吉萨金字塔.蒙娜丽莎.Twitter和百事可乐有什么共同点?答案很简单,它们的设计都遵循了黄金比例.作为一个常见的数学比例,黄金比例实际上是从自然界中总结并发现的,用于设计中的时候能赋予作品更多的设计 ...

  5. indesign里怎么打根号_排版中黄金比例、白银比例是什么意思?

    嗯简单的来说黄金比例就是1:0.618 就是一个会使人感受到美的比例(不知道这么说会不会有点模棱两可) 我还是说说黄金比例在排版中的运用吧(我们老师也是刚刚讲过/捂脸) 1.首先说简单的运用 因为是个 ...

  6. 系统相机裁剪比例_从单反到手机,三种黄金比例构图方法,让你的照片与众不同...

    古埃及金字塔和达芬奇蒙娜丽莎有什么共同之处?它们都是使用黄金比例进行设计的.不管是建筑设计还是绘画,它们都是属于艺术的一种,所以黄金比例也同样适用于摄影构图中.很多优秀的摄影作品都会使用黄金比例的构图 ...

  7. 网页设计中如何利用“黄金比例”

    黄金比例是什么? 黄金比例是一个数学比率,通常在自然界中都能发现它,用来建立平衡的构图. 它大约等于1.6180,也被称为"中庸之道"."黄金分割", 通常用希 ...

  8. python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法

    python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录

  9. 《Python面向对象编程指南》——1.2 基类中的__init__()方法

    本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...

最新文章

  1. 批处理如何做到等待用户输入一个值(dos命令行)
  2. 转gsoap使用总结
  3. PHP——获取上传文件的后缀名
  4. 松下SW-9585-C全功能DVD刻录机 狂降100+享受专业刻录!
  5. QT的QActionGroup类的使用
  6. Apache连接和访问控制
  7. php脚本来创建一个表,PHP - SQL脚本创建器
  8. php与数据库的连接用法 (签到一)
  9. 汇编8086CPU常用指令——详解
  10. 优秀渐变色彩应用PSD分层海报模板,大神都是这样玩渐变的,一看就懂
  11. ZK 数据传输三:在页面使用SpringUtil获取spring层类再获取数据(jsp页面或zul页面)...
  12. 关于win10用户使用protel99se可能出现的问题以及解决方法
  13. tomcat 窗口中文乱码解决
  14. 主动学习,半监督学习,直推式学习
  15. L13 操作系统的这棵树
  16. linux基础之系统安装
  17. IDEA不支持SQL语法校验,一招搞定
  18. Python手册--目录
  19. RADIUS 服务器之 hostapd 配置说明
  20. 掌财社:庄家为什么砸盘到跌停才出货

热门文章

  1. VUE-Element组件(二)NavMenu导航菜单
  2. ”六边形战士”雷达图原来是这样画出来的
  3. Android 使用Drawable实现圆角与圆形图案
  4. 5张思维导图详解《阿Q正传》高考生必知
  5. 对flutter的一些认识
  6. 2019运输科技领域最新SCIE期刊影响因子
  7. acpi error解决方法
  8. MetaIn中自定义poi点在智慧城市中的运用
  9. phpcms v9 首页 html,PHPCMS V9 TAG静态页面实现教程
  10. 如何用计算机算出我喜欢你,加减乘除爱情数字 如何用加减乘除算出我喜欢你...