1 / 21

数学实验

数学实验. 向量与矩阵运算. 向量的生成. 直接输入: a=[1,2,3,4]. 冒号 运 算符. a=[1:4]. 例 :. ==> a=[1, 2, 3, 4]. b=[0:pi/3:pi]. ==> b=[0, 1.0472, 2.0944, 3.1416]. c=[6:-2:0]. ==> c = [6, 4, 2, 0]. 向量与矩阵运算. 向量与矩阵的生成. 从矩阵中抽取行或列. 例 : >> x=[1,2,3];y=[2,3,4];. >> A=[x,y], B=[x;y]. 向量与矩阵运算. 向量与矩阵的生成(续).

ginata
Download Presentation

数学实验

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数学实验 向量与矩阵运算

  2. 向量的生成 • 直接输入: a=[1,2,3,4] • 冒号运算符 a=[1:4] 例: ==> a=[1, 2, 3, 4] b=[0:pi/3:pi] ==>b=[0, 1.0472, 2.0944, 3.1416] c=[6:-2:0] ==>c = [6, 4, 2, 0] 向量与矩阵运算 • 向量与矩阵的生成 • 从矩阵中抽取行或列

  3. 例:>>x=[1,2,3];y=[2,3,4]; >>A=[x,y], B=[x;y] 向量与矩阵运算 • 向量与矩阵的生成(续) • 矩阵的生成 • 直接输入: A=[1, 2, 3; 4, 5, 6; 7, 8, 9] • 由向量生成 • 通过编写m文件生成 • 由函数生成 例:>>C=magic(3)

  4. 常见矩阵生成函数

  5. 提取矩阵的部分元素: 冒号运算符 • A(:) A的所有元素 • A(:,:)二维矩阵A的所有元素 • A(:,k) A的第 k 列, A(k,:) A的第 k 行 • A(k:m) A的第 k 到第 m 个元素 • A(:,k:m) A的第 k 到第 m 列组成的子矩阵 自己动手 A(:) 与 A(:,:) 的区别 ? 如何获得由 A 的第一、三行和第一、二列组成的子矩阵? 矩阵操作

  6. 例:>>A=[1 2 3;4 5 6] >>B=fliplr(A) >>C=flipud(A) >>D=rot90(A), E=rot90(A,-1) 矩阵操作 • 矩阵的旋转 • fliplr(A)左右旋转 • flipud(A)上下旋转 • rot90(A)逆时针旋转 90 度;rot90(A,k) 逆时针旋转 k×90度

  7. ’共轭转置 • .’转置,矩阵元素不取共轭 例:>>A=[1 2;2i 3i] >>B=A’ >>C=A.’ 矩阵操作 • 矩阵的转置与共轭转置 点与单引号之间不能有空格!

  8. 矩阵操作 • 改变矩阵的形状:reshape reshape(A,m,n): 将矩阵元素按列方向进行重组 重组后得到的新矩阵的元素个数 必须与原矩阵元素个数相等!

  9. 例:>>A=[1 2 3; 4 5 6] >>size(A) >>size(A,1) >>size(A,2) 矩阵操作 • 查看矩阵的大小:size • size(A)列出矩阵 A 的行数和列数 • size(A,1)返回矩阵 A 的行数 • size(A,2)返回矩阵 A 的列数 • length(x) 返回向量X 的长度 • length(A) 等价于 max(size(A))

  10. 例:>>A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4] >>C=A+B; D=A-B; 例:>>A=[1 2 3; 4 5 6]; B=[2 1; 3 4]; >>C=A*B 矩阵基本运算 • 矩阵的加减:对应分量进行运算 要求参与加减运算的矩阵具有 相同的维数 • 矩阵的普通乘法 要求参与运算的矩阵满足线性代数中矩阵相乘的原则

  11. 矩阵基本运算 • 矩阵的除法:/、\ 右除和左除 • 若 A 可逆方阵,则 B/A<==> A 的逆右乘 B <==> B*inv(A) A\B<==> A 的逆左乘 B <==> inv(A)*B • 通常,矩阵除法可以理解为 X=A\B<==> A*X=B X=B/A<==> X*A=B 当 A 和 B 行数相等时即可进行左除 当 A 和 B 列数相等时即可进行右除

  12. A 是方阵,p 是正整数 A^p表示 A的 p次幂,即 p个 A相乘。 • 若 A 是方阵,p 不是正整数 A^p的计算涉及到 A 的特征值分解,即若 A = V*D*V-1 则A^p=V*(D.^p)/V 矩阵的乘方

  13. 若 a 是标量, 则 矩阵的乘方 • 若 a 是标量,A 是方阵,且 [V,D] = eig(A),则a^A = V*(a^D)/V • 若 A, P 均是矩阵,则 A^P 无定义

  14. 矩阵Kronecker乘积的定义 设A是n×m矩阵,B是p×q矩阵,则A与B的kronecker乘积为: • 是 np×mq 矩阵;通常 • Matlab 中实现两个矩阵 Kronecker 相乘的函数为 kron(A,B) 矩阵的 Kronecker 乘积 • Kronecker乘积的性质 • 任何两个矩阵都有 Kronecker 乘积 Kronecker乘积有时也称张量积

  15. 例:>>A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4]; >>C=A.*B; D=A./B; E=A.\B; F=A.^B; 矩阵的数组运算 • 数组运算:对应元素进行运算 • 数组运算包括:点乘、点除、点幂 • 相应的数组运算符为: “.* ” , “./ ” , “.\ ” 和“.^ ” 点与算术运算符之间不能有空格! 参与运算的对象必须具有相同的形状!

  16. 函数取值 • 函数作用在矩阵上的取值 设 x 是变量, f是一个函数 • 当 x = a 是标量时,f(x) = f(a)也是一个标量 • 当 x = [a, b, … , c] 是向量时,f(x)= [f(a), f(b), … , f(c)] f作用在 x 的每个分量上 • 若 A 是矩阵,则 f(A) 是一个与 A 同形状的矩阵

  17. 例: 例:>>x=[0:pi/4:pi]; A=[1 2 3; 4 5 6]; >>y1=sin(x); y2=exp(A); y3=sqrt(A); 怎样计算 eA ? 函数取值

  18. 更一般的矩阵函数: funm • funm(A,@fun) 参数 fun的可以是 exp,,log,cos,sin,cosh,sinh 矩阵的超越函数 • Matlab 提供了三种矩阵函数:expm、sqrtm、logm 详情参见联机帮助(help expm / sqrtm / logm )

  19. 数与数组的点幂 例:x=[1 2 3]; y=[4 5 6]; x.^y=[1^4,2^5,3^6]=[1,32,729] x.^2=[1^2,2^2,3^2]=[1,4,9] Matlab中的所有 标点符号必须在 英文状态下输入 2 .^x=? 2 .^[x;y]=? .^ 前面留个空格

  20. Matlab中常见数学函数 • log是自然对数,即以e为底数 • mod(x,y)结果与 y同号,rem(x,y)则与x同号 • max等函数的参数是矩阵时,是作用在矩阵各列上

  21. 上机作业 • 试分别生成 5 阶的单位阵、8 阶均匀分布的随机矩阵及其下三角矩阵 • 生产列向量 x=[1, 3, 5, 7, 9, … , 29] • 生成以 x 的元素为对角线的矩阵 A,并输出 A 的行数 • 生成一个与 A 同阶的正态分布的随机矩阵 B • 输出 A 与 B 的 kronecker 乘积矩阵 C • 生成由 A 与 B 点乘得到的矩阵 D • 生成一个由 D 的第 8、4、10、13 行和第 7、1、6、9、2 列组成的子矩阵 E • 求出矩阵 E 的最大元素 • 教材第 39 页,1(1),(3),(4)、2、3、4、5

More Related