线性代数实验Word文件下载.docx
《线性代数实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《线性代数实验Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
010-1
0013
所以x=2,y=-1,z=3
例1.6:
求解方程
A=[1-213;
2-3-17;
5-8-120];
rref(A)
10-50
01-30
0001
对应的方程为
显然,方程无解.
例1.7 求解方程
A=[34-3-6;
-1-124;
1212];
10-5-10
0136
0000
对应的方程为:
Z取任意值,得到的x,y,z都是方程的解,所以方程有无穷多个解.
(3)
2.用高斯消元法解下列方程组
(1)
(2)
2.7矩阵运算实验
Matlab语言的基本计算对象是向量和矩阵,而把数看作一维向量.
1.向量的表示
在Matlab中,向量的赋值可用下列分式:
a=[1,2,3,4,5],>
b=[678910]
两种方法是等价的.还可以用生成的方法表示向量:
c=1:
2:
10
上面的式子生成以1开头,以2为步长,一直到小于等于10的最大整数
即c=[1,3,5,7,9]
一般,c=a:
c:
b生成向量
[a,a+c,a+2c,a+Nc]N为整数
使得b在a+Nc与a+(N+1)c之间
c=3:
-0.1:
2.53
生成[3,2.9,2.8,2.7,2.6,2.5]
2.矩阵的与运算
在Matlan中输入一个矩阵A=
在Matlab提示符〉〉后面键入:
回车可得
A(i,j)表示矩阵中的元
,如
A(2,3)
6
再对变量B赋值一个矩阵
B=[1,3,2;
4,3,2;
6,4,5]
B=
132
432
645
求B的转置矩阵可键入:
B'
146
334
225
在Matlan中,矩阵的运算非常简单,如A+B,3B,A*B,可直接键入算式便可的结果:
A+B
255
888
131214
3*B
396
1296
181215
A*B
272121
605148
938175
2.特殊矩阵的输入
在Matlan中
A=zeros(n),B=ones(n),C=eye(n)
分别表示生成n阶零矩阵,n阶全1矩阵,n阶单位矩阵。
A=zeros(m,n),B=ones(m,n),C=eyem,(n)
分别表示生成m×
n阶零矩阵,m×
n阶全1矩阵,m×
n阶主对角线为1,其余为0的矩阵
例如:
eye(3,4)
1000
0100
0010
A=rand(n),B=rand(m,n)
分别生成n阶标准均匀分布的伪随机矩阵和m×
n阶标准均匀分布的伪随机矩阵
A=rand(3)。
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
(1)如c为一个向量,diag(c)生成对角矩阵,例如:
5
c=
12345
diag(c)
10000
02000
00300
00040
00005
(2)C=[AB]表示把A和B合并成一个矩阵(%号后面为注释语句,在程序中不运行)
例如
A=eye(3);
%语句后面打分号,表示不显示结果,
B=ones(3,4);
C=[AB]
C=
1001111
0101111
0011111
(3)size(C)为检查矩阵C的阶数语句,例如:
size(c)
36
从结果可知C为3×
6阶矩阵.
(4)求矩阵A的n次冪,可用A^n
A=[123;
213;
3,1,6];
A^3
10962225
11061225
193107396
(5)求A的逆矩阵,用函数inv(A),例如:
3,1,6]
213
316
B=inv(A)
-0.50001.5000-0.5000
0.50000.5000-0.5000
0.1667-0.83330.5000
检证一下:
100
010
001
例2.13求解矩阵方程
解:
A=[1,3,2;
3,-4,1;
-3,6,7];
B=[3,4,-1;
2,-3,6;
3,0,2];
C=[156,-91,281;
-162,44,-228;
324,-100,494];
X=inv(A)*C*inv(B)
X=
-2.00003.00001.0000
3.000012.00004.0000
2.00003.0000-1.0000
3.6行列式计算的Matlab实验
求方阵A的行列式调用函数det(A)行列式
例3.15求矩阵
的
A=[1,3,5;
2,4,2;
6,3,9]
A=
135
242
639
det(A)
-94
例3.16解下列方程组:
A=[1,1,1,1;
1,2,-1,4;
2,-3,-1,-5;
3,1,2,11]
1111
12-14
2-3-1-5
31211
b=[4,6,-7,17]'
b=
4
-7
17
x=inv(A)*b
x=
1.0000
Matlab可以进行符号运算,首先将式子将用到的符号用语句syms定义。
例3.17求行列式
的值
symsabcd
A=[a,b;
c,d]
[a,b]
[c,d]
a*d—b*c
例3.18求行列式
>
symsa
A=[1-a,a,0,0,0;
-1,1-a,a,0,0;
0,-1,1-a,a,0;
0,0,-1,1-a,0;
0,0,0,-1,1-a]
A=
[1-a,a,0,0,0]
[-1,1-a,a,0,0]
[0,-1,1-a,a,0]
[0,0,-1,1-a,0]
[0,0,0,-1,1-a]
ans=
1-2*a+2*a^2-2*a^3+2*a^4-a^5
4.7秩的计算、向量的正交化实验
1矩阵秩的计算
矩阵秩的计算是调用函数rank()
A=[-10,4,-6,8;
4,-1,6,-2;
5,7,9,-6;
0,9,6,-2]
-104-68
4-16-2
579-6
096-2
rank(A)
3
向量组abcd的秩可用下列语句求出:
rank([abcd])
2向量组的线性相关性与最大无关组
对于一个m个向量组A是否线性相关,我们可以通过求向量组的秩来判断,如果rank(A)=m,则线性无关,如果rank(A)<
m,则线性相关.
例如,键入a,b,c,d四个向量
a=[1-124]'
;
b=[0312]'
c=[-33714]'
d=[4-1918]'
将a,b,c,d并为一个矩阵u:
u=[abcd]
rank(u)
3
u的秩为3,所以组a,b,c,d线性相关。
而使用下列语句,不仅可以求出t的行标准阶梯矩阵,还给出了线性无关向量组在原矩阵中的列数,这实际上就是最大无关组.
[tip]=rref(t)
u=
1004
0101
ip=
123
这表明u中第1,2,3列向量线性无关,即向量a,b,c线性无关
3.向量的内积与正交性
(1)求两个向量a,b的内积,可把a设为行向量,将b设为列向量,a与b作矩阵乘法求出a与b的内积。
a=[12-34]'
b=[2,-348]'
p=
16
(2)求向量a的模可调用函数norm()
norm(a)
5.4772
(1)求向量a和b之间的交角
thita=acos((a*b'
)/(norm(a)*norm(b)))
thita=
1.2630
要将线性无关的向量组a,b,c,d化为标准正交基,可先将向量组并为一个矩阵u,再调用正交分解程序[Q,R]=qr(),结果将矩阵u分解为一个正交矩阵Q和一个上三角矩阵的乘积.Q中前4个行向量,相当于施密特正交化方法得到的标准正交向量,加上最后一行补充的标准正交向量,构成五维线性空间的标准正交基.
例:
将线性无关的向量组a,b,c,d正交化,先对a,b,c,d赋值:
a=[1-1-111]'
b=[214-42]'
c=[5-4-371]'
d=[3,246-1]’;
再补充一个与a,b,c,d线性无关的向量e:
e=[23156]’;
合并个向量,再调用语句[Q,R]=qr[u]
u=[abcde]
[Q,R]=qr(u)
u=
12513
-11-423
-14-3-23
1-473-1
1213-1
Q=
-0.4472-0.5000-0.5000-0.0245-0.5472
0.4472-0.00000.0000-0.8320-0.3283
0.4472-0.5000-0.50000.02450.5472
-0.44720.5000-0.5000-0.39150.3830
-0.4472-0.50000.5000-0.39150.3830
R=
-2.23612.2361-8.9443-3.13052.2361
0-6.00002.00000.5000-3.0000
00-4.00000.5000-3.0000
000-4.0866-1.7129
0000-1.7510
验证:
Q'
*Q
1.0000-0.0000-0.0000-0.0000-0.0000
-0.00001.0000-0.00000-0.0000
-0.0000-0.00001.0000-0.0000-0.0000
-0.00000-0.00001.00000
-0.0000-0.0000-0.000001.0000
5.3解线性方程组的Matlab实验
线性方程组AX=b的解,可以由其增广矩阵B=[Ab]确定.
1.适定方程求解
n元线性方程组AX=b有惟一解的充分必要条件是R(B)=R(B)=n.
如A是n阶方阵,则
键入x=inv(A)*b便可得到解向量X;
还可以用矩阵的除法求解,x=A\b,这种方法的解的精度与运算时间都优于用逆阵方法求解.
如A不是n阶方阵,则用A的广义逆矩阵求解,A的广义逆矩阵用函数pinv(A)得到,键入x=pinv(A)*b便可得到解向量X.也可以用矩阵的除法求解,x=A\b.还可以将B化为阶梯矩阵T=rref(B),T的最后一列前n行元便是解,
键入T=rref(B);
X=T(1:
n,n)
例如,赋值一个方程组的增广矩阵B
B=[12341
02351
00351
000-10-20
1494-17]
A=B(1:
5,1:
4);
b=B(:
5);
%将系数矩阵与常数向量分离出来
x1=pinv(A)*b
x2=A\b
T=rref(B)
X3=T(1:
4,5)
三种方法都可求得方程组的解:
x1=
2.0000
0.0000
-3.0000
x2=
x3=
2
0
-3
2.超定方程求解
线性方程组AX=b,当R([Ab])>
R(A)时方程无解,令e=AX-b,既不存在X使得e=0.在实际工程应用中,常常要求X,使得向量误差向量e的模达到最小,X被称为最小二乘解.用语句X=pinv(A)*b或X=a\b求方程组AX=b的最小二乘解,两种方法的结果可能不同,但误差向量e的模相等.
例5.7求超定方程AX=b的最小二乘解
其中A=
,
A=[1234;
1494;
1234];
b=[123]’;
x2=A\b
e1=A*x1-b
m1=norm(e1)
e2=A*x2-b
m2=norm(e2)
0.1117
0.1006
-0.0335
0.4469
0.5000
e1=
1.0000
-0.0000
-1.0000
m1=
1.4142
e2=
m2=
1.4142
3.欠定方程求解
欠定方程有无穷解,n元线性方程组AX=b有无穷解的充分必要条件是R(B)=R(A)<
n
方程组AX=b的通解由相应的齐次方程的通解加上非齐次方程的特解组成.
在Matlab函数null(A)可得到齐次方程解的基础解系,用y=pinv(A)*b可求出非齐次方程的特解.
例5.8求齐次线性方程组
的基础解系.
A=[11-1-1;
2-532;
7-731];
c=null(A,'
r'
)%‘r’表示输出结果以有理数的方式
0.28570.4286
0.71430.5714
1.00000
01.0000
说明:
c的两个行向量就是基础解系.
例5.9求非齐次线性方程组
的通解
A=[1-1-11;
1-11-3;
1-1-23];
b=[00-0.5]’
c=nul(A,’r’)
x=pinv(A)*b
11
10
02
01
0.1364
-0.1364
0.0455
-0.2273
由以上显示结果,可得方程组的通解为
6.6特征值、特征向量的计算与
矩阵对角化的Matlab实验
6.1求矩阵的特征值与特征向量
1.特征值与特征向量
求矩阵A的特征值调用函数d=eig(A),如要求特征值与特征向量,则调用函数[V,D]=eig(A),V为方阵,D为由特征值构成的对角矩阵,V的第i列向量就是D的第i个对角元即第i个特征值所对应的特征向量.
例6.20求矩阵
的特征值与特征向量
A=[3-1-2;
20-2;
2-1-1]
eig(A)'
%转量是为了将特征值写成行向量形式.
[V,D]=eig(A);
3-1-2
20-2
2-1-1
1.00000.00001.0000
V=
0.7276-0.57740.6230
0.4851-0.5774-0.2417
0.4851-0.57740.7439
D=
1.000000
000
001.0000
2.正定矩阵的判断
求出矩阵A的特征值,如特征值全大于零,则矩阵A为正定矩阵;
如特征值全小于零,则矩阵A为负定矩阵.
6.6.2矩阵的对角化
矩阵A可对角化的充要条件是,A是方阵,且A有n个线性无关的特征向量.
调用函数[V,D]=eig(A),如果矩阵V的行列式不等于零,则矩阵V可通过相似变换化为对角矩阵,即有
是对角矩阵.
如果矩阵V的行列式不等于零,矩阵A不能对角化,但仍可以通过相似变换化为Jordan矩阵.实现这一目的可调用函数[P,J]=jordan(A),P是可逆方阵,J是Jordan矩阵.
例6.21化矩阵
为对角矩阵
A=[122;
212;
221]
[V,D]=eig(A)
122
212
221
0.60150.55220.5774
0.1775-0.79700.5774
-0.77890.24480.5774
D=
-1.000000
0-1.00000
005.0000
计算V的行列式:
det(V)
Ans=
-1.000
由于
所以矩阵A可对角化,即
例6.22求矩阵
的Jordan标准型.
A=[-1-26;
-103;
-1-14]
[P,J]=jordan(A)
-1-26
-103
-1-14
P=
-243
-100
-111
J=
110
如果矩阵A可对角化,调用[P,J]=jordan(A)后所得到的J将是对角矩阵.
如果A是对称矩阵,调用函数[P,D]=eig(A)的结果,P是正交矩阵,D是对角矩阵.可用正交矩阵P化A为对角矩阵.
例6.23用正交变换化对称矩
A=[122;
[P,D]=eig(A)
验证P为正交矩阵:
E=P'
*P
E=
1.0000-0.0000-0.0000
-0.00001.00000.0000
-0.00000.00001.0000
6.6.3求二次型的标准型
通过正交变换将二次型化为标准型,要先将二次型所对应的对称矩阵A求出,调用函数[P,D]=eig(A)将A对角化.
例6.24化二次型
为标准型.
A=[011-1;
10-11;
1-101;
-1110]
011-1
10-11
1-101
-1110
-0.50000.28870.78870.2113
0.5000-0.28870.21130.7887
0.5000-0.28870.5774-0.5774
-0.5000-0.866000
-3.0000000
01.000000
001.00000
0001.0000
d=P'
*A*P
d=
01.00000