MATLAB 牛頓插值法程式

2021-07-07 05:18:59 字數 804 閱讀 2410

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;

endend

%用p來儲存計算結果。newton多項式nn(x) 為ton二維陣列表示的矩陣的對角線上的差商值與右端乘子乘積的和即tx()陣列的乘積的和。

p = 0;

for i = 1: 1 : n

p = p + ( ton(i,i) * tx(1,i) ) ;

end

牛頓插值法

有了拉格朗日插值法,牛頓插值怎麼會缺席呢,這裡介紹牛頓插值,牛頓插值自然是為了解決拉格朗日的在程式設計上的缺陷而出現的 至少邏輯是這樣的 拉格朗日插值法在程式設計上的缺陷是什麼呢?從拉格朗日插值的形式就可以得知,每增加乙個插值節點就要重新計算插值基函式,這是乙個致命的缺點。牛頓插值克服了這個問題,我...

數值分析 插值 牛頓插值法

clc clear all close all n 1 1 10000 sig sin n 100 k 0 for i 1 4 10000 k k 1 x arr n i i 3 y arr sig i i 3 arr new y k newtoninterpolation x arr,y arr,...

Python 牛頓 Newton 插值法

本函式用於通過牛頓插值法計算某點的函式值 先計算函式每一級的差商,然後計算函式值 存放自變數x的值 data 用於存放函式值以及差商 x 0,2,3,5,6 data 0,8,27,125,216 用於存放待求值點 以及 計算結果 x f 5.5fun 0 計算每一級的差商 for i in ran...