• 大小: 560B
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: Matlab
  • 标签:

资源简介

自己用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


评论

共有 条评论

相关资源