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 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
Python的Flask框架中实现分页功能的教程
Apr 20 Python
Python同时向控制台和文件输出日志logging的方法
May 26 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
python设计tcp数据包协议类的例子
Jul 23 Python
python字典的setdefault的巧妙用法
Aug 07 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP生成树的方法
2015/07/28 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
JavaScript验证Email(3种方法)
2015/09/21 Javascript
jQuery实现分隔条左右拖动功能
2015/11/21 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
Vue响应式原理详解
2017/04/18 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python实现从wind导入数据
2019/12/03 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
python sleep和wait对比总结
2021/02/03 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
文书工作总结(范文)
2019/07/11 职场文书
python实现学生信息管理系统(面向对象)
2022/06/05 Python