python自定义函数拟合_python自定义函数拟合
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit#用python擬合函數(shù)最主要模塊就是cure_fit
#準(zhǔn)備數(shù)據(jù)
x=[一組數(shù)據(jù)]
y=[一組數(shù)據(jù)]
#定義你自己想要擬合的函數(shù)
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))
#定義好自己需要的函數(shù)之后就是擬合
#popt是一個(gè)一維數(shù)組,表示得到的擬合方程的參數(shù)
#pcov是一個(gè)二維數(shù)組,是在popt參數(shù)下得到的協(xié)方差
popt,pcov=curve_fit(func,x,y,[-800,-1,-1,930]) #后面這個(gè)數(shù)組是進(jìn)行設(shè)置初猜,即使初猜設(shè)置的不是特別好,也能擬合出來比較理想的效果。如果你不設(shè)置初猜的話,默認(rèn)的都是1
print(popt)
E0=popt[0]
B0=popt[1]
B1=popt[2]
V0=popt[3]
print(pcov)
yval=func(x,E0,B0,B1,V0)#擬合完參數(shù)之后 就用擬合之后的參數(shù)來計(jì)算函數(shù)的值,即得到擬合擬合曲線的數(shù)值
plt.scatter(x,y)#原始數(shù)據(jù)畫圖
plt.plot(x,yval,'g',label='E0=%5.3f,B0=%5.3f,B1=%5.3f,V0=%5.3f'%tuple(popt))#擬合之后的數(shù)據(jù)畫圖 tuple是把列表變成元組
plt.legend()
plt.show()
總結(jié)
以上是生活随笔為你收集整理的python自定义函数拟合_python自定义函数拟合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: attachEvent时间监听方式
- 下一篇: python群聊机器人_基于python