我有指数分布的实验数据a*exp(b*x)
。目的是找出系数a、b及其误差。
我已经尝试使用该功能fit(B,C, 'exp1')
并得到了一些结果。
目前我正在试验问题,因为由于实验的性质,我的文件中的某些数据点具有更高的错误率。
具体问题是:
- Matlab 中哪个算法或函数可以给出最小的误差?
- 如何在 Matlab 中使用/采用某些函数来将较小的权重(当我计算系数时)放在与指数函数截然不同的数据上?
我有指数分布的实验数据a*exp(b*x)
。目的是找出系数a、b及其误差。
我已经尝试使用该功能fit(B,C, 'exp1')
并得到了一些结果。
目前我正在试验问题,因为由于实验的性质,我的文件中的某些数据点具有更高的错误率。
具体问题是:
使用fitoptions
参数指定拟合的权重,或排除一些数据点。有关更多详细信息,请参阅fit
文档。
你确定你在谈论指数分布吗?如果是,我假设您计算了一个直方图,现在想要在直方图上拟合一条线。但这不是最好的方法。
首先,请注意,由于 pdf 的归一化,指数分布的概率密度函数只有一个参数。密度表达式为
lambda * exp(-lambda * x)
其次,您不能通过将其 pdf 拟合到直方图来拟合数据的分布。参数估计有几种方法,最常见的是“最大似然”。根据Wikipedia, lambda 的最大似然估计是样本均值的倒数,或者在 Matlab 表示法中:
lambda_est = 1 / mean(x)
要大致了解通过此分布描述您的数据是否有意义,然后您可以使用估计参数在(归一化)直方图上绘制 pdf,或在非参数密度估计上绘制 pdf,如ksdensity
.