您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python实现黄金分割法的示例代码

51自学网 2021-10-30 22:43:11
  python
这篇教程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 黄金分割法内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


Python 流媒体播放器的实现(基于VLC)
Python基础详解之邮件处理
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。