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 相关文章推荐
仅利用30行Python代码来展示X算法
Apr 01 Python
全面解析Python的While循环语句的使用方法
Oct 13 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
你应该知道的python列表去重方法
Jan 17 Python
Python编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
树莓派使用USB摄像头和motion实现监控
Jun 22 Python
python实现机器人卡牌
Oct 06 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
Mar 08 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
Python 流媒体播放器的实现(基于VLC)
tensorflow+k-means聚类简单实现猫狗图像分类的方法
python实现三阶魔方还原的示例代码
python基于opencv批量生成验证码的示例
python基于tkinter制作下班倒计时工具
Apr 28 #Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
k-means & DBSCAN 总结
You might like
怎样在php中使用PDF文档功能
2006/10/09 PHP
第三节--定义一个类
2006/11/16 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
2020/09/28 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python 识别图片中的文字信息方法
2018/05/10 Python
python实现一个猜拳游戏
2020/04/05 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
大学生学年自我鉴定
2014/02/10 职场文书
入党自我鉴定
2014/03/25 职场文书
购房协议书范本
2014/04/11 职场文书
学校先进集体事迹材料
2014/05/31 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书
干部作风建设工作总结
2014/10/29 职场文书
党员个人承诺书
2015/04/27 职场文书
2016十一国庆节感言
2015/12/09 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
golang中字符串MD5生成方式总结
2021/07/04 Golang
react 路由Link配置详解
2021/11/11 Javascript