• python scipy优化器模块(optimize)


    pyhton数据处理与分析之scipy优化器及不同函数求根

    1、Scipy的优化器模块optimize可以用来求取不同函数在多个约束条件下的最优化问题,也可以用来求取函数在某一点附近的根和对应的函数值;
    2、scipy求取函数最优解问题(以多约束条件下的最小值为例)如下所示:
    import numpy as np #导入数据结构nmupy模块
    import matplotlib.pyplot as plt
    from scipy.optimize import minimize #导入最小值优化模块
    def func(x):
    return (2*x[0]*x[1]+2*x[0]-x[0]**2+2*x[1]**2) #定义函数
    def func_deriv(x):
    dfdx0=(-2*x[0]+2*x[1]+2)
    dfdx1=(2*x[0]+4*x[1])
    return np.array([dfdx0,dfdx1])
    cons=({"type":"eq","fun":lambda x:np.array([x[0]**3-x[1]]),"jac":lambda x:np.array([3*(x[0]**2),-1.0])},{"type":"ineq","fun":lambda x:np.array([x[1]-1]),"jac":lambda x:np.array([0,1])})#定义函数的多个约束条件
    res=minimize(func,[-1.0,1.0],jac=func_deriv,constraints=cons,method="SLSQP",options={"disp":True}) #最小值优化函数格式调用
    print("RESTRICT:",res)

    3、scipy的root函数也可以用来求取在特定点附近的一元函数的根
    import numpy as np #导入数据结构nmupy模块
    import matplotlib.pyplot as plt
    from scipy.optimize import root
    def f(x):
    return x**2-3*x+2
    sol=root(f,1)     #表示求取函数f(x)在x=1附近处的根
    print("ROOT:",sol.x,sol.fun)    #输出最优根处的x的值及其数值计算的函数值

  • 相关阅读:
    基于LORA的无线广域物联网应用系统设计
    使用ESP8266、NodeMCU、机智云改造传统插座为智能插座
    嵌入式技术的智能闭环反馈增氧系统
    pythonyaml文件写法和使用
    this的二种使用方式
    实例变量和局部变量 对象的实例方法
    方法重载
    封装
    面向对象 类
    构造方法
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/11189622.html
Copyright © 2020-2023  润新知