实验一 MATLAB矩阵处理
实验要求:
为达到理想的实验效果,同学们务必做到:
1.实验前认真准备,要根据实验目的和实验内容,复习好实验中可能要用到的命令,想好编程的思路,做到胸有成竹,提高上机效率。
2.实验过程中积极思考,要深入分析命令、程序的执行结果以及各种屏幕信息的含义、出现的原因并提出解决办法。
3.实验后认真总结,要总结本次实验有哪些收获,还存在哪些问题,并写出实验报告。实验报告应包括实验目的、实验内容、流程图(较大程序)、程序(命令)清单、运行结果以及实验的收获与体会等内容。
实验目的:
1.掌握生成特殊矩阵的方法
2.掌握矩阵处理的方法
3.掌握用矩阵求逆法解线性方程组的方法
实验内容:
1.设有分块矩阵,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证。
答:步骤1:列出A内的各个矩阵
E=eye(3);
R=rand(3,2);
o=zeros(2,3);
S=diag([1,2])
S =
1 0
0 2
步骤2:输出矩阵A
A=[E,R;o,S;]
A =
1.0000 0 0 0.2785 0.9649
0 1.0000 0 0.5469 0.1576
0 0 1.0000 0.9575 0.9706
0 0 0 1.0000 0
0 0 0 0 2.0000
步骤3:将AA与矩阵A和题中的大致相比较,易知AA中的E,O均未变,S变为S^2,猜测可能符合
A*A
ans =
1.0000 0 0 0.5570 2.8947
0 1.0000 0 1.0938 0.4728
0 0 1.0000 1.9150 2.9118
0 0 0 1.0000 0
0 0 0 0 4.0000
步骤4:计算A=[E,R+RS;o,SS;]与AA的结果相对比,可知符合
A=[E,R+RS;o,S*S;]
A =
1.0000 0 0 0.5570 2.8947
0 1.0000 0 1.0938 0.4728
0 0 1.0000 1.9150 2.9118
0 0 0 1.0000 0
0 0 0 0 4.0000
2.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
答:
步骤1:建立5*5的矩阵A
A=diag([1,2,3,4,5])
A =
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
步骤2:求行列式的值,迹,秩,和范数
det(A)
ans =
120
rank(A)
ans =
5
trace(A)
ans =
15
计算向量A的1—范数
norm(A,1)
ans =
1.0833
计算向量A的2—范数
norm(A)
ans =
5
计算向量A的inf—范数
norm(A,inf)
ans =
1.0833
3.产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
答:
步骤1:产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P
H=hilb(5)
H =
1.0000 0.5000 0.3333 0.2500 0.2000
0.5000 0.3333 0.2500 0.2000 0.1667
0.3333 0.2500 0.2000 0.1667 0.1429
0.2500 0.2000 0.1667 0.1429 0.1250
0.2000 0.1667 0.1429 0.1250 0.1111
P=pascal(5)
P =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
步骤2:求其行列式的值Hh和Hp
Hh=det(H)
Hh =
3.7493e-12
HP=det§
HP =
1
步骤3:求其三种条件数Th和Tp
计算A的1—范数下的条件数。
Th=cond(H,1)
Th =
9.4366e+05
Tp=cond(P,1)
Tp =
15624
计算A的2—范数数下的条件数。
Th=cond(H)
Th =
4.7661e+05
Tp=cond§
Tp =
8.5175e+03
计算A的∞—范数数下的条件数。
Th=cond(H,inf)
Th =
9.4366e+05
Tp=cond(P,inf)
Tp =
15624
由结果可知,三种条件数TP均小于TH,故帕斯卡矩阵更好,条件数越大,矩阵越病态 。
4. 已知求A的特征值及特征向量,并分析其数学意义。
答:
步骤1:输入矩阵A
A=[-29,6,18;20,5,12;-8,8,5;]
A =
-29 6 18
20 5 12
-8 8 5
步骤2:求特征向量和特征值
[V,D]=eig(A)
V =
0.7130 0.2803 0.2733
-0.6084 -0.7867 0.8725
0.3487 0.5501 0.4050
D =
-25.3169 0 0
0 -10.5182 0
0 0 16.8351
步骤3:数学关系
A*[0.7130;-0.6084 ;0.3487 ;]
ans =
-18.0508
15.4024
-8.8277
-25.3169 *[0.7130;-0.6084 ;0.3487 ;]
ans =
-18.0509
15.4028
-8.8280
根据上式,矩阵的特征值有三个-25.3169, -10.5182 ,16.8351 ;矩阵的特征向量有三个 :[0.7130,-0.6084 ,0.3487 ],[0.2803,-0.7867 ,0.5501] ,
[ 0.2733 ,0.8725 ,0.4050] 取出第一个特征向量,与矩阵A作矩阵相乘,可发现其结果,与对应的特征值-25.3169与矩阵第一个特征向量相乘的结果,正好相等: 取第2个特征向量与矩阵A相乘,结果同样与特征值-10.5182乘以第二个特征向量相等 : 取第3个特征向量与矩阵A相乘,结果同样与特征值16.8351乘以第3个特征向量相等 因此,这个例子里可以得出如下数学结论:对于矩阵A,有3个特定输入(三个特征向量)x1和x2,x3,会按固定比例放大(或缩小),放大倍数分别为-25.3169 ,-10.5182 ,16.8351 矩阵A的意义就是线性变换特,征向量x就是线性变换前后总是保持平行的方向而特征值λ就是特征向量x变换之后Ax被拉伸的倍数:Ax=λx
- 下面是一个线性方程组:
(1)求方程的解。
A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6]
A =
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
0.2500 0.2000 0.1667
B=[0.95;0.67;0.52]
B =
0.9500
0.6700
0.5200
x=inv(A)*B
x =
1.2000
0.6000
0.6000
(2)将方程右边向量元素b3改为0.53再求解,并比较b3的变化和解的相对变化。
B=[0.95;0.67;0.53]
B =
0.9500
0.6700
0.5300
x=inv(A)*B
x =
3.0000
-6.6000
6.6000
b3的变化很小解的相对变化很大
(3)计算系数矩阵A的条件数并分析结论。
1.计算A的1—范数数下的条件数
cond(A,1)
ans =
2.0150e+03
计算A的2—范数数下的条件数
cond(A)
ans =
1.3533e+03
计算A的inf—范数数下的条件数
cond(A,inf)
ans =
2.0150e+03
实验收获:
1.复习了单位矩阵、随机矩阵、零矩阵、对角阵、阶尔伯特矩阵和阶帕斯卡矩阵;
2.区分了A^2与A.*A;
3.复习了行列式值、迹、秩和范数的求法;
4.掌握了的特征值及特征向量的求法;
5.学会利用条件数判断矩阵性能的好坏;