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. Python unittest生成测试报告过程解析2. 如何基于python3和Vue实现AES数据加密3. python matplotlib工具栏源码探析二之添加、删除内置工具项的案例4. php去掉数组的第一个值的两个函数:array_shift、array_splice5. CSS3实例分享之多重背景的实现(Multiple backgrounds)6. 数组在java中的扩容的实例方法7. uni-app结合PHP实现单用户登陆demo及解析8. 解决VUE项目使用Element-ui 下拉组件的验证失效问题9. 用PHP读取和编写XML DOM10. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera

网公网安备