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中的文本处理
Apr 11 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
对Python信号处理模块signal详解
Jan 09 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python django中8000端口被占用的解决
Dec 17 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
pandas中ix的使用详细讲解
Mar 09 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
python中uuid模块实例浅析
Dec 29 Python
Python实现列表拼接和去重的三种方式
Jul 02 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
PHP数据库开发知多少
2006/10/09 PHP
php正则校验用户名介绍
2008/07/19 PHP
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
php操作xml入门之cdata区段
2015/01/23 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
BootStrap modal模态弹窗使用小结
2016/10/26 Javascript
jsTree使用记录实例
2016/12/01 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
js禁止浏览器的回退事件
2017/04/20 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
[02:30]辉夜杯主赛事第二日胜者组半决赛 CDEC.Y赛后采访
2015/12/26 DOTA
Python双向循环链表实现方法分析
2018/07/30 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python pandas 时间日期的处理实现
2019/07/30 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
高中军训的心得体会
2014/09/01 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
财务个人年度总结范文
2015/02/26 职场文书
求职自我评价怎么写
2015/03/09 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
python scipy 稀疏矩阵的使用说明
2021/05/26 Python