线性代数实验报告汇总x
时间:2020-09-22 20:23:50 来源:勤学考试网 本文已影响 人
线性代数实验报告
线性代数实验报告
数学实验报告题目
第一次实验题目
一4
-2
2〕
一1
3
41
1.已知A =
-3
0
5
,B =
-2
0
-3
,在MATLAB命令窗口中建立
1
5
3 一
2
-1
1 一
实验目的
1 ?熟悉MATLAB的矩阵初等运算;
2?掌握求矩阵的秩、逆、化最简阶梯形的命令;
3 ?会用MABLAB求解线性方程组
问题求解和程序设计流程
矩阵并对其进行以下操作:
计算矩阵A的行列式的值det(A)二?
分别计算下列各式:
2A-B、 A B 和 A. B、 ABJ、 A」B、 A2、 AT
解:
A、B
(1)编写程序如下:
A=[4 -2 2;-3 0 5;1 5 3];
B=[1 3 4;-2 0 -3;2 -1 1];
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-7 0
-4 0 13
0
11
5
D =
12
10
24
7 -14
-7
-3
0
-8
E =
4
-6
8
6
0
-15
2
-5
3
F =
0
0
2.0000
-2.7143
-8.0000
-8.1429
2.4286
3.0000
2.2857
G =
0.4873
0.4114
1.0000
0.3671
-0.4304
0
-0.1076
0.2468
0
H =
24
2
4
-7
31
9
-8
13
36
K =
4
-3
1
-2
0
5
2
5
3
在MATLAB中分别利用矩阵的初等变换及函数 rank、函数inv求下列矩阵的秩:
解:(1)■13【一1-6
解:
(1)
■1
3
【一1
-6
-5
21
0
-11 2 4
编写程如下:
求 Rank(A)=?
(2) B =
1【
0
0
2
format rat
A=[1 -6 3 2;3 -5 4 0;-1 -11 2 4]; rref(A)
运行结果:
ans =
1
0
0
-8/5
0
1
0
0
0
0
1
6/5
由a经初等变换后得到的行最简型可知:
A的秩为3。
A=[1 -6 3 2;3 -5 4 0;-1 -11 2 4];
ran k(A)
直接利用rank函数求出A的秩为3.
编写程序如下:
B=[3 5 0 1;1 2 0 0;1 0 2 0;1 2 0 2]; in v(B)
运行结果:
ans =
2.0000-1.0000-1.0000-4.00002.50002.0000-0.5000
2.0000
-1.0000
-1.0000
-4.0000
2.5000
2.0000
-0.5000
-1.0000
0.5000
0.5000
0.5000
0.5000
在MATLAB中判断下列向量组是否线性相关,并找出向量组中的一个最大线性 无关组:冷=1,1,3,2 ,: 2 二 T,1,T,3 宀3 = 5,-2,8,9,— 一1,3,1,7
解:编写程序如下:
format rat
A=[1 -1 5 -1;1 1 -2 3;3 -1 8 1;2 3 9 7]; a=det(A);
if a==0
fprintf('以上矩阵线性相关') b=rref(A)
else
fprintf('以上矩阵线性无关')
end
运行结果:
以上矩阵线性相关
b =
12/1159/33-2/33 TOC \o "1-5" \h \z 1 0 0
12/11
59/33
-2/33
0 1 0
0 0 1
0 0 0
分析:由运行结果可知:该向量组的一个极大无关组为:
4、在MATLAB中判断下列方程组解的情况,若有多个解,写出通解:
(1)X"! _x
(1)
X"! _x2 +4x3 _2x4 = 0
% —x2 —x3 +2% =0
3x1 x2 7x3 _2x4 = 0
为-3x2 -12x3 6x4 = 0
2x1 3x2 x3 = 4
⑵ X1 - 2x2 + 4x3 = -5
"3% + 8x2 - 2x3 = 13
4为 - x2 9x3 = -6
解:(1)编写程序如下:format ratA=[1 -1 4 -2;1 -1 -1 2;3 1 7 -2;1 -3 -12 6]; a=ra nk(A)if a==4fprintf( '
解:(1)编写程序如下:
format rat
A=[1 -1 4 -2;1 -1 -1 2;3 1 7 -2;1 -3 -12 6]; a=ra nk(A)
if a==4
fprintf( '该方程组只有零解\n'
else a<4
fprintf( '该方程组有多组解\n'
a=null(A, 'r');
syms k1 k2
x=k1*a(:,1)+k2*a(:,2)
end
运行结果:
4
该方程组只有零解
(2)编写程序如下:
运行结果format ratB=[2 3 1 4;1
运行结果
format rat
B=[2 3 1 4;1 -2 4 -5;3 8 -2 13;4 -1 9 -6]; rref(B)
ans =
10
1
0
0
0
分析:
1 -1 2
TOC \o "1-5" \h \z 0 0 0
0 0 0
由B的增广矩阵的最简型可知,该方程组有无穷多组解。
编程如下:
format rat
a=n ull(B, 'r');
syms k1 k2
x=k1*a(:,1)+k2*a(:,2)
运行结果如下:
[-2*k1+k2]
[k1-2*k2]
[ k1]
[ k2]
分析:
记x3,x4为自由未知量k1,k2,则该方程组的通解为:
X仁-2*k1+k2
X2= k1-2*k2
X3= k1
X4= k2
广2
2
-2^
5、化方阵A =
2
5
-4
为对角阵
i—2
-4
5」
解:编写程序如下:
format rat
A=[2 2 -2;2 5 -4;-2 -4 5];
[tx,tz]=eig(A)
运行结果:
tx =
TOC \o "1-5" \h \z -963/3230 2584/2889 1/3
-963/1615 -1292/2889 2/3
-963/1292 0 -2/3
tz =
1 0
0
0 1
0
0 0
10
分析:由以上运行结果可直接得出:A的对角矩阵为tz
TOC \o "1-5" \h \z 1 0 0
0 1 0
0 0 10
6、求一个正交变换,将二次型f邑为2?5x; 3x" -2^x2 6x1x^6x2x3化为标准型。
解:编写程序如下:
A=[5 -1 3;-1 5 -3;3 -3 3];
[P,D]=eig(A)
运行结果:
0.4082 0.7071 -0.5774
-0.4082 0.7071 0.5774
-0.8165 0 -0.5774
-0.0000 0 0
0 4.0000 0
0 0 9.0000
分析与结论:
由以上运行结果可知,求得的正交向量 P为:
P =
0.4082 0.7071 -0.5774
-0.4082 0.7071 0.5774
-0.8165 0 -0.5774
使得 Ap=diag( 0,4,9).
因此,通过正交变换X=py,可以将f化为标准型:
f=4 +9 .
第二次实验题目
、实验目的
熟悉三维空间中的线性变换,加深对正交变换保持距离不变性的理解
深刻理解矩阵特征值的内涵
、问题求解和程序设计流程
■
A =
1
2 1 1 \
3 -JT 3>/T
1c 4
3 3 J2
2 1 1
是正交矩阵
问题:
使用图形窗口的旋转工具,你发现了什么问题?你能否说明上述向量序列 (点) 分布在两个不同的圆周上?若是,你如何证明以及这两个圆的方程是什么?
例4与例5生成向量序列(点)在空间分布“形状”不同是因为什么?分别计 算例4和例5中变换矩阵的行列式与特征值,你发现了什么?
若上述变换矩阵为实对称正交矩阵,情况又如何?
如果每次迭代的正交矩阵也在变化,即
Xk i =人兀,k =0,1,2,::
你如何描述上面迭代生成的迭代序列?
解:(1)因为进行迭代并执行程序得:
编写程序:
x=ran d(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;
for k=1: n
x=A*x;
ax=[ax,x];
end
plot3(ax(1,:),ax(2,:),ax(3,:),'*')
运行结果:
0.9134
0.6324
可以观察到上述向量序列(点)分布在两个不同的圆周上 验证如下:
编写程序如下:
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;
for k=1: n
x=A*x; ax=[ax,x];
end
for k=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/sqr
t(2),1/(3*sqrt (2))];
ax=x;
n=100;
for k=1: n
x=A*x;
ax=[ax,x];
end
for k=3:2:99
if no rm(ax(:,1)-ax(:,k)) <no rm(ax(:,1)-ax(:,k+2))
d1=n orm(ax(:,1)-ax(:,k+2));
m仁 ax(:,k+2);
end
end
for t=4:2:98
if norm(ax(:,2)-ax(:,t))< norm(ax(:,2)-ax(:,t+2))
d2=norm(ax(:,2)-ax(:,t+2));
m2=ax(:,t+2);
end
end r仁 d1/2
A=(x+m1);
A=A';
r2=d2/2
B=(x+m2);
B=B';
fprintf(' 圆1的方程是:
(x-%.4f)A2+(y-%.4f)A2+(z-%.4f)A2=%.4fA2\n',A(1)/2,A(2)/2,A(3)/
2,r1)
fprintf(' 圆2的方程是:
(x-%.4f)A2+(y-%.4f)A2+(z-%.4f)A2=%.4fA2\n',B(1)/2,B(2)/2,B(3)/
2,⑵
运行结果:
r1 =
1.1047
r2 =
1.1047
圆 1 的方程是:(x--0.0587)A2+(y-0.1072)A2+(z-0.0901)A2=1.1047A2 圆 2 的方程是:仪--0.0315)八2+仪-0.1026)八2+仗--0.1381)八2=1.1047八2 分析与结论:
上述向量序列(点)分布在两个不同的圆周上,且该两圆半径相等。
(2)两者空间分布不同时由于变换矩阵的行列式互为相反数。
编程如下:
format
A=[-0.6068,0.4443,-0.6591;-0.4007,-0.8871,-0.2290;-0.6865,0.12 51,0.7163];
B=[2/3,1/sqrt(2),1/(3*sqrt(2));1/3,0,-4/(3*sqrt(2));2/3,-1/sqr
t(2),1/(3*sqrt (2))];
[a,tza]=eig(A)
[b,tzb]=eig(B)
q=det(A)
w=det(B)
运行结果:
0.3864 + 0.0000i
0.0298 + 0.0000i
-0.9219 + 0.0000i
-0.0081 - 0.6521i
0.7068 + 0.0000i
0.0195 - 0.2734i
-0.0081 + 0.6521i
0.7068 + 0.0000i
0.0195 + 0.2734i
tza =
1.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
-0.8888 + 0.4583i
0.0000 + 0.0000i
0.0000 + 0.0000i
0.0000 + 0.0000i
-0.8888 - 0.4583i
0.3819 + O.OOOOi
-0.6982 + O.OOOOi
-O.6O56 + O.OOOOi
O.6535 + O.OOOOi
O.2O4O + O.4633i
O.1769 - O.5342i
O.6535 + O.OOOOi
O.2O4O - O.4633i
O.1769 + O.5342i
tzb =
-1.OOOO + O.OOOOi
-1.OOOO + O.OOOOi
O.OOOO + O.OOOOi
O.OOOO + O.OOOOi
O.OOOO + O.OOOOi
O.9512 + O.3O86i
O.OOOO + O.OOOOi
O.OOOO + O.OOOOi
O.OOOO + O.OOOOi
O.9512 - O.3O86i
q =
1.OOOO
-1.OOOO
分析与结论:
由于两矩阵一行列式为1,另一为-1,导致结果不同
编写程序如下:
x=ra nd(3,1)
A=[1 O O;O 1 O;O O 1];
ax=x;
n=1OO;
for k=1: n
x=A*x;
ax=[ax,x];
end
plot3(ax(1,:),ax(2,:),ax(3,:), ' *')
运行结果:
分析与结论:
选取最简单的以实对称正交矩阵,单位矩阵。得到上述结果,只有一个点
编写程序如下:
x=ra nd(3,1);
A=ra nd(3,3);
ax=x;
n=100;
for k=1: n
B=ra nd(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求解线性方程组
但在学习中还发现一些问题:
如对较复杂的方程组求解过程还需进一步学习与掌握;
在解决问题时应灵活处理,并力争去寻找其最简方法;
应进一步强化自己对矩阵相关知识的理解, 学会将个方面知识串通起来灵 活运用。
在今后的学习和工作中,应进一步深入学习 matlab ,使自己熟练掌握其应用,
并利用Matlab平台对线性代数矩阵问题进行学习。
14