python - 如何根据给定的方程对数据进行适当的拟合?
问题描述
我正在为一位使用 Python 的老师提供帮助,他要求我根据以下等式调整收集的数据:
f(t) = A*exp(−t/τ ) + C
具有 A 和 C 常数。这是为了了解粒子的半衰期而开发的:μ子(τ生命时间)
我的老师,对于指数函数,用QtiPlot软件对数据做了分析,得到如下图imagen。达到粒子生命周期为 2.1 微秒,使用以下数据集,是这些:数据
我从来没有真正对python中的函数做过任何事情,我想做同样的直方图,曲线线调整到函数并找到'τ'寿命
x_data = genfromtxt('data.csv', delimiter=',')
y_data = np.arange(1,len(data)+1,1)
t = np.arange(1,len(data),1)
C = 0.9 #for example, since I don't know how the teacher chooses
plt.hist(x_data, bins=200)
plt.gca().set(title='Muon', ylabel='ene');
def test_func(x, y, t, C):
fun = lambda x, y, t, C: x*np.exp((-y)/(T))+C
return fun
如何执行该功能并将其显示在直方图旁边的图表中?
解决方案
更新
这是我目前能得到的
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
t = np.arange(1,len(x_data)+1,1)
C = 1
x_data = genfromtxt('data.csv', delimiter=',')
def func(x,y):
return x*np.exp((-y)/(t))+c
coeff, _ = curve_fit(func,x_data,t)
print(f'{coeff}')
plt.hist(x_data, bins=200)
plt.plot(x_data,func(x_data,t))
plt.show()
如何获得正确的调整线?
推荐阅读
- swift - 以编程方式添加文本字段以滚动视图?
- c# - X509Certificate2 Constructor Throwing 磁盘空间不足
- sql - 为什么多个 EXISTS 会破坏查询
- python - Pygame - 即使我正在更新我的图像,也会出现奇怪的踪迹。这是怎么回事?
- amazon-web-services - 无法在 UserData AWS EC2 cloudformation 中写入文件的内容
- jquery - jQuery修复侧边栏在滚动时闪烁
- oracle - 由外键引起的Oracle死锁输出
- nativescript - 如何在 Nativescript Angular 应用程序中包含可用的 gradle 库?
- sql - SQL - 假脱机插入
- java - mybatis中不尊重data_max