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实现多线程采集的2个代码例子
Jul 07 Python
Python 通配符删除文件的实例
Apr 24 Python
在windows下Python打印彩色字体的方法
May 15 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
Python3 合并二叉树的实现
Sep 30 Python
Tensorflow的常用矩阵生成方式
Jan 04 Python
python编程进阶之类和对象用法实例分析
Feb 21 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
python logging模块的使用详解
Oct 23 Python
Python可视化工具如何实现动态图表
Oct 23 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
python中sys.argv函数精简概括
2018/07/08 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
python 字符串追加实例
2019/07/20 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
在python中使用nohup命令说明
2020/04/16 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
英国团购网站:Groupon英国
2017/11/28 全球购物
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
大学生毕业求职的自我评价
2013/09/29 职场文书
优秀医生事迹材料
2014/02/12 职场文书
师范生求职自荐信
2014/06/14 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
春节慰问信范文
2015/02/15 职场文书
获奖感言一句话
2015/07/31 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
教你用python控制安卓手机
2021/05/13 Python