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删除指定目录下过期文件的2个脚本分享
Apr 10 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
python matlibplot绘制3D图形
Jul 02 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
Python短信轰炸的代码
Mar 25 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
python模块内置属性概念及实例
Feb 18 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
JavaScript 拾漏补遗
2009/12/27 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Python的缺点和劣势分析
2019/11/19 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
Eclipse面试题
2014/03/22 面试题
大学在校生求职信范文
2013/11/21 职场文书
护士检查书
2014/01/17 职场文书
质量月活动总结
2014/08/26 职场文书
卖房协议书样本
2014/10/30 职场文书
暑假生活随笔
2015/08/15 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
ICOM R71E和R72E图文对比解说
2022/04/07 无线电
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android