问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

数值分析中插值法和拟合法的对比

创作时间:
作者:
@小白创作中心

数值分析中插值法和拟合法的对比

引用
CSDN
1.
https://m.blog.csdn.net/qq_47248729/article/details/141933209

插值法和拟合法是数值分析中常用的两种方法,它们用于处理数据和函数的近似问题。本文将详细介绍这两种方法的概念、用法,并通过具体例子进行对比分析。

1 插值法

概念:
插值法是一种通过已知数据点来构造一个新的函数,以便在这些数据点之间进行估算的方法。插值的目标是找到一个函数,该函数在给定的数据点上与实际数据完全一致。

用法:

  • 线性插值:在两个已知数据点之间用一条直线连接,适用于数据变化较平稳的情况。
  • 多项式插值:使用多项式函数通过所有已知数据点,常用的有拉格朗日插值和牛顿插值。
  • 样条插值:使用分段多项式(如三次样条)来提高插值的平滑性,适合于数据变化较复杂的情况。

2 拟合法

概念:
拟合法是一种通过已知数据点来寻找一个函数模型,使得该模型尽可能地接近这些数据点的方法。与插值法不同,拟合并不要求模型在所有数据点上都通过,而是通过最小化误差来找到最佳的函数形式。

用法:

  • 最小二乘法:通过最小化观测值与拟合值之间的平方差来确定模型参数,广泛应用于线性回归和非线性回归。
  • 多项式拟合:使用多项式函数来拟合数据,适用于数据呈现一定的趋势。
  • 曲线拟合:可以使用各种函数(如指数、对数、幂函数等)来拟合数据,选择合适的模型以达到最佳拟合效果。

3 总结

  • 插值法:用于在已知数据点之间精确估算,适合于数据点较少且变化平稳的情况。
  • 拟合法:用于寻找一个函数模型来近似描述数据,适合于数据点较多且存在噪声的情况。

下面举个例子进行分析:

% 首先,创建原始的离散点集 (x, f(x))
% 原始离散点集
x = linspace(-1, 1, 100); 
y = abs(x);

% 绘制原始数据点
figure;
scatter(x, y, 'filled');
hold on;

% 接下来,使用插值方法计算并绘制拟合曲线。用 interp1 函数执行线性插值:
x_dense = linspace(-1, 1, 1000); % 创建一个更密集的x值集合用于插值
y_interp = interp1(x, y, x_dense, 'linear'); % 线性插值

% 绘制插值曲线
plot(x_dense, y_interp, 'r-', 'LineWidth', 2);

% 然后,使用拟合方法计算并绘制拟合曲线。我们可以采用 fit函数配合 polyfit 多项式拟合或其他拟合方法:
fit_poly = polyfit(x, y, 2); % 多项式拟合,这里选择了2次多项式
y_poly = polyval(fit_poly, x_dense); % 计算多项式拟合值

% 绘制拟合曲线
plot(x_dense, y_poly, 'b--', 'LineWidth', 2);

% 给图形添加一些标签和图例,然后显示图形:
% 添加标题,标签和图例
title('插值和拟合 |x|');
xlabel('x');
ylabel('f(x)');
legend('Discrete Points', 'Linear Interpolation', 'Polynomial Fit');
hold off;  

最终对于样本的选取上,有不同的结果:


可以看到,样本数理越多,插值的结果越准确,而对拟合的影响并没有那么大,所以对于插值来说,样本数量很重要。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号