neville.m

来自「Matlab语言常用算法程序集.rar 里面有很多有用的Matlab数值运」· M 代码 · 共 32 行

M
32
字号
function f = Neville(x,y,x0)
syms t;

if(length(x) == length(y))
    n = length(x);
else
    disp('x和y的维数不相等!');
    return;
end

y1(1:n) = t;
for(i=1:n-1)   
    for(j=i+1:n)
        if(j==2)
            y1(j) = y(j)+(y(j)-y(j-1))/((t-x(j-i))/(t-x(j)))*(1-(y(j)-y(j-1))/y(j));
        else
            y1(j) = y(j)+(y(j)-y(j-1))/((t-x(j-i))/(t-x(j)))*(1-(y(j)-y(j-1))/(y(j)-y(j-2)));
        end
    end         
    y = y1;
    if(i==n-1)
        if(nargin == 3)
            f = subs(y(n-1),'t',x0);
        else
            f = vpa(y(n-1),6);
        end
    end
    
end


⌨️ 快捷键说明

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