1

我有指数分布的实验数据a*exp(b*x)。目的是找出系数a、b及其误差。

我已经尝试使用该功能fit(B,C, 'exp1')并得到了一些结果。

目前我正在试验问题,因为由于实验的性质,我的文件中的某些数据点具有更高的错误率。

具体问题是:

  1. Matlab 中哪个算法或函数可以给出最小的误差?
  2. 如何在 Matlab 中使用/采用某些函数来将较小的权重(当我计算系数时)放在与指数函数截然不同的数据上?
4

2 回答 2

1

使用fitoptions参数指定拟合的权重,或排除一些数据点。有关更多详细信息,请参阅fit文档

于 2013-11-04T15:24:27.263 回答
1

你确定你在谈论指数分布吗?如果是,我假设您计算了一个直方图,现在想要在直方图上拟合一条线。但这不是最好的方法。

首先,请注意,由于 pdf 的归一化,指数分布的概率密度函数只有一个参数。密度表达式为

lambda * exp(-lambda * x)

其次,您不能通过将其 pdf 拟合到直方图来拟合数据的分布。参数估计有几种方法,最常见的是“最大似然”。根据Wikipedia, lambda 的最大似然估计是样本均值的倒数,或者在 Matlab 表示法中:

lambda_est = 1 / mean(x)

要大致了解通过此分布描述您的数据是否有意义,然后您可以使用估计参数在(归一化)直方图上绘制 pdf,或在非参数密度估计上绘制 pdf,如ksdensity.

于 2013-11-04T19:10:54.317 回答