《数值计算方法》实验报告
1
线性方程组AX=B的数值解法
1.实验描述
1.P93.1,2,3:通过矩阵可表示立方体的坐标位置,与另一矩阵相乘可实现立方体坐标位置进行变换
2.P108.1:不通过行变换就能解决三角线性方程。
3.p109.7:将单位矩阵表示成列矩阵,通过对目标矩阵分别求解得出列矩阵从而得到目标矩
阵的逆矩阵。
4. 120.3:将单位矩阵表示成列矩阵,通过分解成上下三角矩阵对目标矩阵分别求解得出列矩阵从而得到目标矩阵的逆矩阵。 5.p120.4:应用程序3.3求解基尔霍夫电流。 6.p129.4:应用高斯-赛德尔迭代法求解带状方程。
2.实验内容
P93.1.
单位立方体位于第一卦限,一个顶点在原点。首先,以角度再以角度
?沿y轴旋转立方体,然后6?沿z轴旋转立方体。求旋转后立方体的8个顶点的坐标,并与例3.10的结果比较。4它们的区别是什么?试通过矩阵一般不满足交换律的事实进行解释。使用plot3命令画出3个图形。 P93.2.
?设单位立方体位于第一卦限,其中一个顶点位于坐标原点。首先以角度沿x轴旋转立
12?方体,然后再以角度沿z轴旋转立方体。求旋转后立方体的8个顶点的坐标。使用plot3
6画出这3个立方体。 P93.3.
四面体的坐标为(0,0,0),(1,0,0),(0,1,0),(0,0,1)。首先以弧度0.15沿y轴旋转,然后再以弧度-1.5沿z轴旋转,最后以弧度2.7沿x轴旋转。求旋转后的顶点坐标。使用plot3画出这4个立方体。 P108.1
.许多科学应用包含的矩阵带有很多零。在实际情况中很重要的三角形线性方程组有如下形式:
d1x1?c1x? b12《数值计算方法》实验报告 2
a1x1?d2x2?c2x?3 b a2x2?d3x3?c3x?4 b ……
aN?2xN?2?dN?1xN?1?cN?1xN? aN?1xN?1?dNxN?bN
构造一个程序求解三角形线性方程组。可假定不需要变换。而且可用第k行消去第k+1行的xk。
p109.7
下面的习题虽然是针对3x3维矩阵的,但其概念可用于NxN维矩阵。如果矩阵A非奇异,则A?1存在。而且AA?1?I。设C1,而E1,方程AA?1?IC2,C3是A?1的列,E2,E3是I的列。可表示为A?C1,C2,C3???E1,E2,E3?
则上式等价于三个线性方程组AC1?E1,AC2?E2,AC3?E3 这样求A?1等价于求解三个线性方程组。
使用程序2.2或上题中的程序求解下面每个矩阵的逆。通过计算 AA?1 和使用命令inv(A)检查答案,并解释可能的差异。
N?b?120240?140??16?201???1201200?27001680???? (a)?325? (b)??240?27006480?4200??????1?10?42002800???1401680120.3
修改程序3.3,使得它可以通过重复求解N个线性方程组
ACJ?EJ 其中J=1,2,…,N 来得到A?1,
则 A?C1C2...CN???E1E2...EN?、
而且 A?1??C1C2...CN?,保证对LU分解只计算一次。 p120.4
基尔霍夫电压定律说明电路网络中任意单向闭路的电压和为零。现有如下电路线性方程:
《数值计算方法》实验报告
3
(R1?R3?R4)I1?R3I2?R4I3?E1R3I1?(R2?R3?R5)I2?R5I3?E2 R4I1?R5I2?(R4?R5?R6)I3?0 如果
(a)R1?1,R2?1,R3?2,R4?1,R5?2,R6?4,E1?23,E2?29(b)R1?1,R2?0.75,R3?1,R4?2,R5?1,R6?4,E1?12,E2?21.5(c)R1?1,R2?2,R3?4,R4?3,R5?1,R6?5,E1?41,E2?38 使用程序求解电流I1,I2,I3。 p129.4
利用高斯-赛德尔迭代法求解下列带状方程。
12x1?2x2?x3?5?2x1?12x2?2x3?x4?5x1?2x2?12x3?2x4?x5?5x2?2x3?12x4?2x5?x6?5??????x46?2x47?12x48?2x49?x50?5x47?2x48?12x49?2x50?5x48?2x49?12x50?5
3.实验结果及分析
P93.1: 算法:
(1) 令X=zeros(8,3);X([5:8,11,12,15,16,18,20,22,24])=1;d=[1 2 4 3 1 5 6 8 7 5 6 2 4 8 7 3]; i=0。 (2) 判断i>100是否成立,若成立,执行步骤(3);若不成立, r1=[cos(i*pi/600) -sin(i*pi/600) 0;0 1 0;-sin(i*pi/600) 0 cos(i*pi/600)];U=X*r1';plot3(U(d,1),U(d,2),U(d,3));drawnow,i=i+1,返回步骤(2).\\ (3) i=0.
(4) 判断i>100是否成立,若成立,执行步骤(4);若不成立,r2=[cos(i*pi/400) -sin(i*pi/400) 0;sin(i*pi/400) cos(i*pi/400) 0;0 0 1];W=U*r2';plot3(W(d,1),W(d,2),W(d,3));drawnow,i=i+1,返回步骤(3).
(5) subplot(2,2,1);plot3(X(d,1),X(d,2),X(d,3))subplot(2,2,2);plot3(U(d,1),U(d,2),U(d,3));subplot(2,2,3); plot3(W(d,1),W(d,2),W(d,3)); xlabel('x');ylabel('y');zlabel('z');view(3); rotate3d。
《数值计算方法》实验报告 4
start X=zeros(8,3);X([5:8,11,12,15,16,18,20,22,24])=1;d=[1 2 4 3 1 5 6 8 7 5 6 2 4 8 7 3]; i=0 i=i+1 Y i>100 N r1=[cos(i*pi/600),-sin(i*pi/600),0;0,1,0;-sin(i*pi/600,0 ,cos(i*pi/600)];U=X*r1';plot3(U(d,1),U(d,2),U(d,3));drawnow i=0. i=i+1 Y i>100 N r2=[cos(i*pi/400),-sin(i*pi/400),0;sin(i*pi/400),cos(i*pi/400),0;0,0,1];W=U*r2';plot3(W(d,1),W(d,2),W(d,3));drawnow subplot(2,2,1);plot3(X(d,1),X(d,2),X(d,3))subplot(2,2,2);plot3(U(d,1),U(d,2),U(d,3));subplot(2,2,3); plot3(W(d,1),W(d,2),W(d,3)); xlabel('x');ylabel('y');zlabel('z');view(3); rotate3d output end