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三元运算符实现方法
Dec 17 Python
Python使用MySQLdb for Python操作数据库教程
Oct 11 Python
小小聊天室Python代码实现
Aug 17 Python
wxPython实现窗口用图片做背景
Apr 25 Python
Python中logging实例讲解
Jan 17 Python
Python3离线安装Requests模块问题
Oct 13 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
golang特有程序结构入门教程
Jun 02 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
微信小程序 生命周期详解
2016/10/12 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
学习python类方法与对象方法
2016/03/15 Python
使用python 3实现发送邮件功能
2018/06/15 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python实现整数的二进制循环移位
2019/03/08 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
python序列类型种类详解
2020/02/26 Python
python mongo 向数据中的数组类型新增数据操作
2020/12/05 Python
2014年元旦感言
2014/03/06 职场文书
责任担保书范文
2014/05/21 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
实名检举信范文
2015/03/02 职场文书
新郎父母婚礼答谢词
2015/09/29 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
Python&Matlab实现樱花的绘制
2022/04/07 Python