理解多項式插值的內涵,明確拉格朗日插值多項式的性質和計算方法。
開啟matlab軟體。
新建m檔案。
2:在彈出的下拉選單中選擇script。
(ps:可直接使用快捷鍵【ctrl+n)】
軟體就會彈出m函式編輯介面。)
編寫拉格朗日插值函式程式:
functionyh=lagrange(x,y,xh)
n=length(x);
m=length(xh);
yh=zeros(1,m);
c1=ones(n-1,1);
c2=ones(1,m);
fori=1:n
xp=x([1:i-1i+1:n]);
yh=yh+y(i)*prod((c1*xh-xp"*c2)./(x(i)-xp"*c2));
end
注:該程式只可一次計算實現一個插值計算。可實現多個插值計算的程式如下:
x=x(:);
y=y(:);
xh=xh(:);
yh=zeros(m,1);
c1=ones(1,n-1);
c2=ones(m,1);
fori=1:n,
yh=yh+y(i)*prod((xh*c1-c2*xp")./(c2*(x(i)*c1-xp")),2);
儲存檔案,需要特別注意的是檔名應與函式名相同。
在matlab中輸入給定資料x和y,以及需要計算插值點的值xh。如圖輸入後按【enter】鍵,載入資料。
呼叫編寫的程式,並執行。在matlab的命令視窗輸入【lagrange(x,y,xh)】按【enter】鍵即可得到拉格朗日插值函式計算的插值。
理解多項式插值的內涵,明確拉格朗日插值多項式的性質和計算方法。
開啟matlab軟體。
新建m檔案。
2:在彈出的下拉選單中選擇script。
(ps:可直接使用快捷鍵【ctrl+n)】
軟體就會彈出m函式編輯介面。)
編寫拉格朗日插值函式程式:
functionyh=lagrange(x,y,xh)
n=length(x);
m=length(xh);
yh=zeros(1,m);
c1=ones(n-1,1);
c2=ones(1,m);
fori=1:n
xp=x([1:i-1i+1:n]);
yh=yh+y(i)*prod((c1*xh-xp"*c2)./(x(i)-xp"*c2));
end
注:該程式只可一次計算實現一個插值計算。可實現多個插值計算的程式如下:
functionyh=lagrange(x,y,xh)
n=length(x);
m=length(xh);
x=x(:);
y=y(:);
xh=xh(:);
yh=zeros(m,1);
c1=ones(1,n-1);
c2=ones(m,1);
fori=1:n,
xp=x([1:i-1i+1:n]);
yh=yh+y(i)*prod((xh*c1-c2*xp")./(c2*(x(i)*c1-xp")),2);
end
儲存檔案,需要特別注意的是檔名應與函式名相同。
在matlab中輸入給定資料x和y,以及需要計算插值點的值xh。如圖輸入後按【enter】鍵,載入資料。
呼叫編寫的程式,並執行。在matlab的命令視窗輸入【lagrange(x,y,xh)】按【enter】鍵即可得到拉格朗日插值函式計算的插值。