三次样条插值函数逼近车门曲线。插值节点数据:x0**********′ 要求1)写出程序清单,生成M文件2)画出车门曲线图,给出插值结果,生成DOC文件。1、functionyi=cubic_spline2(x,y,ydot,xi)% 三次样条插值公式(三弯矩方程,第一类边界条件)% x为向量,全部的插值节点;% y为向量,插值节点处的函数值;% ydot为向量,端点处的导数值;若缺省,则用均差代替导数;% xi为标量,自变量x;% yi为xi处的函数估计值。n=length(x);ny=length(y);% 输入的插值点与它的函数值应有相同的个数ifn~=nyerror('ThelengthsofXandYmustbeequal');return;end% 如果没有给出端点处的导数值,则用均差代替导数ifisempty(ydot)==1ydot=[(y(2)-y(1))/(x(2)-x(1))(y(n)-y(n-1))/(x(n)-x(n-1))];endh=zeros(1,n);lambda=ones(1,n);mu=ones(1,n);m=zeros(n,1);d=zeros(n,1);fork=2:nh(k)=x(k)-x(k-1);%插入节点必须互异ifabs(h(k))<epserror('theDATAiserror!');return;endendfork=2:n-1lambda(k)=h(k+1)/(h(k)+h(k+1));mu(k)=1-lambda(k);d(k)=3*(mu(k)*(y(k+1)-y(k))/h(k+1)+lambda(k)*(y(k)-y(k-1))/h(k));endd(2)=d(2)-lambda(2)*ydot(1);d(n-1)=d(n-1)-mu(n-1)*ydot(2);d(n)=[];d(1)=[];lambda(n)=[];lambda(1)=[];mu(n)=[];mu(1)=[];A=diag(2*ones(1,n-2));fori=1:n-3A(i,i+1)=mu(i);A(i+1,i)=lambda(i+1);endm=A\d;m=[ydot(1);m;ydot(2)];fork=2:nifx(k-1)<=xi&&xi<=x(k)yi=y(k-1)/h(k)^3*(xi-x(k))^2*(h(k)+2*(xi-x(k-
三次样条插值函数逼近车门曲线 来自淘豆网www.taodocs.com转载请标明出处.