python 指数拟合_Python - 从记录值拟合指数衰减曲线

我知道有与此有关的线程,但我很困惑,我想让我的数据适合我的数据。Python - 从记录值拟合指数衰减曲线

我的数据被导入并绘制成这样。

import matplotlib.pyplot as plt

%matplotlib inline

import pylab as plb

import numpy as np

import scipy as sp

import csv

FreqTime1 = []

DecayCount1 = []

with open('Half_Life.csv', 'r') as f:

reader = csv.reader(f, delimiter=',')

for row in reader:

FreqTime1.append(row[0])

DecayCount1.append(row[3])

FreqTime1 = np.array(FreqTime1)

DecayCount1 = np.array(DecayCount1)

fig1 = plt.figure(figsize=(15,6))

ax1 = fig1.add_subplot(111)

ax1.plot(FreqTime1,DecayCount1, ".", label = 'Run 1')

ax1.set_xlabel('Time (sec)')

ax1.set_ylabel('Count')

plt.legend()

问题是,我遇到困难设置常规指数衰减,在我不知道如何从数据集中计算的参数值。

如果可能的话,那么我想要用图表显示拟合衰减方程的方程。但是,如果能够生产出适合的产品,这可以很容易地应用。

编辑 ------------------------------------------- ------------------

所以使用Stanely基R提及

def model_func(x, a, k, b):

return a * np.exp(-k*x) + b

x = FreqTime1

y = DecayCount1

p0 = (1.,1.e-5,1.)

opt, pcov = curve_fit(model_func, x, y, p0)

a, k, b = opt

我与此错误消息 返回的拟合函数时

TypeError: ufunc 'multiply' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')

有关如何解决此问题的任何想法?

+0

看看http://stackoverflow.com/questions/21420792/exponential-curve-fitting-in-scipy –

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值