计算方法大作业(第二次).doc
文本预览下载声明
数值计算第二次大作业
1.给定插值条件如下:
i 0 1 2 3 4 5 6 7
Xi 8.125 8.4 9.0 9.485 9.6 9.959 10.166 10.2
Yi 0.0774 0.099 0.280 0.60 0.708 1.200 1.800 2.177
作三次样条函数插值,取第一类边界条件
Y0’=0.01087 Y7’=100
根据题目要求,首先要构造三次样条函数,三次样条函数的构造过程如下:
设有<<…<共n个插值节点,任意给定一组常数,,…,,要求构造一个插值三次样条函数,使得如下插值条件得以满足:
,i=0,1,…,n
由节点处的连续性可知:
由节点处的一阶与二阶光滑性可知:
又设,记,则。再根据边界条件,从而可相继解出
用matlab编程,编写三次样条函数(见附录),对第一题求解:
format short g;
x1=[8.125,8.4,9.0,9.485,9.6,9.959,10.166,10.2];
y1=[0.0774,0.099,0.280,0.60,0.708,1.200,1.800,2.177];
u1=0.01087;un=100;
xx1=[x1(1):0.001:x1(end)];
[yy1 b1 c1 d1]=spline3(x1,y1,xx1,1,u1,un);
fprintf(\t\tb1\t\tc1\t\td1\n);
b1 c1 d1
disp([b1 c1(1:end-1,1) d1]);
0.01087 0.14489 0.368
0.17405 0.4485 -0.393
0.2878 -0.25891 2.1153
1.5294 2.8188 -69.141
-0.56548 -21.035 73.614
12.794 58.247 -512.32
-28.949 -259.9 42279
plot(x1,y1,bo,xx1,yy1,r-);
grid on
画出插值曲线的图像。
图1 三次样条曲线
2.逆时针旋转座标轴45o 保持(1.)中结点和边界条件的几何关系不变,再次作三次样条函数插值,画出插值曲线的图像。
坐标轴逆时针旋转45°,相当于节点顺时针旋转45°。设为旋转前的坐标,为旋转后的坐标,则可以得到如下关系:
故旋转后的节点坐标为:
theta=-pi/4;
for i=1:length(x1)
x2(i)=cos(theta)*x1(i)-sin(theta)*y1(i);
y2(i)=sin(theta)*x1(i)+cos(theta)*y1(i);
end
fprintf(\t\t\tx2\t\t\ty2\n);
disp([x2 y2]);
5.8 -5.6905
6.0097 -5.8697
6.562 -6.166
7.1312 -6.2826
7.2889 -6.2876
7.8906 -6.1935
8.4612 -5.9157
8.7519 -5.6731
端点处的一阶导数为:
v1=(u1+tan(theta))/(1-u1*tan(theta));
vn=(un+tan(theta))/(1-un*tan(theta));
fprintf(\t\t\tv1\t\t\tvn\n);
v1 vn
disp([v1 vn]);
-0.97849 0.9802
则旋转后的三次样条的系数及图像为:
xx2=[x2(1):0.001:x2(end)];
[yy2 b2 c2 d2]=spline3(x2,y2,xx2,1,v1,vn);
fprintf(\t\t\tb2\t\t\tc2\t\t\td2\n);
b2 c2 d2
disp([b2 c2(1:end-1,1) d2]);
-0.97849 0.67221 -0.38277
-0.74704
显示全部