1、根据判定三次样条的存在性知,每个三次多项式由四个未知数,因此需要求解4N个条件,根据给出的数据和上式的III、IV和V共提供了4N-2个条件,所以还有两个条件还得给出,我们称剩余两个条件为端点约束,它们由来确定。而我们通过即可求得。T7的三角多项式拟合:三角多项式逼近的级数:其中:通过以上式子就可以就出,这里我们取M=7。有4个控制点的贝塞尔曲线拟合:N阶贝塞尔曲线定义为:它们都是t的函数,而通过上面的式子我们就看求得不同的点,相连接后即可得到所需曲线。二、 实验内容根据已知的数据表(1),用线性的最小二乘拟合、 曲线的最小二乘抛物线拟合、三次样条插值拟合 、T7的三角多项式拟合 、有4个控制
2、点的贝塞尔曲线拟合求解个拟合图形。时间pm温度时间am16658236546456357676286196010115967午夜正午68表(1)流程图:程序如下:x=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23;y=58,58,58,58,57,57,57,58,60,64,67,68,66,66,65,64,63,63,62,61,60,60,59,58;x11=sum(x.2,2); %求解x12=sum(x,2);x22=24;y1=x*y;y2=sum(y,2); %求解y2X=x11,x12;x12,x22
3、;Y=y1;y2;AB=inv(X)*Y; %求解系数A,Bt=0:0.1:24;m=t*AB(1)+AB(2); %方程y=Ax+Bplot(t,m,x,y,r.) Y N程序:x11=sum(x.4,2);x12=sum(x.3,2);x13=sum(x.2,2);x21=x12;x22=x13;x23=sum(x,2);x31=x13;x32=x23;x33=24;y1=x.2*yy2=x*yy3=sum(y,2);X=x11,x12,x13;x21,x22,x23;x31,x32,x33;y2;y3;ABC=inv(X)*Y %求解系数A,B,Cm=t.2*ABC(1)+t*ABC(2
4、)+ABC(3); %方程次样条插值拟合:n=23;dx0=(y(2)-y(1)/(x(2)-x(1); %求得dxn=(y(n)-y(n+1)/(x(n)-x(n+1);h=diff(x); %系数d=diff(y)./h;a=h(2:n-1);b=2*(h(1:n-1)+h(2:n);c=h(2:n);u=6*diff(d);b(1)=b(1)-h(1)/2;u(1)=u(1)-3*(d(1)-dx0);b(n-1)=b(n-1)-h(n)/2;u(n-1)=u(n-1)-3*(dxn-d(n);for k=2:n-1 temp=a(k-1)/b(k-1); b(k)=b(k)-temp*
5、c(k-1); u(k)=u(k)-temp*u(k-1);endm(n)=u(n-1)/b(n-1);for k=n-2:-1: m(k+1)=(u(k)-c(k)*m(k+2)/b(k); %系数 m(1)=3*(d(1)-dx0)/h(1)-m(2)/2;m(n+1)=3*(dxn-d(n)/h(n)-m(n)/2;for k=0: s(k+1,1)=(m(k+2)-m(k+1)/(6*h(k+1); s(k+1,2)=m(k+1)/2; s(k+1,3)=d(k+1)-h(k+1)*(2*m(k+1)+m(k+2)/6; s(k+1,4)=y(k+1);%求解x1=0:0.01:1;y
6、1=polyval(s(1,:),x1-x(1);x2=1:2;y2=polyval(s(2,:),x2-x(2);x3=2:3;y3=polyval(s(3,:),x3-x(3);x4=3:4;y4=polyval(s(4,:),x4-x(4);x5=4:5;y5=polyval(s(5,:),x5-x(5);x6=5:6;y6=polyval(s(6,:),x6-x(6);x7=6:7;y7=polyval(s(7,:),x7-x(7);x8=7:8;y8=polyval(s(8,:),x8-x(8);x9=8:9;y9=polyval(s(9,:),x9-x(9);x10=9:10;y1
7、0=polyval(s(10,:),x10-x(10);x11=10:11;y11=polyval(s(11,:),x11-x(11);x12=11:12;y12=polyval(s(12,:),x12-x(12);x13=12:13;y13=polyval(s(13,:),x13-x(13);x14=13:14;y14=polyval(s(14,:),x14-x(14);x15=14:15;y15=polyval(s(15,:),x15-x(15);x16=15:16;y16=polyval(s(16,:),x16-x(16);x17=16:17;y17=polyval(s(17,:),x1
8、7-x(17);x18=17:18;y18=polyval(s(18,:),x18-x(18);x19=18:19;y19=polyval(s(19,:),x19-x(19);x20=19:20;y20=polyval(s(20,:),x20-x(20);x21=20:21;y21=polyval(s(21,:),x21-x(21);x22=21:22;y22=polyval(s(22,:),x22-x(22);x23=22:23;y23=polyval(s(23,:),x23-x(23);plot(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8
9、,x9,y9,x10,y10,x11,y11,x12,y12,x13,y13,x14,y14,x15,y15,x16,y16,x17,y17,x18,y18,x19,y19,x20,y20,x21,y21,x22,y22,x23,y23,x,y,*程序:a0=sum(y)/12; %系数a0for i=1:24 xt(i)=-pi+i*pi/12;for j=1: for k=1: a(j)=y(k)*(cos(j*xt(k)/12; %求 b(j)=y(k)*(sin(j*xt(k) endsyms t m(j)=a(j)*cos(j*t)+b(j)*sin(j*t);t7=a0/2+sum(m); %k=0:t7=subs(t7,t,k); 交换变量t,k并求出t7关于k的值plot(k,t7,x,y,.有四个控制点的贝塞尔曲线拟合:x1=0,1,2,3;x2=3,4,5,6;x3=6,7,8
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1