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局部赋值的规则
Mar 07 Python
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
Apr 15 Python
举例讲解Python中is和id的用法
Apr 03 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
flask实现验证码并验证功能
Dec 05 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
利用python实现凯撒密码加解密功能
Mar 31 Python
PyCharm常用配置和常用插件(小结)
Feb 06 Python
python链表类中获取元素实例方法
Feb 23 Python
python 爬取天气网卫星图片
Jun 07 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
php集成开发环境详解
2019/09/24 PHP
javascript 常用方法总结
2009/06/03 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
对于Python中线程问题的简单讲解
2015/04/03 Python
Python求导数的方法
2015/05/09 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python工程师面试必备25条知识点
2018/01/17 Python
python模拟实现分发扑克牌
2020/04/22 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
python 模拟登录B站的示例代码
2020/12/15 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
彪马美国官网:PUMA美国
2017/03/09 全球购物
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
2014年党员自我剖析材料
2014/10/07 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
Spring Security动态权限的实现方法详解
2022/06/16 Java/Android