常见的数值分析方法–插值、拟合、逼近。
- 插值:在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。图像处理中用来填充图像变换时像素之间的空隙。
- 拟合:拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。(曲线不必经过全部给定的离散点)。
一维插值和拟合
1、已知离散点x = [0.0 0.1 0.195 0.3 0.401 0.5],y = [0.39849 0.39695 0.39142 0.38138 0.36812 0.35206],利用插值和拟合求x = 0.25处的值,观察各种插值和拟合方法的优劣,并对拟合作出拟合曲线。
matlab程序:
clc;
clear all;
close all;
%已知数据
x = [0.0 0.1 0.195 0.3 0.401 0.5];
y = [0.39849 0.39695 0.39142 0.38138 0.36812 0.35206];
figure;
%已知数据折线图
plot(x, y);
hold on;
%已知数据散点图
scatter(x, y, '*');
xlabel('x');
ylabel('y');
title('原始数据及一维插值');
%线性插值
T1 = interp1(x, y, 0.25, 'linear')
%最邻近插值
T2 = interp1(x, y, 0.25, 'nearest')
%三次样条插值
T3 = interp1(x, y, 0.25, 'spline')
%三次插值
T4 = interp1(x, y, 0.25, 'cubic')
%三次多项式拟合
p = polyfit(x, y, 3)
y0 = polyval(p, 0.25)
x1 = 0:0.01:0.5;
%拟合结果
y1 = polyval(p, x1);
figure;
%拟合后的曲线
plot(x1, y1);
hold on;
scatter(x, y, '*');
xlabel('x');
ylabel('y');
title('拟合后的曲线');