python怎样用黄金分割法计算?
Admin 2021-08-17 群英技术资讯 1852 次浏览
篇文章主要介绍了python实现黄金分割法的示例,对于大家了解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的的相关内容,大家可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python遍历目录下文件、读取、千万条数据合并详情,对文件夹和文件进行属性判断,首先对文件夹进行遍历,看文件夹里有什么样的文件,读取出文件夹中的所有文件,下面文章将详细介绍该内容,需要的小伙伴可以参考一下
何为pythonicpythonic如果翻译成中文的话就是很python。很+名词结构的用法在中国不少,比如:很娘,很国足,很CCTV等等。我的理解为,很+名词表达了一种特殊和强调的意味。所以很pyt
一个图片里边绘制多个图像是绘图中的常见需求,下面这篇文章主要给大家介绍了关于python绘制子图技巧之plt.subplot、plt.subplots及坐标轴修改的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
Python实现添加搜索路径的代码是什么,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
这篇文章主要为大家介绍了Python作用域与名字空间的源码学习笔记,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008