MATLAB一维插值和二维插值 比较

插值问题描述:已知一个函数上的若干点,但函数具体表达式未知,现在要利用已知的若干点求在其他点处的函数值,这个过程就是插值的过程.

 

1.一维插值

一维插值就是给出y=f(x)上的点(x1,y1),(x2,y2),…,(xn,yn),由此求出y=f(x)在点xa处的值ya的值.

实现一维插值使用interp1命令,使用参数为interp1(x,y,xa,’method’) ,其中x和y是已知点对应横纵坐标,xa为代求值的横坐标,method参数代表插值类型,参数可以选择的选项如下表,若缺省则为linear.

method                含义                     特   点

linear               线性插值             快,精度不高

cubic           三次多项式插值      较慢,精度高,平滑

spline          三次样条插值          最慢,精度高,最平滑

 

例如,求y=xln(x)的插值问题,代码如下

    %为了说明插值问题,根据已知函数构造一组插值点

    %而实际问题中,只有这些点,函数是未知的

    x = 0.2:0.4:2;

    y = x.*log(x);%构造一组插值点

    plot(x,y,'o');

    xa =0.2:0.1:2;%d代求y值得x值点

    ya = interp1(x,y,xa,'cubic');

    hold on;

    plot(xa,ya,'b-');

    box on;

    hold on;

    fplot(@(x)x*log(x),[0.2,2]);

    legend('插值点','三次多项式插值','原图');%图例

 

2.二维插值

    二维插值就是给出z=f(x,y)上的点(x1,y1,z1),…,(xn,yn,zn),由此求出在(xa,ya)处求出za的值.实现一维插值使用interp2命令,使用参数为interp1(x,y,z,xa,ya,’method’),参数含义与interp1类似.

    例如,求z = exp(-x^2-y^2)的空间插值问题,代码如下

    x = linspace(-2,2,10);

    y = linspace(-2,2,10);

    [X,Y] = meshgrid(x,y);

    Z = exp(-X.^2 - Y.^2);

    subplot(1,2,1);

    surf(X,Y,Z);

    title('插值点曲图');

    hold on;

    xa = linspace(-2,2,50);

    ya = linspace(-2,2,50);

    [Xa,Ya] = meshgrid(xa,ya);

    Za = interp2(X,Y,Z,Xa,Ya,'cubic');

    subplot(1,2,2);

    surf(Xa,Ya,Za);

    title('三次插值曲面');

 

转载自 https://blog.csdn.net/ten_sory/article/details/54429482

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值