第三章矩阵与线性代数计算Word下载.docx
《第三章矩阵与线性代数计算Word下载.docx》由会员分享,可在线阅读,更多相关《第三章矩阵与线性代数计算Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
789]
b=[11.11.21.31.41.51.61.71.81.9;
22.12.22.32.42.52.62.72.82.9;
33.13.23.33.43.53.63.73.83.9]
Null_M=[]%生成一个空矩阵
a=
123
456
789
b=
1.00001.10001.20001.30001.40001.50001.6000
2.00002.10002.20002.30002.40002.50002.6000
3.00003.10003.20003.30003.40003.50003.6000
1.70001.80001.9000
2.70002.80002.9000
3.70003.80003.9000
Null_M=[]
2.复数矩阵输入
复数矩阵有两种生成方式:
【例3-2】
a=2.7;
b=13/25;
C=[1,2*a+i*b,b*sqrt(a);
sin(pi/4),a+5*b,3.5+1]
C=
1.00005.4000+0.5200i0.8544
0.70715.30004.5000
【例3-3】矩阵的生成例。
R=[123;
456],M=[111213;
141516]
CN=R+i*M
R=
M=
111213
141516
CN=
1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i
4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i
3大矩阵的生成
对于大型矩阵,一般创建M文件,以便于修改:
【例3-4】用M文件创建大矩阵,文件名为c3e4.m
exm=[456468873257955
2168754488813
6545678898215
4566845896545987
548810963377
在MATLAB命令窗口输入:
c3e4;
size(exm)%显示exm的大小
ans=
56%表示exm有5行6列。
4特殊矩阵的生成
命令全零阵
函数zeros
格式B=zeros(n)%生成n×
n全零阵
B=zeros(m,n)%生成m×
B=zeros([mn])%生成m×
B=zeros(size(A))%生成与矩阵A相同大小的全零阵
命令单位阵
函数eye
格式Y=eye(n)%生成n×
n单位阵
Y=eye(m,n)%生成m×
Y=eye(size(A))%生成与矩阵A相同大小的单位阵
命令全1阵
函数ones
格式Y=ones(n)%生成n×
n全1阵
Y=ones(m,n)%生成m×
Y=ones([mn])%生成m×
Y=ones(size(A))%生成与矩阵A相同大小的全1阵
命令均匀分布随机矩阵
函数rand
格式Y=rand(n)%生成n×
n随机矩阵,其元素在(0,1)内
Y=rand(m,n)%生成m×
n随机矩阵
Y=rand([mn])%生成m×
Y=rand(size(A))%生成与矩阵A相同大小的随机矩阵
【例3-5】产生一个3×
4随机矩阵
R=rand(3,4)
0.95010.48600.45650.4447
0.23110.89130.01850.6154
0.60680.76210.82140.7919
【例3-6】产生一个在区间[10,20]内均匀分布的4阶随机矩阵
a=10;
b=20;
x=a+(b-a)*rand(4)
x=
19.218119.354710.578911.3889
17.382119.169013.528712.0277
11.762714.102718.131711.9872
14.057118.936510.098616.0379
命令正态分布随机矩阵
函数randn
格式Y=randn(n)%生成n×
n正态分布随机矩阵
Y=randn(m,n)%生成m×
Y=randn([mn])%生成m×
Y=randn(size(A))%生成与矩阵A相同大小的正态分布随机矩阵
【例3-7】产生均值为0.6,方差为0.1的4阶矩阵
mu=0.6;
sigma=0.1;
x=mu+sqrt(sigma)*randn(4)
0.83110.77990.13351.0565
0.78270.51920.52600.4890
0.61270.48060.63750.7971
0.81410.50640.69960.8527
命令产生随机排列
函数randperm
格式p=randperm(n)%产生1~n之间整数的随机排列
【例3-8】整数的随机排列。
randperm(6)
ans=
321546
命令产生线性等分向量
函数linspace
格式y=linspace(a,b)%在(a,b)上产生100个线性等分点
y=linspace(a,b,n)%在(a,b)上产生n个线性等分点
命令产生对数等分向量
函数logspace
格式y=logspace(a,b)%在()之间产生50个对数等分向量
y=logspace(a,b,n)
命令计算矩阵中元素个数
n=numel(a)%返回矩阵A的元素的个数
命令产生以输入元素为对角线元素的矩阵
函数blkdiag
格式out=blkdiag(a,b,c,d,…)%产生以a,b,c,d,…为对角线元素的矩阵
【例3-9】产生以输入元素为对角线元素的矩阵
out=blkdiag(1,2,3,4)
out=
1000
0200
0030
0004
命令Magic(魔方)矩阵
函数magic
格式M=magic(n)%产生n阶魔方矩阵
【例3-10】产生3阶魔方矩阵
M=magic(3)
816
357
492
3.3矩阵的加减乘除运算
1加、减运算
设u为一数量,A=(aij)m×
n和B=(bij)r×
s为两矩阵,则加减运算的规定为:
对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。
u±
A=(u±
aij)m×
n
A±
B=(aij±
bij)m×
u*A=(u*aij)m×
【例3-11】矩阵的加减运算。
输入:
u=9
780]
b=[345;
678;
9102]
c=u+a
d=a-b
e=u*a%和数组运算相同
结果:
c=101112
131415
16179
d=-2-2-2
-2-2-2
e=91827
364554
63720
2矩阵的乘及乘方运算
l和B=(bij)l×
n为两矩阵,A的列数l和B的行数l相等,可进行A与B的乘法运算。
这里cij=ai1b1j+ai2b2j+…ailblj=
它表示C的第i行第j列的元素是A第i行的各元分别与B第j列的各对应元的乘积的和。
【例3-12】矩阵的乘及乘方运算。
f=[123]
g=f*a
h=f.*a
a=123
780
g=303615
?
Errorusing==>
.*
3.方阵的求逆
单位矩阵:
主对角线上的元素都是1,其他各元素都是0的n阶矩阵与任意n阶矩阵A左乘或右乘的乘积仍然是A自身,即EA=AE=A,因此我们叫E为n阶单位矩阵。
对满秩方阵A,存在A-1,使A*A-1=A-1*A=E;
我们称A-1是A的逆矩阵。
命令逆
函数inv
格式Y=inv(X)%求方阵X的逆矩阵。
【例3-13】求的逆矩阵
A=[123;
221;
343];
Y=inv(A)或Y=A^(-1)
则结果显示为
Y=
1.00003.0000-2.0000
-1.5000-3.00002.5000
1.00001.0000-1.0000
【例3-14】求逆运算。
A=[21-1;
212;
1-11];
formatrat%用有理格式输出
D=inv(A)
D=
1/301/3
01/3-2/3
-1/31/30
4.除法运算
右除:
矩阵a右除以矩阵b定义为:
a/b=a*b^(-1)=a*inv(b)
左除:
矩阵b左除以矩阵a定义为:
a\b=a^(-1)*b=inv(a)*b
Matlab提供了两种除法运算:
左除(\)和右除(/)。
一般情况下,x=a\b是方程a*x=b的解,而x=b/a是方程x*a=b的解。
即:
ax=b
a(-1)*a*x=a(-1)*b
X=inv(a)*b=a\b
xa=b
X*a*a(-1)=b*a(-1)
X=b*a(-1)=b*inv(a)=b/a
【例3-15】除法运算
426;
749]
b=[4;
1;
2];
x=a\b
则显示:
x=
-1.5000
2.0000
0.5000
在数组除法中,A./B表示A中元素与B中元素对应相除。
5.向量点积
向量的点乘(内积):
维数相同的两个向量的点乘。
函数dot
格式