⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newton.m

📁 牛顿均差插值公式
💻 M
字号:
function f = Newton(x,y,x0)
%求已知数据点的均差形式的牛顿插值多项式
%已知数据点的x坐标向量:x
%已知数据点的y坐标向量:y
%插值点的x坐标:x0
%求得的均差形式的牛顿插值多项式或在x0点的插值:f

syms t;
if (length(x) == length(y))            %判断x,y的维数是否相等
    n = length(x);                  
    c(1:n) = 0.0;                      %多项式系数,先赋值为0.0(浮点数)
else
    disp('x和y的维数不相等!');
    return;
end                                    %检错

f = y(1);
y1 = 0;
l  = 1;
for(i=1:n-1)
    for(j=i+1:n)
        y1(j) = (y(j)-y(i))/(x(j)-x(i));    %均差计算
    end
    c(i) = y1(i+1);                     %系数
    l = l*(t-x(i));                     %多项式的子项
    f = f+c(i)*l;                       %多项式
    simplify(f);                        %化简     
    y = y1;
    
    if(i == n-1)
        if(nargin == 3)                 %判断输入参数数是否为3
            f = subs(f,'t',x0);         %计算插值点的函数值
        else
            f = collect(f);             %将插值多项式展开
            f = vpa(f, 6);              %将多项式的系数化成6位精度的小数
        end
    end
end
    
    
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -