线性代数实验报告.docx
- 文档编号:10807895
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:19
- 大小:140.23KB
线性代数实验报告.docx
《线性代数实验报告.docx》由会员分享,可在线阅读,更多相关《线性代数实验报告.docx(19页珍藏版)》请在冰豆网上搜索。
线性代数实验报告
数学实验报告题目
第一次实验题目
一、实验目的
1.熟悉MATLAB的矩阵初等运算;
2.掌握求矩阵的秩、逆、化最简阶梯形的命令;
3.会用MABLAB求解线性方程组
二、问题求解和程序设计流程
1.已知
,
,在MATLAB命令窗口中建立A、B矩阵并对其进行以下操作:
(1)计算矩阵A的行列式的值
(2)分别计算下列各式:
、
和
、
、
、
、
解:
(1)编写程序如下:
A=[4-22;-305;153];
B=[134;-20-3;2-11];
a=det(A)
运行结果:
a=
-158
(2)编写程序如下:
C=2*A-B
D=A*B
E=A.*B
F=A/B
G=A\B
H=A*A
K=A'
运行结果:
C=
7-70
-4013
0115
D=
121024
7-14-7
-30-8
E=
4-68
60-15
2-53
F=
002.0000
-2.7143-8.0000-8.1429
2.42863.00002.2857
G=
0.48730.41141.0000
0.3671-0.43040
-0.10760.24680
H=
2424
-7319
-81336
K=
4-31
-205
253
2.在MATLAB中分别利用矩阵的初等变换及函数rank、函数inv求下列矩阵的秩:
(1)
求Rank(A)=?
(2)
求
解:
(1)编写程如下:
formatrat
A=[1-632;3-540;-1-1124];
rref(A)
运行结果:
ans=
100-8/5
0100
0016/5
由A经初等变换后得到的行最简型可知:
A的秩为3。
A=[1-632;3-540;-1-1124];
rank(A)
直接利用rank函数求出A的秩为3.
(2)编写程序如下:
B=[3501;1200;1020;1202];
inv(B)
运行结果:
ans=
2.0000-4.00000-1.0000
-1.00002.500000.5000
-1.00002.00000.50000.5000
0-0.500000.5000
3.在MATLAB中判断下列向量组是否线性相关,并找出向量组中的一个最大线性无关组:
解:
编写程序如下:
formatrat
A=[1-15-1;11-23;3-181;2397];
a=det(A);
ifa==0
fprintf('以上矩阵线性相关')
b=rref(A)
else
fprintf('以上矩阵线性无关')
end
运行结果:
以上矩阵线性相关
b=
10012/11
01059/33
001-2/33
0000
分析:
由运行结果可知:
该向量组的一个极大无关组为:
1,
2,
3.
4、在MATLAB中判断下列方程组解的情况,若有多个解,写出通解:
(1)
(2)
解:
(1)编写程序如下:
formatrat
A=[1-14-2;1-1-12;317-2;1-3-126];
a=rank(A)
ifa==4
fprintf('该方程组只有零解\n')
elsea<4
fprintf('该方程组有多组解\n')a=null(A,'r');
symsk1k2
x=k1*a(:
1)+k2*a(:
2)
end
运行结果:
a=
4
该方程组只有零解
(2)编写程序如下:
formatrat
B=[2314;1-24-5;38-213;4-19-6];
rref(B)
运行结果:
ans=
102-1
01-12
0000
0000
分析:
由B的增广矩阵的最简型可知,该方程组有无穷多组解。
编程如下:
formatrat
a=null(B,'r');
symsk1k2
x=k1*a(:
1)+k2*a(:
2)
运行结果如下:
x=
[-2*k1+k2]
[k1-2*k2]
[k1]
[k2]
分析:
记x3,x4为自由未知量k1,k2,则该方程组的通解为:
X1=-2*k1+k2
X2=k1-2*k2
X3=k1
X4=k2
5、化方阵
为对角阵.
解:
编写程序如下:
formatrat
A=[22-2;25-4;-2-45];
[tx,tz]=eig(A)
运行结果:
tx=
-963/32302584/28891/3
-963/1615-1292/28892/3
-963/12920-2/3
tz=
100
010
0010
分析:
由以上运行结果可直接得出:
A的对角矩阵为tz=
100
010
0010
6、求一个正交变换,将二次型
化为标准型。
解:
编写程序如下:
A=[5-13;-15-3;3-33];
[P,D]=eig(A)
运行结果:
P=
0.40820.7071-0.5774
-0.40820.70710.5774
-0.81650-0.5774
D=
-0.000000
04.00000
009.0000
分析与结论:
由以上运行结果可知,求得的正交向量P为:
P=
0.40820.7071-0.5774
-0.40820.70710.5774
-0.81650-0.5774
使得
Ap=diag(0,4,9).
因此,通过正交变换X=py,可以将f化为标准型:
f=4
+9
.
第二次实验题目
一、实验目的
(1)熟悉三维空间中的线性变换,加深对正交变换保持距离不变性的理解
(2)深刻理解矩阵特征值的内涵
二、问题求解和程序设计流程
问题:
(1)使用图形窗口的旋转工具,你发现了什么问题?
你能否说明上述向量序列(点)分布在两个不同的圆周上?
若是,你如何证明以及这两个圆的方程是什么?
(2)例4与例5生成向量序列(点)在空间分布“形状”不同是因为什么?
分别计算例4和例5中变换矩阵的行列式与特征值,你发现了什么?
(3)若上述变换矩阵为实对称正交矩阵,情况又如何?
解:
(1)因为进行迭代并执行程序得:
编写程序:
x=rand(3,1)
A=[2/3,1/sqrt
(2),1/(3*sqrt
(2));1/3,0,-4/(3*sqrt
(2));2/3,-1/sqrt
(2),1/(3*sqrt
(2))];
ax=x;
n=100;
fork=1:
n
x=A*x;
ax=[ax,x];
end
plot3(ax(1,:
),ax(2,:
),ax(3,:
),'*')
运行结果:
x=
0.9134
0.6324
0.0975
可以观察到上述向量序列(点)分布在两个不同的圆周上。
验证如下:
编写程序如下:
x=[0.9134;0.6324;0.0975];
A=[2/3,1/sqrt
(2),1/(3*sqrt
(2));1/3,0,-4/(3*sqrt
(2));2/3,-1/sqrt
(2),1/(3*sqrt
(2))];
ax=x;
n=100;
fork=1:
n
x=A*x;
ax=[ax,x];
end
fork=1:
99
dot(cross(ax(:
k),ax(:
k+1)),ax(:
k+2))
end
运行结果:
ans=
-0.2232
ans=
0.2232
ans=
-0.2232
ans=
0.2232
ans=
-0.2232
运行结果按照上述规律依次排列。
分析与结论:
因为三个向量混合积的结果为相隔一个分别相等,所以可以形成两个半径不同的圆。
即上述向量序列(点)分布在两个不同的圆周上。
求圆方程如下:
编写程序如下:
x=[0.9134;0.6324;0.0975];
A=[2/3,1/sqrt
(2),1/(3*sqrt
(2));1/3,0,-4/(3*sqrt
(2));2/3,-1/sqrt
(2),1/(3*sqrt
(2))];
ax=x;
n=100;
fork=1:
n
x=A*x;
ax=[ax,x];
end
fork=3:
2:
99
ifnorm(ax(:
1)-ax(:
k)) 1)-ax(: k+2)) d1=norm(ax(: 1)-ax(: k+2)); m1=ax(: k+2); end end fort=4: 2: 98 ifnorm(ax(: 2)-ax(: t)) 2)-ax(: t+2)) d2=norm(ax(: 2)-ax(: t+2)); m2=ax(: t+2); end end r1=d1/2 A=(x+m1); A=A'; r2=d2/2 B=(x+m2); B=B'; fprintf('圆1的方程是: (x-%.4f)^2+(y-%.4f)^2+(z-%.4f)^2=%.4f^2\n',A (1)/2,A (2)/2,A(3)/2,r1) fprintf('圆2的方程是: (x-%.4f)^2+(y-%.4f)^2+(z-%.4f)^2=%.4f^2\n',B (1)/2,B (2)/2,B(3)/2,r2) 运行结果: r1= 1.1047 r2= 1.1047 圆1的方程是: (x--0.0587)^2+(y-0.1072)^2+(z-0.0901)^2=1.1047^2 圆2的方程是: (x--0.0315)^2+(y-0.1026)^2+(z--0.1381)^2=1.1047^2 分析与结论: 上述向量序列(点)分布在两个不同的圆周上,且该两圆半径相等。 (2)两者空间分布不同时由于变换矩阵的行列式互为相反数。 编程如下: format A=[-0.6068,0.4443,-0.6591;-0.4007,-0.8871,-0.2290;-0.6865,0.1251,0.7163]; B=[2/3,1/sqrt (2),1/(3*sqrt (2));1/3,0,-4/(3*sqrt (2));2/3,-1/sqrt (2),1/(3*sqrt (2))]; [a,tza]=eig(A) [b,tzb]=eig(B) q=det(A) w=det(B) 运行结果: a= 0.3864+0.0000i-0.0081-0.6521i-0.0081+0.6521i 0.0298+0.0000i0.7068+0.0000i0.7068+0.0000i -0.9219+0.0000i0.0195-0.2734i0.0195+0.2734i tza= 1.0000+0.0000i0.0000+0.0000i0.0000+0.0000i 0.0000+0.0000i-0.8888+0.4583i0.0000+0.0000i 0.0000+0.0000i0.0000+0.0000i-0.8888-0.4583i b= 0.3819+0.0000i0.6535+0.0000i0.6535+0.0000i -0.6982+0.0000i0.2040+0.4633i0.2040-0.4633i -0.6056+0.0000i0.1769-0.5342i0.1769+0.5342i tzb= -1.0000+0.0000i0.0000+0.0000i0.0000+0.0000i 0.0000+0.0000i0.9512+0.3086i0.0000+0.0000i 0.0000+0.0000i0.0000+0.0000i0.9512-0.3086i q= 1.0000 w= -1.0000 分析与结论: 由于两矩阵一行列式为1,另一为-1,导致结果不同。 (3)编写程序如下: x=rand(3,1) A=[100;010;001]; ax=x; n=100; fork=1: n x=A*x; ax=[ax,x]; end plot3(ax(1,: ),ax(2,: ),ax(3,: ),'*') 运行结果: 分析与结论: 选取最简单的以实对称正交矩阵,单位矩阵。 得到上述结果,只有一个点。 (4)编写程序如下: x=rand(3,1); A=rand(3,3); ax=x; n=100; fork=1: n B=rand(3,3); A=orth(B); x=A*x; ax=[ax,x]; end plot3(ax(1,: ),ax(2,: ),ax(3,: ),'*') 运行结果: 分析与结论: 由n+1个点够成一个球,且当上述程序中循环次数n增大时,形成的球体越规整。 如当n取1000时,结果如下: 三、实验总结与体会 通过此次对matlab的上机学习,我掌握了其基本操作方法,对利用matlab对矩阵进行基本计算,和基本编程都有了了解与学习,,并对matlab在矩阵方面的应用有了一定程度的了解和认识。 学会了如何用matlab对实际线性代数问题进行解决,可以利用matlab进行基本的运算和编程操作,对矩阵的运算有了进一步的了解。 掌握了: 1.熟悉MATLAB的矩阵初等运算; 2.掌握求矩阵的秩、逆、化最简阶梯形的命令; 3.会用MABLAB求解线性方程组 但在学习中还发现一些问题: (1)如对较复杂的方程组求解过程还需进一步学习与掌握; (2)在解决问题时应灵活处理,并力争去寻找其最简方法; (3)应进一步强化自己对矩阵相关知识的理解,学会将个方面知识串通起来灵活运用。 在今后的学习和工作中,应进一步深入学习matlab,使自己熟练掌握其应用,并利用Matlab平台对线性代数矩阵问题进行学习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性代数 实验 报告