1

我在用这个方程做曲线拟合时遇到了一个问题

y=a*exp(-x/b)

x 是固定的x=[13 26 39 52 65 78 91]。y 是输入。a 和 b 是未知数。b 是输出。我使用 LSQ 估计来进行曲线拟合,并为输出 b 添加一个约束:b 应该在[0,1000].

现在系统是这样工作的:当我有一个输入序列时

y=[460 434 288 218 164 114 89]

输出是b=51.46,这很好。

如果输入序列是

y=[599 640 592 609 550 588 573 626]

估计结果为b=1000。这也很好。没问题。

但是当我输入一个纯噪声序列时:

y=[24 19 31 5 27 31 17]

我从曲线拟合算法得到的结果是b=1000. 在这种情况下,输出b是一个非常高的信号,这对于系统来说是不可接受的。我希望输出一个低值b,比如说b = 0

我试图在 y 上添加一个阈值,比如说

if y<50 then b=0

但是系统不是很稳定。噪音水平不时变化。有没有其他方法可以解决这个问题?先感谢您。

4

1 回答 1

2

首先,请注意,这类问题通常以逻辑增长模型的形式出现在文献中(或参见此处)。我相信你的具体问题应该在混合模型的背景下考虑的背景下考虑,这是一个包含固定效应和随机效应的统计模型。

更具体地说,您可以使用 Matlab 的统计工具箱中的nlmefit。可以在这个ppt中找到 nlme 的鸟瞰图。

于 2013-02-19T18:36:54.203 回答