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实现统计英文单词个数及字符串分割代码
字符串分割 复制代码 代码如下: str="a|and|hello|||ab" alist = str.split('|') print alist 结果 复制代码 代码如下: str="a hello{这里换成5个空格}world{这里换成3个空格}" alist=str.split(' ') print alist 统计英文单词的个数的python代码 复制代码 代码如下: # -*- coding: utf-8 -*- import os,sys info =
-
python简单分割文件的方法
本文实例讲述了python简单分割文件的方法.分享给大家供大家参考.具体如下: 有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多个小文件再上传. #!/usr/bin/env python def split(filename, size): fp = open(filename, 'rb') i = 0 n = 0 temp = open(filename+'.part'+str(i),'wb') buf = fp.read(1024) while(True): temp.wri
-
Python实现分割文件及合并文件的方法
本文实例讲述了Python实现分割文件及合并文件的方法.分享给大家供大家参考.具体如下: 分割文件split.py如下: #!/usr/bin/python ########################################################################## # split a file into a set of parts; join.py puts them back together; # this is a customizable ve
-
用python分割TXT文件成4K的TXT文件
复制代码 代码如下: ########################## # # # 为了避免截断中文字符 # # 文件要求是 unicode 编码 # # txt文件另存为对话框下面有下拉框,可选存 # # 储编码格式 # # # ########################## import os import struct filename = str(raw_input("Please enter an old file name: ")) filenamepre = s
-
python分割和拼接字符串
关于string的split 和 join 方法对导入os模块进行os.path.splie()/os.path.join() 貌似是处理机制不一样,但是功能上一样. 1.string.split(str=' ',num=string.count(str)): 以str为分隔,符切片string,如果num有指定值,则仅分隔num个子字符串.S.split([sep [,maxsplit]]) -> 由字符串分割成的列表 返回一组使用分隔符(sep)分割字符串形成的列表.如果指定最大分割数,则在
-
python分割文件的常用方法
本文大家整理了一些比较好用的关于python分割文件的方法,方法非常的简单实用.分享给大家供大家参考.具体如下: 例子1 指定分割文件大小 配置文件 config.ini: 复制代码 代码如下: [global] #原文件存放目录 dir1=F:\work\python\3595\pyserver\test #新文件存放目录 dir2=F:\work\python\3595\pyserver\test1 python 代码如下: 复制代码 代码如下: #!/usr/bin/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
-
Python中pygame安装方法图文详解
本文实例讲述了Python中pygame安装方法.分享给大家供大家参考,具体如下: 这里主要描述一下我们怎样来安装pygame 可能很多人像我一样,发现了pygame是个好东东,但是就是不知道怎样使用,或者怎样安装,在百度/google上面搜索了一番后,发现没有一篇 详细描述pygame的安装过程的文章.如果你是其中的一员,那么这篇教程可能会帮助到你. 当然,在学习pygame的时候,需要你要有一定的python基础知识的.如果你已经具备了一定的python基础,那么接下来的内容可能对你来说就很
-
python中私有函数调用方法解密
本文实例讲述了python中私有函数调用方法.分享给大家供大家参考,具体如下: 与大多数语言一样,Python 也有私有的概念: ① 私有函数不可以从它们的模块外面被调用 ② 私有类方法不能够从它们的类外面被调用 ③ 私有属性不能够从它们的类外面被访问 与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是公有,完全取决于它的名字. 如果一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的:其它所有的都是公有的. Python 没有类方法 保护
-
Python中格式化format()方法详解
Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加; 使用":", 指定代表元素需要的操作, 如":.3"小数点三位, ":8"占8个字符空间等; 还可以添加特定的字母, 如: 'b' - 二进制. 将数字以2为基
-
Python中的sort()方法使用基础教程
一.基本形式 sorted(iterable[, cmp[, key[, reverse]]]) iterable.sort(cmp[, key[, reverse]]) 参数解释: (1)iterable指定要排序的list或者iterable,不用多说: (2)cmp为函数,指定排序时进行比较的函数,可以指定一个函数或者lambda函数,如: students为类对象的list,没个成员有三个域,用sorted进行比较时可以自己定cmp函数,例如这里要通过比较第三个数据成员来排序,代码可以这
-
python中的sort方法使用详解
Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明: 一.基本形式 列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的. x = [4, 6, 2, 1, 7, 9] x.sort() print x # [1, 2, 4, 6, 7, 9] 如果需要一个排序好的副本,同时保持原有列表不变,怎么实现呢 x =[4, 6, 2, 1, 7, 9] y = x[ : ] y.sort() print y #[1
-
Python中list初始化方法示例
本文实例讲述了Python中list初始化方法.分享给大家供大家参考,具体如下: 1.基本方法. lst = [1, 2, 3, 4, 5] 2.初始化连续数字. >>> lst = [n for n in range(5, 10)] >>> print(lst) [5, 6, 7, 8, 9] 3.初始化n个相同值.(两种方式) >>> lst = ['x' for n in range(5)] >>> print(lst) ['x
-
python中pylint使用方法(pylint代码检查)
一.Pylint 是什么 Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码. Pylint 是一个 Python 工具,除了平常代码分析工具的作用之外,它提供了更多的功能:如检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口是否被真正实现等等. Pylint 的一个很大的好处是它的高可配置性,高可定制性,并且可以很容易写小插件来添加功能. 如果运行两次 Pylint,它会同时显示出当前和上次的运行结果,从而可
-
python中利用zfill方法自动给数字前面补0
python中有一个zfill方法用来给字符串前面补0,非常有用 view sourceprint? n = "123" s = n.zfill(5) assert s == "00123" zfill()也可以给负数补0 n = "-123" s = n.zfill(5) assert s == "-0123" 对于纯数字,我们也可以通过格式化的方式来补0 n = 123 s = "%05d" % n a
-
Random 在 Python 中的使用方法
1.random.random(): 会随机生成0-1之间的小数 例如: 2.random.uniform(min,max): 会随机生成 min - max 之间的小数,其中min 和 max 的位置可以互换而不会报错: 3.random.randint(min,max): 随机生成 min - max 之间的整数,如果min > max 会报错: 错误: 4.random.choice(元祖/列表/range()/字符串): 会从给定的元祖/列表/range()/字符串 中随机挑选出一个元素
随机推荐
- 使用Bash Shell检查文件是否存在的方法
- oracle数据库导入TXT文件方法介绍
- jquery ui bootstrap 实现自定义风格
- 常用的正则表达式集锦
- 使用Aspose.Cells组件生成Excel文件实例
- 使用ASP.NET操作IIS7中应用程序
- PHP单元测试利器 PHPUNIT初探第1/2页
- codeigniter使用技巧批量插入数据实例方法分享
- jquery中键盘事件小结
- Linux下安装与使用MySQL详细介绍
- 一个状态机的实现
- PHP中in_array函数使用的问题与解决办法
- java从键盘输入数字并判断大小的方法
- python 寻找list中最大元素对应的索引方法
- WPF实现窗体中的悬浮按钮
- javascript中关于类型判断的一些疑惑小结
- Python partial函数原理及用法解析
- 汇编程序 查表求平方的实现
- java中catalina.home与catalina.base区别点整理
- iOS实现视频下载并自动保存到相册功能