-
大小: 560B文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-04
- 語言: Matlab
- 標(biāo)簽:
資源簡(jiǎn)介
自己用matlab編寫的3次樣條插值函數(shù),絕對(duì)原創(chuàng).

代碼片段和文件信息
%三次樣條插值
function?f=tiospline(xym)
N=length(x);
C(N-13)=0;
B=[0.00.00.00.0];
h1=x(2)-x(1);
p=y(2)-y(1);
for?j=2:N-1
????h2=x(j+1)-x(j);
????q=y(j+1)-y(j);
????h0=h1+h2;
????C(j1)=h2/h0;
????C(j2)=1-C(j1);
????C(j3)=6*(q/h2-p/h1)/h0;
????h1=h2;
????p=q;
end??
C(11)=B(1)/2;
C(12)=B(3)/2;
if?N==2
????y1=(B(4)-B(2)*C(N-12))/(2-B(2)*C(N-11));
else
????for?j=2:N-1
????p=2-C(j2)*C(j-11);
????C(j1)=C(j1)/p;
????C(j2)=(C(j3)-C(j2)*C(j-12))/p;
????y1=(B(4)-B(2)*C(N-12))/(2-B(2)*C(N-11));
????end
end
for?j=N-1:-1:1
????y2=C(j2)-C(j1)*y1;
????h=x(j+1)-x(j);
????C(j3)=(y1-y2)/6/h;
????C(j2)=y2/2;
????C(j1)=(y(j+1)-y(j))/h-(2*y2+y1)*h/6;
????y1=y2;
end
if?mx(N)
????disp(‘插值點(diǎn)溢出‘);
??????
elseif?m==x(N)
????v=y(N);
else
????for?i=N-1:-1:1
????????if?x(i)>m
????????else
????????????d=m-x(i);
????????????v=((C(i3)*d+C(i2))*d+C(i1))*d+y(i);
????????????f=v;
????????????return;
????????end
????end
end
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1015??2009-12-25?22:01??tiospline.m
-----------?---------??----------?-----??----
?????????????????1015????????????????????1
評(píng)論
共有 條評(píng)論