python自定义函数拟合_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()

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值