python怎样用黄金分割法计算?
Admin 2021-08-17 群英技术资讯 2256 次浏览
篇文章主要介绍了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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
使用pyautogui库获取屏幕对应坐标。因为使用XPath无法点击到页面的播放按钮,所以使用pyautogui库进行对应位置的点击。屏幕尺寸为1920×1080,在不化Chrom浏览器的情况下,获取到播放按钮的坐标为(676, 860)运行此程序,可以每秒输出鼠标对应的位置
这篇文章主要介绍了教你利用Python+Turtle绘制简易版爱心表白,文中有非常详细的代码示例,对想要和男朋友或者女朋友表白的小伙伴们有很大帮助哟,需要的朋友可以参考下
这篇文章主要介绍了利用制作的python小程序-飘落的银杏,代码详细,简单易懂,有需要练习python的朋友可以参考下
PyTorch出现平方根报错是什么原因?一些朋友遇到在使用PyTorch进行平方根计算时,出现平方根报错的情况,那么这时我们应该怎样解决呢?接下来小编就和大家一样探讨看看。
这篇文章主要介绍了利用Python制作一个简单的知识竞赛小游戏,可以实现回答问题功能,文中的示例代码介绍详细,感兴趣的同学快跟随小编一起学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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