资源描述:
《【精品】插值数值分析作业1》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、根据卜•面数表xi0123yi00.521.5求⑴口然样条;⑵由S*(0)=0.2,S*(3)=-l,求固定样条;(3)求非扭结样条。(1)求自然样条,在matlab中输入如下程序:X0=0;Y0=0;X=[l,2,3];Y=
2、0.5,2,1.51;n=length(X);u=ones(n-l,l);b=2*ones(n-l,l);lanbuda=ones(n-1,1);d=zeros(n-l,l);hO=X(l)-XO;h=zeros(n-l,l);fori=l:n-lh(i)=X(i+l)-X(i);endu(l)=hO/(hO+h(l));lanbuda(l)=l-u(l);fori=2
3、:n-lu(i)=h(i-l)/(h(i-l)+h(i));endfori=2:n-llanbuda(i)=l-u(i);endd(1)=((Y(2)・Y0)/(X⑵-X0)-(Y(l)-Y0)/h0)/h(l);d(n)=(Y(n)-Y(n-l))/h(n-l);fori=2:n-ld(i)=(((Y(i+1)-Y(i-l))/(X(i+1)-X(i-1)))-((Y(i)-Y(i-1))/h(i-1)))/h(i);endfori=l:n-ldl(i)=6*d(i);endm=tridiag(u,b,lanbuda,d1)M0=0;Mn=0;m:M=[M0;m,;Mn];s01=(M(2)
4、-M(l))/(6*h0);sO2=M(l)/2;s03=(Y(1)-Y0)/(X(1)-X0)-((2*M(1)+M(2))/6)*hO;s()4=Y0;fori=l:n-ls(i,1)=(M(i+2)・M(i+l))/(6*h(i));s(i,2)=M(i+l)/2;s(i,3)=(Y(i+l)・Y(i))/(h(i))・((2*M(i+l)+M(i+2))/6)*(h(i));s(i,4)=Y(i);Ends=[sO1,s02,s03,s04;s(1:n・1,1:4)]XX=[XO,X1;YY=[Y0,Y];p=mkpp(XX,s)%结果如下:2.4000s=-3.60000.40000
5、0.1000-1.00001.20001-30000.50000.6000-1.80000.70002.0000form:'pp『breaks:[0123]coefs:[3x4double]pieces:3order:4dim:1%对x赋值x=linspace(0,3,100);y=ppval(p,x)plot(x,y)%样条曲线如下图所示:(1)由S,(0)=0・2,S*(3)=-l,求固定样条,在matlab屮输入如下程序:yla=0.2;ylb=-l;X0=0;Y0=0;X=[l,2,3];Y二[0.5,2,1.5];n=length(X);u=ones(n-l,l);b=2*ones(
6、n+l,l);lanbuda=ones(n-1,1);d=zeros(n+l,l);h0=X(l)-X0;h=zeros(n-l,l);fori=l:n-lh(i)=X(i+l)-X(i);endii(l)=h0/(h0+h⑴);lanbuda(l)=l-u(l);fori=2:n-lu(i)=h(i-l)/(h(i-l)+h(i));endnewu=fu(l:n-l);l];fori=2:n・1lanbuda(i)=l-u(i);endnewlanbuda=[l;lanbuda(l:n-l)];d0=(Y(l)-Y0)/h0;d(1)=((Y(2)-Y0)/(X(2)-X0)-(Y(1)-Y
7、0)/h0)/h(l);d(n)=(Y(n)-Y(n-1))/h(n-l);fori=2:n-ld(i)=(((Y(i+1)-Y(i-l))/(X(i+1)-X(i-1)))・((Y⑴-Y(i-l))/h(i-l)))/h(i);endfori=l:n-ldl(i)=6*d(i);enddi*;d20=(6*(d0-y1a))/h0;d2n=(6*(ylb-d(n)))/h(n-l);newd=[d20;d1*;d2n];m=tridiag(newu,b,newlanbuda,newd)M0=m(l);fori=2:n+lM(i-l)=m(i);endM1;M=[MO;M*1;s01=(M(2
8、)-M(l))/(6*h0);sO2=M(l)/2;sO3=(Y(l)-YO)/(X(l)-X0)-((2*M(l)+M(2))/6)*hO;s04=Y0;fori=l:n-ls(i,l)=(M(i+2)・M(i+l))/(6*h(i));s(i,2)=M(i+l)/2;s(i,3)=(Y(i+1)-Y(i))/(h(i))-((2*M(i+1)+M(i+2))/6)*(h(i));s(i,4)=