`
chungle
  • 浏览: 59959 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Matlab 一维插值interp1 例子 及 可视拟合界面(转)

阅读更多

一维插值:

已知离散点上的数据集 ,即已知在点集X上对应的函数值Y,构造一个解析函数(其图形为一曲线)通过这些点,并能够求出这些点之间的值,这一过程称为一维插值。

MATLAB命令:yi=interp1(X, Y, xi, method)

该命令用指定的算法找出一个一元函数 ,然后以 给出 处的值。xi可以是一个标量,也可以是一个向量,是向量时,必须单调,method可以下列方法之一:

‘nearest’:最近邻点插值,直接完成计算;         

‘spline’:三次样条函数插值;

‘linear’:线性插值(缺省方式),直接完成计算;   

‘cubic’:三次函数插值;

对于[min{xi},max{xi}]外的值,MATLAB使用外推的方法计算数值。

 

 

%-- 09-4-1 下午8:38 --%
%已知数据
t=1900:10:1990;
p=[75.995,91.972,105.711,123.203,131.669,150.697,179.323,203.212,226.505,249.633];
x=1900:0.01:1990;
%使用不同的方法进行一维插值
yi_linear=interp1(t,p,x); %线性插值
yi_spline=interp1(t,p,x,'spline');%三次样条插值
yi_cubic=interp1(t,p,x,'cubic');%三次多项式插值
yi_v5cubic=interp1(t,p,x,'v5cubic');%matlab5中使用的三次多项式插值

%绘制图像对比
subplot(2,1,1);
plot(t,p,'ko');
hold on;
plot(x,yi_linear,'g','LineWidth',1.5);grid on;
plot(x,yi_spline,'y','LineWidth',1.5);
title('Linear VS Spline ')

subplot(2,1,2);
plot(t,p,'ko');
hold on
plot(x,yi_cubic,'g','LineWidth',1.5);grid on;
plot(x,yi_v5cubic,'y','LineWidth',1);
title('Cubic VS V5cubic ');
%创建新图形窗口
figure
yi_nearest=interp1(t,p,x,'nearest');%最邻近插值法
plot(t,p,'ko');
hold on
plot(x,yi_nearest,'g','LineWidth',1.5);grid on;
title('Nearest Method');

%以下是根据拟合估计

msg='           year      Cubic      Linear    Nearest    Spline';
for i=0:8
    n=10*i;
    year=1905+n;
    pop(i+1,1)=year;
    pop(i+1,2)=yi_cubic((year-1900)/0.01+1);
     pop(i+1,3)=yi_linear((year-1900)/0.01+1);
      pop(i+1,4)=yi_nearest((year-1900)/0.01+1);
       pop(i+1,5)=yi_spline((year-1900)/0.01+1);
end
P=round(pop);

disp(msg)
disp(P)


结果如图:

 

由此可见,各种插值的优劣,在速度上,Nearest最快,然后是Linear再到Cubic,最慢的是Splic.但是精度和曲线的平滑度恰好相反,Nearest甚至不连续~~

系统默认的是Linear

 

当然也可以用图形界面 更易理解

 

 

分享到:
评论

相关推荐

    task.zip_ployfit_三维_三维插值_二维插值_拟合公式

    本案例中,"task.zip_ployfit_三维_三维插值_二维插值_拟合公式"是一个项目,它涉及到使用ployfit进行三维数据的拟合,并进行三维和二维的插值操作。以下是关于这些知识点的详细解释: 1. **ployfit函数**:ployfit...

    matlab经典算法插值与拟合-插值与拟合.rar

    在MATLAB中,可以使用`interp1`函数进行一维线性插值。 2. **多项式插值**:如拉格朗日插值和牛顿插值,它们通过构建多变量多项式函数来逼近数据点。拉格朗日插值利用拉格朗日多项式,而牛顿插值则基于差商。MATLAB...

    INTERP2_interp2函数_interp2_数据拟合_网格数据插值_插值_

    在MATLAB中,`interp2`函数是一种强大的工具,用于执行二维网格数据的插值。在数据拟合的过程中,我们经常遇到需要将离散的数据点扩展到整个平面或区域,以便于分析、可视化或者预测未测量点的值。`interp2`函数就...

    插值与拟合_插值与拟合的matlab实现_插值matlab应用_

    MATLAB中的`interp1`函数可以实现一维数据的线性插值,`interp2`和`interp3`则分别用于二维和三维数据。 拉格朗日插值是一种多项式插值方式,通过构建一个n次多项式来通过n+1个数据点。MATLAB的`polyfit`函数可以...

    Matlab_曲面插值和拟合

    1. **线性插值**:使用`interp1`函数,适用于一维数据。 2. **样条插值**:包括`spline`和`pchip`函数,适用于一维数据。 3. **拉格朗日插值**:使用`lagr1`函数,适用于一维数据。 对于二维数据的插值,Matlab提供...

    matlab插值与拟合实验

    在MATLAB中,有许多内置函数可以进行插值操作,如` interp1 `用于一维数据,` interp2 `和` interp3 `分别用于二维和三维数据。例如,` interp1 `的基本语法是` y = interp1(x,yi,xq) `,其中` x `是已知数据点的横...

    matlab插值曲线拟合公开课获奖课件.pptx

    Matlab 提供了多种插值函数,包括一维插值函数 interp1、 二维插值函数 interp2 和 Fourier 插值函数 interpft。 1. 一维插值函数 interp1 interp1 是 Matlab 中的一维插值函数,用于对一组点 (x,y) 进行插值,...

    MATLAB 插值与拟合实验

    在MATLAB中,你可以使用`interp1`函数进行一维插值,它可以灵活地选择不同的插值方法。例如,进行线性插值可以写成: ```matlab y_new = interp1(x, y, x_new, 'linear'); ``` 其中`x`和`y`是原始数据,`x_new`是...

    Matlab插值与拟合

    例如,`interp1`函数可以用于一维数据的插值,而`griddata`则适用于二维或三维数据。这些函数允许用户根据需求选择插值类型,以实现平滑度和精度之间的平衡。 接下来,我们转向拟合。拟合是指找到一个函数,尽可能...

    matlab拟合、插值、遗传算法、微粒群算法实例

    MATLAB中的`interp1`和`interp2`函数可以实现一维和二维插值,如线性插值、样条插值等,帮助我们在未知数据点处估计数值。这对于数据可视化和数据处理非常有用。 接下来,遗传算法是一种启发式搜索策略,模仿生物...

    温度曲线的二维插值法优化及MATLAB仿真

    ### 温度曲线的二维插值法优化及MATLAB仿真 #### 摘要 本文主要探讨了在MATLAB环境下,对温度采样数据进行二维插值处理的方法,并通过对比不同插值法的效果来确定最优插值方法。通过实验仿真,直观地展示了不同...

    matlab插值

    一维插值命令interp1是MATLAB中非常实用的工具之一,它可以用于根据一维离散数据进行函数值的估计。interp1函数的一般调用格式为: yi = interp1(x, Y, xi) 这里,x是已知数据点的横坐标向量,Y是已知数据点的纵...

    插值与拟合原理及MATLAB实现

    例如,MATLAB中提供了interp1、interp2、interp3和interpft等函数用于一维、二维或三维插值计算。对于拟合,MATLAB提供了polyfit函数实现多项式拟合,以及fit函数和Curve Fitting Toolbox进行更复杂的曲线和曲面拟合...

    matlab数据插值与拟合实验.pdf

    1. 一维插值:以轮船甲板为例,通过测量的数据(横向间隔和纵向高度),使用 MATLAB 的 interp1 函数进行样条插值('spline'选项),绘制插值后的图形,并计算甲板面积。最终得出甲板面积为65.2824平方米。 2. 二维...

    matlab 插值与拟合实验

    在MATLAB中,有许多内置的插值函数,如`interp1`, `interp2`, ` interp3`等,分别用于一维、二维和三维数据的插值。例如,`interp1`函数可以用来对一维数据进行线性、多项式、样条等不同类型的插值。在实验中,你...

    matlab数据回归,拟合与插值问题全代码

    1. ` interp1`,` interp2`,` interp3`:分别用于一维、二维和三维数据的线性插值。 2. ` spline`:三次样条插值,提供平滑的插值曲线。 3. ` griddata`:处理散乱数据的插值,适用于二维和三维数据集。 4. ` pchip...

    matlab 插值与拟合与绘图命令

    - **`interp1`**:一维数据插值,可以使用线性、多项式、样条等不同方法。 - **`interp2`**:二维数据插值,适用于图像处理。 - **` interp3`**:三维数据插值,用于处理3D数据集。 - **`spline`**:创建三次...

    matlab数据插值与拟合实验.docx

    - 一维插值:MATLAB提供了多种一维插值函数,如` interp1 `,用于在已知数据点之间进行插值,得到平滑的连续曲线。例如,在测量甲板面积的例子中,可以使用` interp1 `函数根据已知的横向和纵向高度数据计算出甲板...

    插值与拟合_matlab_

    MATLAB中的` interp1 `函数可以实现1维线性插值。例如: ```matlab x = [1 2 3 4 5]; y = [1 4 9 16 25]; xq = 1:0.5:5; % 查询点 yq = interp1(x, y, xq, 'linear'); % 线性插值 ``` 2. 多项式插值:使用多项式...

    MATLAB算法插值与拟合代码

    例如,interp1函数用于一维插值,interp2和interp3函数分别用于二维和三维插值;polyfit函数可以用于执行多项式拟合;而fit函数则属于Curve Fitting Toolbox中的函数,提供了更为灵活的拟合选项。 通过MATLAB的这些...

Global site tag (gtag.js) - Google Analytics