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多线程编程(一):threading模块综述
Apr 05 Python
python 队列详解及实例代码
Oct 18 Python
Python实现一个Git日志统计分析的小工具
Dec 14 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
PyQt5实现QLineEdit添加clicked信号的方法
Jun 25 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
Jan 28 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP PDO函数库详解
2010/04/27 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
javascript定义函数的方法
2010/12/06 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
改变隐藏的input中value值的方法
2014/03/19 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
js图片放大镜实例讲解(必看篇)
2017/07/17 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
ansible作为python模块库使用的方法实例
2017/01/17 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
自荐信范文
2013/12/10 职场文书
大学生实习思想汇报
2014/01/12 职场文书
房屋租赁协议书
2014/04/10 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
医德医风自我评价
2014/09/19 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
大学生读书笔记大全
2015/07/01 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
jquery插件实现悬浮的菜单
2021/04/24 jQuery
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android