黄金比例编程python_python中黄金分割法实现方法
这篇文章主要介绍了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中黄金分割法实现方法相关推荐
- 黄金分割法 java实现_python中黄金分割法实现方法
本文实例讲述了python中黄金分割法实现方法.分享给大家供大家参考.具体实现方法如下: ''' a,b = bracket(f,xStart,h) Finds the brackets (a,b) ...
- python绝对值编程_python中取绝对值简单方法总结
python如何使用绝对值?下面给大家介绍三种求绝对值的方法: import math def abs_value1(): a = float(input('1.请输入一个数字:')) if a &g ...
- bmi编程python_Python中计算BMI的有效程序设计
我是编程新手,也处于初级阶段.我写了一个程序来计算BMI在这里的几个主题的帮助下.在 代码点评:是这样吗我已经在程序中使用了三次main函数,我认为编写bmi公式也可以更加有效,即避免将float转换 ...
- 圆形比例分布图怎么做_比例的秘密,教你如何在设计中运用黄金比例
吉萨金字塔.蒙娜丽莎.Twitter和百事可乐有什么共同点?答案很简单,它们的设计都遵循了黄金比例.作为一个常见的数学比例,黄金比例实际上是从自然界中总结并发现的,用于设计中的时候能赋予作品更多的设计 ...
- indesign里怎么打根号_排版中黄金比例、白银比例是什么意思?
嗯简单的来说黄金比例就是1:0.618 就是一个会使人感受到美的比例(不知道这么说会不会有点模棱两可) 我还是说说黄金比例在排版中的运用吧(我们老师也是刚刚讲过/捂脸) 1.首先说简单的运用 因为是个 ...
- 系统相机裁剪比例_从单反到手机,三种黄金比例构图方法,让你的照片与众不同...
古埃及金字塔和达芬奇蒙娜丽莎有什么共同之处?它们都是使用黄金比例进行设计的.不管是建筑设计还是绘画,它们都是属于艺术的一种,所以黄金比例也同样适用于摄影构图中.很多优秀的摄影作品都会使用黄金比例的构图 ...
- 网页设计中如何利用“黄金比例”
黄金比例是什么? 黄金比例是一个数学比率,通常在自然界中都能发现它,用来建立平衡的构图. 它大约等于1.6180,也被称为"中庸之道"."黄金分割", 通常用希 ...
- python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法
python中函数和方法的区别?Python编程判断当前获取的对象是函数还是方法 目录
- 《Python面向对象编程指南》——1.2 基类中的__init__()方法
本节书摘来自异步社区<Python面向对象编程指南>一书中的第1章,第1.2节,作者[美]Steven F. Lott, 张心韬 兰亮 译,更多章节内容可以访问云栖社区"异步社区 ...
最新文章
- 批处理如何做到等待用户输入一个值(dos命令行)
- 转gsoap使用总结
- PHP——获取上传文件的后缀名
- 松下SW-9585-C全功能DVD刻录机 狂降100+享受专业刻录!
- QT的QActionGroup类的使用
- Apache连接和访问控制
- php脚本来创建一个表,PHP - SQL脚本创建器
- php与数据库的连接用法 (签到一)
- 汇编8086CPU常用指令——详解
- 优秀渐变色彩应用PSD分层海报模板,大神都是这样玩渐变的,一看就懂
- ZK 数据传输三:在页面使用SpringUtil获取spring层类再获取数据(jsp页面或zul页面)...
- 关于win10用户使用protel99se可能出现的问题以及解决方法
- tomcat 窗口中文乱码解决
- 主动学习,半监督学习,直推式学习
- L13 操作系统的这棵树
- linux基础之系统安装
- IDEA不支持SQL语法校验,一招搞定
- Python手册--目录
- RADIUS 服务器之 hostapd 配置说明
- 掌财社:庄家为什么砸盘到跌停才出货