python - lmfit 指数模型根本不适合
问题描述
我正在尝试将一个非常简单的数据拟合为:
81
9
2
27
4
0
15
1
0
11
1
1
37
0
0
27
5
1
58
3
0
78
0
0
67
0
3
使用lmfit
如下图。
import itertools
import matplotlib
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
import numpy as np
from lmfit.models import (ExpressionModel, GaussianModel, ExponentialModel)
with open('result.dat') as fin:
data = np.genfromtxt(itertools.islice(fin, 0, None, 3),
delimiter=',',
dtype='int')
data = np.cumsum(data)
print(data)
x = (np.linspace(0, len(data), len(data)))
model = ExponentialModel()
params = model.guess(data, x=x)
result = model.fit(data, params, x=x)
plt.plot(x, data, '.')
plt.plot(x, result.best_fit)
plt.show()
print(params)
我不知道为什么指数拟合失败得如此悲惨。请问有什么想法吗?注意:切片是因为我每第三排都拿。
解决方案
推荐阅读
- sql-server - 从 Crystal Report 的 RPT 文件创建 PDF 并通过存储过程将生成的 PDF 文件附加到 SQL 的 db 邮件系统中
- c# - 无法授权我的前端 .Net 核心应用程序
- java - 如何在 Oracle SQL Developer 上修复“java.libary.path 中没有 ocijdbc12”?
- ubuntu-16.04 - 从 Ubuntu 中删除 git 机密
- swift - 使用“CodingKeys”枚举仅覆盖少数 JSON 键
- html - 图标未在圆形标签内垂直居中显示
- php - 使用php从文本文件中提取值
- sql - 子查询和普通查询得出不同的结果
- php - 如何将表单验证错误放在警告框中?
- linux - Spring Boot Index jsp 在本地主机上工作,但在 linux 服务器中找不到