0

我有一个离散过程的模型——我还有一些实验数据,我想弄清楚它与离散函数的拟合程度;当然,其中一些实验点在我的离散点之间,所以我需要能够估计这些以获得拟合优度:在 GUI 曲线拟合工具中使用插值拟合会产生完美的拟合,无论是线性的还是三次的使用形状保持:有什么方法可以生成所有插值点以将它们与数据点进行比较?我附上了 30 个离散数据点的图像,以及可以轻松连接它们的插值函数。

[1]: http: //i.imgur.com/kz5XgzI.png - 离散函数/interp 的屏幕截图。合身

我的第二个问题是我可以找到命令行版本吗?我需要自动运行几百次才能找到最佳拟合,如果我可以将其编码到 .m 文件中以基本上生成插值拟合,并将其与实验室数据进行比较以获得拟合优度,那将是理想的.

4

1 回答 1

1

插值“拟合”并不是真正的拟合......它只是将您的点与线段连接起来,[或其他一些提高曲线平滑度的形状*]。无论将它们连接到什么形状,它们总是会直接穿过你的离散点,这意味着“完美”的契合。

让我重新表述这个问题:您在从模型生成的时间点 tm_k 处有一组离散点 model_k。你在不同的时间点 td_k 有另一组离散点 data_k,你想比较它们。正确的?

然后,您需要做的就是在与测量数据相同的时间点对模型进行重新采样,然后您可以对它们进行比较。对于每个数据运行:

% data is a 1xN column vector of your measured data points
% td is a 1xN column vector of the time points corresponding to d
% model is a 1xM column vector of the model points
% tm is the 1xM time vector for model

model_on_data_time_points = interp1(tm, model, td);

% Here is an example of computing with this resampled vector
difference_vector = data - model_on_data_time_points;
mse = sum(difference_vector.^2) / length(difference_vector);  % mean squared error

(*) 编辑:修复“线段”语言以响应评论

于 2013-07-18T14:22:18.263 回答