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 相关文章推荐
Django框架中处理URLconf中特定的URL的方法
Jul 20 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
Python中subprocess的简单使用示例
Jul 28 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
python skimage 连通性区域检测方法
Jun 21 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
python退出命令是什么?详解python退出方法
Dec 10 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
python函数修饰符@的使用方法解析
Sep 02 Python
python由已知数组快速生成新数组的方法
Apr 08 Python
python中封包建立过程实例
Feb 18 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP中filter函数校验数据的方法详解
2015/07/31 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
基于jquery的超简单上下翻
2010/04/20 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
Input文本框随着输入内容多少自动延伸的实现
2017/02/15 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
骨干教师考核方案
2014/05/09 职场文书
病媒生物防治方案
2014/05/13 职场文书
七一讲话心得体会
2014/09/05 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
爱心捐书倡议书
2015/04/27 职场文书
关于迟到的检讨书
2015/05/06 职场文书