资源简介
自己用matlab编写的3次样条插值函数,绝对原创.
代码片段和文件信息
%三次样条插值
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(‘插值点溢出‘);
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1015 2009-12-25 22:01 tiospline.m
----------- --------- ---------- ----- ----
1015 1
- 上一篇:已知二维联合概率密度matlab求解
- 下一篇:Matlab将二维图像三维重构
评论
共有 条评论