MATLAB 牛頓插值法程序

function p = newton(x,xi,yi,n)
%ton(n,n)是一個二位數組,用來保存Newton插值多項式的表。
%ton第一列保存的是yi,函數值。
%x=11.5;
%n=5;
%x1=10;


for i = 1: 1 :n
    %xi(1,i)=x1;
    ton(i,1)=yi(1,i);
   % ton(i,1)=log(x1);
    %x1=x1+1;
end


%tx一維數組保存的是課本中P109頁表5-2 右端的乘子乘積
%第一個是1 
tx(1,1) = 1;
for j = 2 : 1 : n
    
    tx(1,j) =tx(1,j-1)*(x-xi(1,j-1)) ;
    
end
%循環生成每階差商, ton數組第二列保存的是第一階差商,第三列保存的是第二階差商。以此類推,直到N-1階差商。
for i = 2: 1 : n
    m=1;
    for j = i : 1 : n
        
        ton(j,i) = ( ton(j-1,i-1) - ton(j,i-1) )/( xi(1,m) - xi(1,j) );
        m = m + 1;
        
    end
    
end


%用P來保存計算結果。Newton多項式Nn(x) 爲ton二維數組表示的矩陣的對角線上的差商值與右端乘子乘積的和即tx()數組的乘積的和。
p = 0;
for i = 1: 1 : n
    
    p = p + ( ton(i,i) * tx(1,i) ) ;
    
end

    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章