-
大小: 2KB文件類(lèi)型: .m金幣: 1下載: 0 次發(fā)布日期: 2021-01-05
- 語(yǔ)言: Matlab
- 標(biāo)簽:
資源簡(jiǎn)介
在matlab中實(shí)現(xiàn)三次樣條插值,在周期邊界條件下,以龍格函數(shù)為例。
代碼片段和文件信息
function?y=cubicspline3(x)?
%第三類(lèi)周期邊界條件下三次樣條插值;
%x?=?linspace(-1140);
%x所求點(diǎn);
%y所求點(diǎn)函數(shù)值;
%x0?已知插值點(diǎn);
%y0?已知插值點(diǎn)函數(shù)值;
%f_0左端點(diǎn)一次導(dǎo)數(shù)值;
%f_n右端點(diǎn)一次導(dǎo)數(shù)值;
x0?=?linspace(02*pi20);
y0=sin(x0);
n?=?length(x0);
z?=?length(y0);
h?=?zeros(n-11);
k=zeros(n-21);
l=zeros(n-21);
S=2*eye(n);
for?i=1:n-1
????h(i)=?x0(i+1)-x0(i);
end
for?i=1:n-2
????k(i)=?h(i+1)/(h(i+1)+h(i));
????l(i)=?1-k(i);
end
%對(duì)于第一種邊界條件:
k?=?[0;k];??????????????
l?=?[l;0]; ?
%構(gòu)建系數(shù)矩陣A:
for?i?=?1:n-1
????S(ii+1)?=?k(i);
????S(i+1i)?=?l(i);
end
S(2n)=S(21);
S(21)=0;
S(n2)=h(1)/(h(1)+h(n-1));
S(nn-1)=h(n-1)/(h(1)+h(n-1));
%建立均差表:
F=zeros(n-12);
for?i?=?1:n-1
????F(i1)?=?(y0(i+1)-y0(i))/(x0(i+1)-x0(i));
end
D?=?zeros(n-21);
for?i?=?1:n-2
????F
評(píng)論
共有 條評(píng)論