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

资源简介

自己编写的Matlab三次样条插值函数,与spline函数对照,所得图形一致。

资源截图

代码片段和文件信息

function TreeSpline(x0y0)
   N=length(x0);
   h(1)=x0(2)-x0(1);
   u(1)=1;
   g(1)=3*(y0(2)-y0(1))/h(1);
   A(1)=-u(1)/2;
   B(1)=g(1)/2;
   x=[];
   s=[];
   for i=1:N-1
       h(i)=x0(i+1)-x0(i);
   end
   for i=2:N-1
       u(i)=h(i-1)/(h(i-1)+h(i));
       l(i)=h(i)/(h(i)+h(i-1));
       g(i)=3*(l(i)*(y0(i)-y0(i-1))/h(i-1)+u(i)*(y0(i+1)-y0(i))/h(i));
   end
   g0=3*(y0(2)-y0(1))/h(1);
   gN=3*(y0(N)-y0(N-1))/h(N-1);
   Y=zeros(NN);
   Y=Y+2*eye(N);
   Y(11)=2;
   Y(12)=1;
   Y(NN-1)=1;
   for i=2:N-1
       Y(ii-1)=l(i);
       Y(ii+1)=u(i);
   end
   g(1)=g0;
   gs=[ggN];
   m=inv(Y)*gs‘;
       for i=1:N-1
           xx=linspace(x0(i)x0(i+1)20);
           M=length(xx);
           for k=1:M
               ss(k)=(h(i)+2*(xx(k)-x0(i)))*((xx(k)-x0(i+1))^2)*y0(i)/(h(i)^3)+(h(i)-2*(xx(k)-x0(i+1)))*((xx(k)-x0(i))^2)*y0(i+1)/(h(i)^3)+(xx(k)-x0(i))*((xx(k)-x0(i+1))^2)*m(i)/(h(i)^2)+(xx(k)-x0(i+1))*((xx(k)-x0(i))^2)*m(i+1)/(h(i)^2);
            end
            s=[sss];
            x=[xxx];
         end
     plot(x0y0‘*‘xs‘-‘);

               
   

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1120  2008-12-25 09:21  TreeSpline.m

----------- ---------  ---------- -----  ----

                 1120                    1


评论

共有 条评论