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和JavaScript间代码转换的4个工具
Feb 22 Python
python魔法方法-自定义序列详解
Jul 21 Python
python字符串过滤性能比较5种方法
Jun 22 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
eclipse创建python项目步骤详解
May 10 Python
python实现录屏功能(亲测好用)
Mar 02 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
Python Pivot table透视表使用方法解析
Sep 11 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
js下判断 iframe 是否加载完成的完美方法
2010/10/26 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
2018/08/28 Javascript
JavaScript内置对象math,global功能与用法实例分析
2019/06/10 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
python实现简单爬虫功能的示例
2016/10/24 Python
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
教师申诉制度
2014/01/29 职场文书
元宵晚会主持词
2014/03/25 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
预备党员转正材料
2014/12/19 职场文书
单位接收函范文
2015/01/30 职场文书
田径运动会通讯稿
2015/07/18 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
python标准库ElementTree处理xml
2022/05/20 Python