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写的ARP攻击代码实例
Jun 04 Python
Python-基础-入门 简介
Aug 09 Python
Python算法之栈(stack)的实现
Aug 18 Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python算法应用实战之栈详解
Feb 04 Python
python中实现精确的浮点数运算详解
Nov 02 Python
使用pandas read_table读取csv文件的方法
Jul 04 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
django如何通过类视图使用装饰器
Jul 24 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
django model通过字典更新数据实例
Apr 01 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
PHP 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
基于curl数据采集之单页面采集函数get_html的使用
2013/04/28 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
使用Python写个小监控
2016/01/27 Python
Python 爬虫的工具列表大全
2016/01/31 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
python批量处理txt文件的实例代码
2020/01/13 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
PageFactory设计模式基于python实现
2020/04/14 Python
python Gabor滤波器讲解
2020/10/26 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
咨询公司各岗位职责
2013/12/02 职场文书
计算机学生求职信范文
2014/01/30 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
大三学习计划书范文
2014/05/02 职场文书
本科毕业生自荐信
2014/06/02 职场文书
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers