python实现黄金分割法的示例代码


Posted in Python onApril 28, 2021

一.问题

python实现黄金分割法的示例代码

使用黄金分割法来计算

二.代码

#黄金分割法python求解PPT上第一个例题
#因为函数要求解最大值而这个方法一般求解最小值所以把函数取负

import numpy as np
import matplotlib.pyplot as plt

rate = 0.618034

def f(x):
    #求解体积函数公式,乘1.0将结果变为浮点数
    return -1.0*x*(350-2*x)*(260-2*x)  

def tarceback(f,a0,b0,accuracy):
    a = a0
    b = b0
    x2 = a+rate*(b-a)
    x1 = b-rate*(b-a)
    f1 = f(x1)
    f2 = f(x2)
    print(x1,x2)
    arr = search(f,a,b,x1,x2,f1,f2,accuracy)
    printFunc(f,a,b,arr[0],arr[1])
    
def search(f,a,b,x1,x2,f1,f2,accuracy):
    if f1<=f2:
        if x2-a<accuracy:
            print(x1,f1)
            return (x1,f1)
        else:
            b = x2
            x2 = x1
            f2 = f1
            x1 = a+b-x2
            f1 = f(x1)
            print(x1,x2)
            return search(f,a,b,x1,x2,f1,f2,accuracy)
    else:
        if b-x1<accuracy:
            print(x2,f2)
            return (x2,f2)
        else:
            a = x1
            x1 = x2
            f1 = f2
            x2 = a+b-x1
            f2 = f(x2)
            print(x1,x2)
            return search(f,a,b,x1,x2,f1,f2,accuracy)

def printFunc(f,a,b,x,y):
    t = np.arange(a,b,0.01)
    s = f(t)
    plt.plot(t,s)
    plt.plot([x],[y],'ro')
    plt.plot([x,x],[y,0],'k--')
    plt.plot([0,x],[y,y],'k--')
#     plt.annotate(r'$(x,y)$',xy=(x,y))
    plt.show()

tarceback(f,0,130,0.05)

三.结果

python实现黄金分割法的示例代码

到此这篇关于python实现黄金分割法的示例代码的文章就介绍到这了,更多相关python 黄金分割法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
深入解析Python中的线程同步方法
Jun 14 Python
深入理解Python中的内置常量
May 20 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
Python中zip()函数的简单用法举例
Sep 02 Python
Python3运算符常见用法分析
Feb 14 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
Dec 21 Python
python Tkinter的简单入门教程
Apr 11 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
Content-type 的说明
2006/10/09 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php实现的通用图片处理类
2015/03/24 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
tp5框架基于ajax实现异步删除图片的方法示例
2020/02/10 PHP
javascript控制图片播放的实现代码
2020/07/29 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
js实现筛选功能
2020/11/24 Javascript
[02:17]TI4西雅图DOTA2前线报道 啸天mik夫妻档解说
2014/07/08 DOTA
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
理论讲解python多进程并发编程
2018/02/09 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
django项目中新增app的2种实现方法
2020/04/01 Python
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
物流专业毕业生推荐信范文
2013/11/18 职场文书
大学毕业感言100字
2014/02/03 职场文书
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
租赁意向书范本
2014/04/01 职场文书
市场调查策划方案
2014/06/10 职场文书
公司户外活动总结
2014/07/04 职场文书
车贷收入证明范本
2014/09/14 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
土地转让协议书
2014/09/27 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL