zoukankan      html  css  js  c++  java
  • python自定义函数拟合


    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.optimize import curve_fit#用python拟合函数最主要模块就是cure_fit
    #准备数据
    x=[一组数据]
    y=[一组数据]
    #定义你自己想要拟合的函数
    def func(x,E0,B0,B1,V0):
    return E0+(9.0/16)*V0*B0*(((V0/x)**(2.0/3)-1)**(3.0)*B1)+(9.0/16)*V0*B0*((V0/x)**(2.0/3)-1)**(2.0)*(6-4*(V0/x)**(2.0/3))
    #定义好自己需要的函数之后就是拟合
    #popt是一个一维数组,表示得到的拟合方程的参数
    #pcov是一个二维数组,是在popt参数下得到的协方差
    popt,pcov=curve_fit(func,x,y,[-800,-1,-1,930]) #后面这个数组是进行设置初猜,即使初猜设置的不是特别好,也能拟合出来比较理想的效果。如果你不设置初猜的话,默认的都是1
    print(popt)
    E0=popt[0]
    B0=popt[1]
    B1=popt[2]
    V0=popt[3]
    print(pcov)
    yval=func(x,E0,B0,B1,V0)#拟合完参数之后 就用拟合之后的参数来计算函数的值,即得到拟合拟合曲线的数值
    plt.scatter(x,y)#原始数据画图
    plt.plot(x,yval,'g',label='E0=%5.3f,B0=%5.3f,B1=%5.3f,V0=%5.3f'%tuple(popt))#拟合之后的数据画图 tuple是把列表变成元组
    plt.legend()
    plt.show()

  • 相关阅读:
    K2路由器刷机教程
    GitBook Editor使用教程
    source tree使用教程
    github与github网站push神器
    tgp助手开启逆战游戏无反应
    如何计算服务器指标参数
    排序--堆排序算法
    排序--希尔排序算法
    排序--直接插入排序算法
    排序--冒泡排序算法
  • 原文地址:https://www.cnblogs.com/shunguo/p/11397030.html
Copyright © 2011-2022 走看看