matlab矩阵运算资料讲解

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

jordan Jordan 分解
cond 方阵的条件数
X=A\B <==> A*X=B X=B/A <==> X*A=B
当A为方阵,其结果与inv(A)*B基本一致;
当A不为方阵,除法将分三种情况自动检测:若为 超定方程组(既无解)除法将给出最小二乘意义上的 近似解,即使向量AX-B的长度最小;若为不定方程组 (即无穷多解),除法将给出一个具有最多零元素的 特解(不是通解);若为唯一解,除法将给出这个解。 用户对结果应有一个正确的认识。
>> size(A) >> size(A,1) >> size(A,2)
length(x) 返回向量 X 的长度 length(A) 等价于 max(size(A))
矩阵基本运算
矩阵的加减:对应分量进行运算
要求参与加减运算的矩阵具有 相同的维数
例:>> A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]
常见矩阵生成函数
zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)
ones(m,n)
eye(m,n)
diag(X)
tril(A) triu(A) rand(m,n) randn(m,n)
生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 提取一个矩阵的下三角部分
matlab矩阵运算
来自百度文库
向量与矩阵运算
向量与矩阵的生成(续)
矩阵的生成 ✓ 直接输入: A=[1, 2, 3; 4, 5, 6; 7, 8, 9] ✓ 由向量生成 ✓ 通过编写m文件生成 ✓ 由函数生成
例:>> x=[1,2,3];y=[2,3,4];
>> A=[x,y], B=[x;y]
例:>> C=magic(3)
x=
2.5000 -1.5000 求得唯一解。
>> A=[1 2 1;3 -2 1];B=[1;4];x=A\B
x=
1.2500 -0.1250
0 仅求得一个特解。
>> A=[1 2;3 -2;1 -1];B=[1;4;2];x=A\B
x=
1.2838 -0.1757 求得一最小二乘近似解。
>> A=[1 2;2 4];B=[1;2];x=A\B Warning: Matrix is singular to working precision. (Type "warning off MATLAB:singularMatrix" to suppress this warning.)
reshape(A,m,n): 将矩阵元素按 列方向 进行重组 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!
矩阵操作
查看矩阵的大小:size
size(A) 列出矩阵 A 的行数和列数 size(A,1) 返回矩阵 A 的行数 size(A,2) 返回矩阵 A 的列数
例:>> A=[1 2 3; 4 5 6]
通常,矩阵除法可以理解为
X=A\B <==> A*X=B X=B/A <==> X*A=B 当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除
线性代数运算的MATLAB命令 MATLAB是矩阵化程序设计语言,所以处理矩阵和向量运算特别 方便。关于矩阵和向量的一些基本运算命令已在前面有所介绍,常 用的命令和函数还有
例: 解下列方程组

1)
x x
y y
1 4
(定 解 方 程 组 )

2

3
x x
2 2
y y
z z
1 4







x2y 1

3)
3
x
2
y
4
x y 2
(超 定 方 程 组 )

4

x 2x
2 4
y y
1 2







解: >> A=[1 1;1 -1];B=[1;4];x=A\B
>> B=fliplr(A) >> C=flipud(A) >> D=rot90(A), E=rot90(A,-1)
矩阵操作
矩阵的转置与共轭转置
’ 共轭转置 .’ 转置,矩阵元素不取共轭
点与单引号之间不能有空格!
例:>> A=[1 2;2i 3i]
>> B=A’ >> C=A.’
矩阵操作
改变矩阵的形状:reshape
自己动手
A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵?
矩阵操作
矩阵的旋转
fliplr(A) 左右旋转 flipud(A) 上下旋转 rot90(A) 逆时针旋转 90 度;
rot90(A,k) 逆时针旋转 k×90 度
例:>> A=[1 2 3;4 5 6]
zeros 生成0矩阵
eig 特征值、特征向量
ones 生成1矩阵
diag 对角矩阵
eye 生成单位矩阵
trace 方阵的迹
linspace 生成等距行向量 rank 矩阵的秩
rand 生成随机矩阵
rref 行最简形
det 方阵的行列式
orth 正交规范
inv 方阵的逆
null 求基础解系
norm 范数
提取一个矩阵的上三角部分
产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n)
产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n)
矩阵操作
提取矩阵的部分元素: 冒号运算符
A(:) A的所有元素 A(:,:) 二维矩阵A的所有元素 A(:,k) A的第 k 列, A(k,:) A的第 k 行 A(k:m) A的第 k 到第 m 个元素 A(:,k:m) A的第 k 到第 m 列组成的子矩阵
>> C=A+B; D=A-B;
矩阵的普通乘法
要求参与运算的矩阵满足线性代数中矩阵相乘的原则
例:>> A=[1 2 3; 4 5 6]; B=[2 1; 3 4];
>> C=A*B
矩阵基本运算
矩阵的除法:/、\ 右除和左除
若 A 可逆方阵,则 B/A <==> A 的逆右乘 B <==> B*inv(A) A\B <==> A 的逆左乘 B <==> inv(A)*B
相关文档
最新文档