資源簡介
自己編寫的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
- 上一篇:主動輪廓模型圖像分割程序 matlab
- 下一篇:卷積碼及維特比譯碼matlab程序
評論
共有 條評論