【发布时间】:2014-02-21 09:44:01
【问题描述】:
我正在寻找一种方法来用不同的拟合模型拟合两个不同的数据集,但取决于 Matlab 中的相同参数。到目前为止,我发现的所有解决方案要么不适用于 matlab,要么不处理这个确切的问题。
这是一个粗略的例子,我的问题是这样的: 我已经获得了两个应该采用这些形式的数据集:
数据集1:f(x) = a*exp(x)+b
数据集 2:g(x) = atan(b*x/a)
真正的公式比较复杂,但原理应该是一样的。
当我尝试用 NonlinearLeastSquares 独立拟合它们时,matlab 显然为两个不同数据集的变量 a 和 b 提供了不同的值。我尝试将一种解决方案作为起点提供给另一个拟合程序,但这很少能提高准确性。有没有办法告诉 Matlab 同时拟合两个数据集,或者至少找到最适合 bost 模型的变量?
【问题讨论】:
-
您希望两个方程只有一个 组 (a,b)。我对吗?所以你必须意识到,这可能会给你的数据集带来更多错误的模型。
-
是的,两个方程的参数集 (a,b) 应该相同,你是对的。我意识到这可能会导致更大的误差,但由于它们是相同的物理特性,它们必须是相同的(两个数据集都是通过对不同数量的一次测量获得的)。如果我得到两个不同的值,我将不知道哪个是“正确的”。另外,我希望这会排除错误,即一个参数被其中一个拟合弄乱了,但在另一个拟合中却很好(例如,设置为边界值)。
标签: matlab curve-fitting