python实现黄金分割法的示例代码
使用黄金分割法来计算
二.代码#黄金分割法python求解PPT上第一个例题#因为函数要求解最大值而这个方法一般求解最小值所以把函数取负import numpy as npimport matplotlib.pyplot as pltrate = 0.618034def 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 黄金分割法内容请搜索好吧啦网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好吧啦网!
相关文章:
1. 正则表达式匹配${key}并在Java中使用的详细方法2. python 解决pycharm运行py文件只有unittest选项的问题3. Python通过fnmatch模块实现文件名匹配4. Android Studio 4.0 正式发布在Ubuntu 20.04中安装的方法5. 解决vue scoped scss 无效的问题6. 低版本IE正常运行HTML5+CSS3网站的3种解决方案7. python+adb+monkey实现Rom稳定性测试详解8. 关于python中readlines函数的参数hint的相关知识总结9. 基于Java实现简单贪吃蛇游戏10. log4net在Asp.net MVC4中的使用过程
