线性代数实验报告汇总.docx
《线性代数实验报告汇总.docx》由会员分享,可在线阅读,更多相关《线性代数实验报告汇总.docx(17页珍藏版)》请在冰点文库上搜索。
![线性代数实验报告汇总.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/ec4a6a96-f845-4237-a7df-7d31e4187234/ec4a6a96-f845-4237-a7df-7d31e41872341.gif)
线性代数实验报告汇总
数学实验报告题目
第一次实验题目
一、实验目的
1MATLAB的矩阵初等运算;.熟悉2.掌握求矩阵的秩、逆、化最简阶梯形的命令;3MABLAB求解线性方程组.会用二、问题求解和程序设计流程
344?
221?
?
?
?
?
?
?
?
MATLABA1B、,已知命令窗口中建立.,在320B?
?
?
50?
?
3A?
?
?
?
?
?
?
?
112?
153?
?
?
?
矩阵并对其进行以下操作:
(1)A的行列式的值计算矩阵?
)?
Adet(
(2)分别计算下列各式:
、和、、、、B?
A.T112?
?
B?
BA?
2AABABAA
:
解
(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
2MATLABrankinv求下列矩阵的秩:
中分别利用矩阵的初等变换及函数.在、函数
线性代数实验报告
3501?
?
2631?
?
?
?
?
0012?
?
?
?
(1)Rank(A)=?
2求)求(054A?
3?
?
B1?
?
B?
?
?
?
?
0201?
?
4?
?
1112?
?
?
?
2102?
?
解:
1编写程如下:
()formatrat
A=[1-632;3-540;-1-1124];
rref(A)
运行结果:
ans=
100-8/5
0100
0016/5
AA3。
经初等变换后得到的行最简型可知:
由的秩为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中判断下列向量组是否线性相关,并找出向量组中的一个最大线性在,,,?
无关组:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1,3?
?
1,1,?
1,1,3,2?
1,3,1,7?
2,8,95,?
?
?
3412:
解:
编写程序如下
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
123.,分析:
由运行结果可知:
该向量组的一个极大无关组为:
,?
?
?
4MATLAB中判断下列方程组解的情况,若有多个解,写出通解:
、在x?
x?
4x?
2x?
02x?
3x?
x?
4?
?
3221413?
?
x?
2x?
4x?
?
5x?
x?
x?
2x?
0?
?
1
(2))(3212341?
?
3x?
x?
7x?
2x?
03x?
8x?
2x?
13?
?
3121243?
?
x?
3x?
12x?
6x?
04x?
x?
9x?
?
6?
?
32314211:
编写程序如下解:
()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
);'r'a=null(B,k2symsk1
x=k1*a(:
1)+k2*a(:
2)
运行结果如下:
x=
[-2*k1+k2]
k1-2*k2][
k1][
k2][
分析:
k1,k2为自由未知量,则该方程组的通解为:
记x3,x4X1=-2*k1+k2
X2=k1-2*k2
X3=k1
X4=k2
2?
22?
?
?
?
.
5为对角阵、化方阵4?
5A?
2?
?
?
?
5?
2?
4?
?
解:
编写程序如下:
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化为标准型。
、求一个正交变换,将二次型222x6?
xx?
6xx5x?
5x3?
x?
2xf?
312332112解:
编写程序如下:
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化为标准型:
+9.
f=4
线性代数实验报告
第二次实验题目
一、实验目的
(1)熟悉三维空间中的线性变换,加深对正交变换保持距离不变性的理解
(2)深刻理解矩阵特征值的内涵
二、问题求解和程序设计流程
211?
?
?
?
3232?
?
41?
?
.?
是正交矩阵A?
0?
?
323?
?
121?
?
?
?
?
3223?
?
问题:
(1)使用图形窗口的旋转工具,你发现了什么问题?
你能否说明上述向量序列(点)分布在两个不同的圆周上?
若是,你如何证明以及这两个圆的方程是什么?
(2)例4与例5生成向量序列(点)在空间分布“形状”不同是因为什么?
分别计算例4和例5中变换矩阵的行列式与特征值,你发现了什么?
(3)若上述变换矩阵为实对称正交矩阵,情况又如何?
(4)如果每次迭代的正交矩阵也在变化,即x?
Ax,k?
0,1,2,?
kk?
k1你如何描述上面迭代生成的迭代序列?
解:
(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由n+1个点够成一个球,且当上述程序中循环次数1000时,结果如下:
整。
如当n取
三、实验总结与体会
线性代数实验报告
通过此次对matlab的上机学习,我掌握了其基本操作方法,对利用matlab
对矩阵进行基本计算,和基本编程都有了了解与学习,,并对matlab在矩阵方面的应用有了一定程度的了解和认识。
学会了如何用matlab对实际线性代数问题进行解决,可以利用matlab进行基本的运算和编程操作,对矩阵的运算有了进一步的了解。
掌握了:
1MATLAB的矩阵初等运算;.熟悉2.掌握求矩阵的秩、逆、化最简阶梯形的命令;3MABLAB求解线性方程组.会用但在学习中还发现一些问题:
(1)如对较复杂的方程组求解过程还需进一步学习与掌握;
(2)在解决问题时应灵活处理,并力争去寻找其最简方法;
(3)应进一步强化自己对矩阵相关知识的理解,学会将个方面知识串通起来灵活运用。
在今后的学习和工作中,应进一步深入学习matlab,使自己熟练掌握其应用,并利用Matlab平台对线性代数矩阵问题进行学习。
41.