290415李亚韦实验五温度分布的曲线拟合Word下载.docx
《290415李亚韦实验五温度分布的曲线拟合Word下载.docx》由会员分享,可在线阅读,更多相关《290415李亚韦实验五温度分布的曲线拟合Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
根据判定三次样条的存在性知,每个三次多项式由四个未知数,因此需要求解4N个条件,根据给出的数据和上式的III、IV和V共提供了4N-2个条件,所以还有两个条件还得给出,我们称剩余两个条件为端点约束,它们由来确定。
而我们通过
即可求得。
T7的三角多项式拟合:
三角多项式逼近的级数:
其中:
通过以上式子就可以就出,这里我们取M=7。
有4个控制点的贝塞尔曲线拟合:
N阶贝塞尔曲线定义为:
它们都是t的函数,而
通过上面的式子我们就看求得不同的点,相连接后即可得到所需曲线。
二、实验内容
根据已知的数据表
(1),用线性的最小二乘拟合、曲线的最小二乘抛物线拟合、三次样条插值拟合、T7的三角多项式拟合、有4个控制点的贝塞尔曲线拟合求解个拟合图形。
时间pm
温度
时间am
1
66
58
2
3
65
4
64
5
63
57
6
7
62
8
61
9
60
10
11
59
67
午夜
正午
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);
%求解y2
X=[x11,x12;
x12,x22];
Y=[y1;
y2];
AB=inv(X)*Y;
%求解系数A,B
t=0:
0.1:
24;
m=t*AB
(1)+AB
(2);
%方程y=Ax+B
plot(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*y'
y2=x*y'
y3=sum(y,2);
X=[x11,x12,x13;
x21,x22,x23;
x31,x32,x33];
y2;
y3];
ABC=inv(X)*Y%求解系数A,B,C
m=t.^2*ABC
(1)+t*ABC
(2)+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));
fork=2:
n-1
temp=a(k-1)/b(k-1);
b(k)=b(k)-temp*c(k-1);
u(k)=u(k)-temp*u(k-1);
end
m(n)=u(n-1)/b(n-1);
fork=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;
fork=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;
y1=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;
y10=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,:
),x17-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,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;
%系数a0
fori=1:
24
xt(i)=-pi+i*pi/12;
forj=1:
fork=1:
a(j)=y(k)*(cos(j*xt(k)))'
/12;
%求
b(j)=y(k)*(sin(j*xt(k)))'
end
symst
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