2.3矩阵及其运算

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例2.3.2】 设 】
1 1 A= 1 1
2 3 4 1 2 2 3 4 B= 3 2 3 4 2 3 4 4
1 1 1 2 2 2 求AB 3 3 3 4 4 4
>>A=[1 2 3 4;1 2 3 4;1 2 3 4;1 2 3 4]; B=[1 1 1 1;2 2 2 2;3 3 3 3;4 4 4 4]; A*B
0 -2.0000 0
1.3066 0 3.1543
0 -2.0000 0
1.3066 0 3.1543
2. 奇异值分解
定理:设A为m×n阶实(复)矩阵,rk(A)=r, 则 存在m阶正交(酉)阵U和n阶正交(酉) 阵 V使得
Λ 0 * A = USV = U V 其中 0 0
*
2.3.6 矩阵的一些特殊操作
1. 变维 .
(1) reshape (X,M,N) 把矩阵X变成M行N列的矩阵。 注:X的元素个数必须为M*N
【例2.3.9】 >>a=[1 2 3 4;5 6 7 8;9 10 11 12] reshape (a,4,3)
a= 1 5 9 ans = 1 5 9 2 2 6 10 3 4 7 8 11 12
2.3 矩阵及其运算 2.3.1 矩阵的生成
1.直接输入小矩阵 直接输入小矩阵 如 2.2.1直接输入向量时一样 . . 直接输入向量时一样 注1:无任何元素的空矩阵也合法 : 注2:在矩阵内的分号是分行符,在命 :在矩阵内的分号是分行符, 令末的分号是不显示结果
2. 创建 文件输入矩阵 创建M文件输入矩阵
小 良态 1 完全良态
命令: cond(A) condest(A) rcond(A)
计算矩阵A的条件数 1范数下矩阵A的条件数的估计值 计算矩阵A的条件数的倒数
4.范数 .
① Frobenius 范数(欧氏范数)
A
f
norm(A, 'fro')
2 12
= (tr ( A ' A))
1/ 2
= (∑∑ aij )
ans = 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
>> A.*B ans = 1 2 3 4
2 4 6 8
3 4 6 8 9 12 12 16
♣ 数s与矩阵 相乘 与矩阵A相乘 与矩阵
s*A s.*A
【例2.3.2】 >> s=2; s*A ans = 2 4 6 2 4 6 2 4 6 2 4 6 >> s.*A ans = 2 4 6 2 4 6 2 4 6 2 4 6
6 11 10 4 3 8 7 12
(2) : 用“:”进行变维操作,两矩阵必须 事 先定义维数 >>c=zeros(3,4) c=
0 0 0 0 0 0 0 0 0 0 0 0
>> c(:)=a(:) c=
1 5 9 2 6 3 7 4 8
10 11 12
2.矩阵的转向
(1)rot90(A) %把A按逆时针旋转90度
(3)生成全1阵
a.ones(n) b. ones(m,n) ones([m n]) c. ones(m,n,p …)=ones([m n p …]) d. ones(size(A))
(4)随机阵
a. rand(n) 均匀分布 b. rand(M,N)=rand([m n]) c, rand(m,n,p,…)=rand([m n p …]) d. rand %只产生一个随机数 e. rand(size(A)) randn 产生正态分布随机数
i =1 j =1
m
n
② p 范数 p=1 1范数 p=∞ ∞范数 p=2 2范数
A
P
= sup
x≠0
Ax x
p
p
= max Ax
x =1
P
命令: norm(A,1) A = max ∑ a 命令: norm(A,inf) A 2 = ( AT A的最大特征值)1/2 命令: norm(A)
1 j i
3.矩阵的抽取
♣ 对角元素的抽取 (1) v=diag (X,k) 抽取X的第k条对角线元素赋给v k=0, 主对角线 k>0,主对角线上方第k条 k<0,主对角线下方第k条 (2) v=diag (X) v=diag (A,0) (3) A=diag (v,k) 使向量v为所得矩阵A的 第k条对角线 A=diag (v,0) (4) A=diag (v)
>>eig(B) ans = 0.5858 2.0000 3.4142 >> [V,D]=eig(B) V= 0.9239 0 0.3827 0 -1.0000 0 -0.3827 0 0.9239 D= 0.5858 0 0 0 2.0000 0 0 0 3.4142
验证:
>> B*V ans = 0.5412 0 -0.2242 >> V*D ans = 0.5412 0 -0.2242
【例2.3.11】 >>a=pascal(4) a= 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 >>v=diag(a) v= 1 2 6 20
∞ i ij j
A
= max ∑ a ij
5. 秩函数
命令: 命令: rank(A)
6.迹函数 .
命令: 命令: trace(A)
7.零空间函数 . 齐次线性方程组 A m×n x = 0
的解空间,即零空间
N ( A) = { x ∈ R n Ax = 0}
命令: 命令:null(A); 零空间N(A)的标准正交基所组成的矩阵。 命令: 命令:null(A,’r’); 零空间N(A)的n-rank(A)个线性无关的 解向量(基础解系)所组成的n*(n-rank(A))阶矩阵。
2.矩阵的逆运算 .
命令:inv(A),其中A应为可逆方阵。 【例2.3.4】 >>inv(A) ans = 0.1838 0.3148 -0.1345 0.1872 -0.0943 0.0139 -0.2531 -0.1318 0.1664 比较解线性方程组 Ax=b x=inv(A)*b x=A\b
2.3.2 矩阵数值的基本数学运算及对比
1.矩阵的四则运算 矩阵的四则运算
(1)矩阵的加减运算 矩阵的加减运算 (2)矩阵的乘法 矩阵的乘法 ♣矩阵与矩阵相乘: 矩阵与矩阵相乘: 矩阵与矩阵相乘 ①A*B 普通矩阵相乘 要求:A的列数=B的行数 ②A.*B 矩阵A与矩阵B的对应元素相乘结果 为 ( aij bij ) 要求:A与B为同行同列矩阵。
>>a1=a(:,[1 3 4 6]) % 抽取a的1,3,4,6列 组成a1 a1 = 1 7 10 16 2 8 11 17 3 9 12 18 >>a(:,[2,5])=[ ] % 使a的第2,5列成为空阵 a= 1 7 10 16 2 8 11 17 3 9 12 18
♣ 几种常用的工具阵 (1)生成全零阵 a. zeros(n) % 生成n阶全零方阵 b. zeros(m,n) % 生成m╳n阶全零阵 c. zeros(M,N,P,…) 或 zeros([M N P …]) 生成m╳n╳p╳…阶的全零阵或数组 d. zeros(size(A)) % 生成与A同阶的全零阵 (2)生成单位阵 a. eye(n) b. eye(m,n) 或 eye([m n]) c. eye(size(A))
Λ = diag ( λ1 ,L , λr )
λ1 , L , λ r
是 AA*(A*A)的r个正特征值。
Hale Waihona Puke Baidu
命令:[U,S,V]=svd(A)
3.条件数 条件数
条件数是矩阵“病态”程度的变量,其定义为
A−1 A k ( A) = ∞
条件数 求逆或方程组Ax=b求解 大 病态
det( A) ≠ 0 det( A) = 0
8. 正交空间函数
命令: 命令:B=orth(A) 功能:用于求矩阵A的列向量组的最大线性无关 组的正 交化基矩阵, 即:B的列向量个数=rank(A), B’*B=I, span(B)=span(A)。 【例2.3.7】 >>A =[1 2 3;1 2 3;1 2 3]; orth(A) ans = -0.5774 -0.5774 -0.5774
8 8 8 8
8 8 8 8
(3) 矩阵的除法
方程组 Am*n x = b
♣n=m ♣n<m ♣n>m
且A非奇异 恰定 超定 欠定 最小二乘解 最小范数解
Matlab命令 左除 “\” 命令 A\b:是AX=b的最小二乘解 2 即使得 AX − b 最小的解 对于方程组 Ax=b用命令 x=A\b;
%把矩阵A按逆时针旋转 (90*k)度 k=±1,±2,±3…
>>B1=rot90 (A,2) B1 = 12 11 10 9 8 7 6 5 4 3 2 1
(3) fliplr (A)
>>fliplr (A) ans = 4 3 8 7 12
% 将A左右翻转
2 6
1 5 9
11 10
(4) flipud (A) % 将A上下翻转 ans = 9 10 11 12 5 6 7 8 1 2 3 4 (5) flipdim (A,dim) flipdim (A,1) flipud (A) flipdim (A,2) fliplr (A) 对于平面矩阵 flipdim (A,3) = A
例:编制名为Example.m的m文件 exm=[1,3,6;3,4,5;7,8,9] 然后在命令窗口输入m文件名的命令。 【例2.3.1】 >>Example ans =1 2 3 4 5 6 7 8 9 3. 当一个矩阵A已经存在内存中时,可以修改 A。双击Workspace中的变量A,出现一个 数组编辑框,即可进行修改,包括改变行、 列数、及元素的数值。
2.3.5 特殊矩阵的生成
空阵 空阵[ ] 是0╳0阶矩阵 作用: 用于缩维等 【例2.3.8】 >>a=[1:18] a= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 >>a=reshape(a,3,6) % 重组成3╳6阶矩阵 a= 1 4 7 10 13 16 2 5 8 11 14 17 3 6 9 12 15 18
【例2.3.3】求解下列方程组。 2 x1 + 5 x2 + 1.2 x3 = 2 5 x1 + 0.5 x2 + 4 x3 = 6 7 x1 + 8 x2 + 11x3 = 3 解:在MATLAB命令窗中输入 >>A=[2,5,1.2;5,0.5,4;7,8,11]; b=[2,6,sqrt(3)]'; x=A\b x= 2.0236 -0.1674 -1.0085 右除“ 右除“/” : B/A=(A’\B’)’
9. 广义逆
命令:B=pinv(A):表示矩阵的Moore-Penrose 逆,即+号逆 A+ ,满足: (1)ABA=A (2)BAB=B (3)AB对称 (4)BA 对称 【例】 >>pinv(A) ans = 0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
0.1111 0.1111 0.1111
3.矩阵的行列式 det(A) . 4. 矩阵的幂运算 运算符 运算符^ 5.矩阵的指数运算 略 . 6. 6.矩阵的对数运算 略 7.矩阵的开方运算 .
如A^2
2.3.3 矩阵的基本函数运算
1. 特征值
命令:1)D=eig(A): A的全部特征值排成的列向量 2) [V,D]=eig(A): => A*V=V*D 【例2.3.5】 >>B=[1 0 1;0 2 0;1 0 3] B= 1 0 1 0 2 0 1 0 3
【例2.3.10】 >>A=[1 , 2 , 3 , 4 ; 5 , 6 , 7 , 8 ; 9 , 10 , 11 , 12 ] B=rot90(A) A= 1 2 3 4 5 6 7 8 9 10 11 12 B= 4 8 12 3 7 11 2 6 10 1 5 9
(2) rot90 (A,K)
【例2.3.6】 >>A =[1 2 3;1 2 3;1 2 3]; y=null(A) y= 0.9636 0 -0.1482 -0.8321 -0.2224 0.5547 验证: >>y'*y ans = 1.0000 -0.0000 -0.0000 1.0000 >>null(A,'r') ans = -2 -3 1 0 0 1
相关文档
最新文档