• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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-aaccuracy:
                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-x1accuracy:
                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中黄金分割法实现方法
    上一篇:Python 流媒体播放器的实现(基于VLC)
    下一篇:Python基础详解之邮件处理
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python实现黄金分割法的示例代码 python,实现,黄金,分,割法,