• 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('三次插值曲面');
  • 相关阅读:
    element ui 表单清空
    element ui 覆盖样式 方法
    element ui 修改表单值 提交无效
    element ui 抽屉里的表单输入框无法修改值
    element ui 抽屉首次显示 闪烁
    css 左侧高度 跟随右侧内容高度 自适应
    PICNUF框架
    elementui 抽屉组件标题 出现黑色边框
    vue 子组件跨多层调用父组件中方法
    vue 编辑table 数据 未点击提交,table里的数据就发生了改变(深拷贝处理)
  • 原文地址:https://www.cnblogs.com/tensory/p/6590778.html
Copyright © 2020-2023  润新知