美文网首页
插值法-1

插值法-1

作者: York_squad | 来源:发表于2017-12-15 11:16 被阅读0次

Matlab主程序

X=[0.2,0.4,0.6,0.8,1.0];
Y=[0.98,0.92,0.81,0.64,0.38];
M=1;
m=[0,1,11,10];
a=length(m);
x=zeros(size(m));%生成和m相同的零矩阵
for i=1:a
    x(i)=0.2+0.08*m(i);
end
x1=linspace(0.2,1.0,10);
[y R A]=Newton(X,Y,x1,M);
[y1 R1 A1]=Newton(X,Y,x,M);
s=interp1(X,Y,x1,'spline');
s1=interp1(X,Y,x,'spline');
plot(X,Y,'or',x1,y,'-b',x1,s,'-k',x,y1,'sb',x,s1,'>k');
legend('Raw','Newton line','Spline line','Newton dots','Spline dots');

Newton插值法函数

function [y,R,A]= Newton(X,Y,x,M)%其中A是如书中31页所示的均差表,理清楚其中的数字关系,就能完成编程
n = length(X); m = length(x);
for t=1:m
    z=x(t);
    A=zeros(n,n);
    A(:,1)=Y';
    q1=1.0;c1=1.0;
    for j=2:n
        for i=j:n
            A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));
        end
        q1=abs(q1*(z-X(j-1)));
        c1=c1*j;
    end
    s=A(1,1);
    for k=2:n
        C=poly(X(1:k-1));
        s=s+A(k,k)*polyval(C,z);%虽然看上去思路清晰了,但是感觉不是效率最高的,没有用到比较高级的数学工具。
    end
    y(t)=s;
    R(t)=M*q1/c1;
end

结果图

1.jpg

重点说明

  1. poly(a1,a2,...,an)表示的是(x-a1)(x-a2)...(x-an)的多项式,从高次到常数项的系数矩阵。
  2. polyval(A,z)表示的是,以A行列式为系数的多项式,x=z时的取值。
  3. plot函数中,单引号中的语句可以调整最后呈现的方式。可以通过在主窗口输入help plot进行查阅。
  4. interp1(X,Y,x,'method')是matlab自带的插值函数。其中X,Y表示插值点,x表示自变量,‘method’共有一下几种插值方式:
      'nearest'  - nearest neighbor interpolation
      'linear'   - linear interpolation
      'spline'   - piecewise cubic spline interpolation (SPLINE)
      'pchip'    - shape-preserving piecewise cubic interpolation
      'cubic'    - same as 'pchip'
      'v5cubic'  - the cubic interpolation from MATLAB 5, which does not
                   extrapolate and uses 'spline' if X is not equally
                   spaced.
  1. linspace(a,b,n)表示的是在[a,b]区间内,插入n个等距节点。
  2. matlab的数组记数是从1开始的!

相关文章

  • 缺失值处理-拉格朗日插值

    常用的插值法有:一维插值法:拉格朗日插值、牛顿插值、分段低次插值、埃尔米特插值、样条插值。二维插值法:双线性插值、...

  • 插值法-1

    Matlab主程序 Newton插值法函数 结果图 重点说明 poly(a1,a2,...,an)表示的是(x-a...

  • 数值分析之插值

    插值 一.基本概念 1.1插值需要研究的问题 插值函数是否存在? 如何构造插值函数? 如何评估误差? 1.2插值法...

  • 查找算法

    1.顺序查找法 改进后的顺序查找法 2.折半查找法 3.插值查找 插值查找其实是折半查找的升级版,在我们写折半查找...

  • 如何分摊秘密(七)

    十、拉格朗日插值法 本节介绍拉格朗日插值法,学过的读者请略过。 从数值分析的角度来看,拉格朗日插值法常被描述成是用...

  • 图像缩放小记

    算法AndroidJniBitmapOperations演示了最邻近插值法和双线性插值法来做图像缩放。这个项目里的...

  • 算法调优记录

    1.双线性插值 2.平方插值 3.分段函数插值法 针对上述对应关系,n=6,8,10时,k,a组合方针效果最好说明...

  • 反距离权重IDW算法解析与示例

    在GIS和图像处理中插值算法很常用,散点状的数据面状化。常用的插值方法包括:反距离权重插值法(IDW)、克里金插值...

  • scipy.interpolate 单变量插值

    前言 1数据预处理阶段,处理缺失值的方法分为三类,删除记录数据插值不处理,scipy提供了插值法的一些库接口,支持...

  • 插值法处理缺失值

    常用插值法 线性插值对一直的值求出线性方程,通过接触的线性方程得到缺失值。 多项式插值多项式插值是利用已知的数据拟...

网友评论

      本文标题:插值法-1

      本文链接:https://www.haomeiwen.com/subject/bhmrwxtx.html