1 / 18

Matlab 在线性代数中的应用

Matlab 在线性代数中的应用. 内容. 一、向量与矩阵的生成 二、常见矩阵的生成函数 三、矩阵操作:矩阵的提取,转置,旋转,改变矩阵的形状,查看矩阵的大小 四、矩阵的基本运算:矩阵的加减,矩阵的普通乘法,矩阵的乘方,矩阵的除法,矩阵与数的运算,矩阵的数组运算, 五、矩阵的逆运算 inv 六、矩阵的秩 rank ; 七、矩阵的行列式 det ;. 一、向量与矩阵的生成. 1 、 向量的生成 直接输入: a=[1,2,3,4] 冒号 运 算符 从矩阵中抽取行或列. 例 :. >> a = [1:4] >> b = [0:pi/3:pi]

jean
Download Presentation

Matlab 在线性代数中的应用

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. Matlab在线性代数中的应用

  2. 内容 • 一、向量与矩阵的生成 • 二、常见矩阵的生成函数 • 三、矩阵操作:矩阵的提取,转置,旋转,改变矩阵的形状,查看矩阵的大小 • 四、矩阵的基本运算:矩阵的加减,矩阵的普通乘法,矩阵的乘方,矩阵的除法,矩阵与数的运算,矩阵的数组运算, • 五、矩阵的逆运算inv • 六、矩阵的秩rank; • 七、矩阵的行列式det;

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

  4. 2、矩阵的生成 • 直接输入:A=[1, 2, 3; 4, 5, 6; 7, 8, 9] • 规则:矩阵元素放在方括号中,元素之间以空格或逗号分隔,不同行以分号或回车分隔,语句结尾用回车或逗号将显示结果 • 由向量生成 • 通过编程生成 • 由函数生成 例: >>x = [1,2,3]; y = [2,3,4]; >>A = [x,y] >>B = [x;y]

  5. 二、常见矩阵生成函数

  6. 如:输入 f1=ones(3, 2) 输入 f2=zero(2, 3) 显示 f1= 1 1 显示 f2= 0 0 0 1 1 0 0 0 1 1 输入 f3=magic(3) 输入 f4=eye(2) 显示 f3= 8 1 6 显示 f4= 1 0 3 5 7 0 1 4 9 2 输入f5= rand(4)

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

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

  9. 3、矩阵的旋转 • fliplr(A)左右旋转left right • flipud(A)上下旋转 up down • rot90(A)逆时针旋转90 度;rot90(A,k) 逆时针旋转k×90度 例: >>A = [1 2 3;4 5 6] >>B = fliplr(A) >>C = flipud(A) >>D = rot90(A) >>E = rot90(A,-1) 注意矩阵旋转与转置的区别!

  10. 4、改变矩阵的形状:reshape(A,m,n) 将矩阵元素按 列方向进行重新排列成一个 m×n的新矩阵 新矩阵的元素个数必须与原矩阵元素个数相等! 例: >>A = [1,2,3; 4,5,6; 7,8,9; 10,11,12] >>B = reshape(A,4,3) >>C = reshape(A,2,6) × >>C = reshape(A,5,2)

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

  12. 四、矩阵基本运算 • 1、矩阵的加减:对应分量进行运算 参与加减运算的矩阵具有 相同的维数!size(A)=size(B) 如果其中一个变量是标量,则会自动扩展成各元素均取此标量值的同阶次矩阵。 例: >>A = [1,2; 3,4]; B = [5,6; 7,8] >>C = A+B >>D = B-A • 2、矩阵的普通乘法 参与运算的矩阵须满足线性代数中矩阵相乘的原则! 例: >>A = [1,2,3; 4,5,6]; B = [2,1; 4,3] >>C = B*A

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

  14. 4、矩阵的除法:/、\ 右除和左除 • 若 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 列数相等时可进行右除

  15. 5、矩阵与数的运算 • 加减:矩阵的每个元素都与数作加减运算 • 数乘:矩阵的每个元素都与数作乘法运算 • 矩阵除以一个数:每个元素都除以这个数 • 点幂: • 底为矩阵,指数为标量 • 底为标量,指数为矩阵

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

  17. 五、矩阵的逆运算 • 用函数inv实现求矩阵的逆矩阵。如果det(A)等于或很接近零,Matlab会提示出错 • 由函数pinv实现矩阵的伪逆运算。 例 a=[1 2 0;2 5 -1;4 10 -1] b=inv(a);

  18. 六、矩阵的秩 • 用函数rank求矩阵的秩。 例:a=[1 2 0;2 5 -1;4 10 -1]; b=rank(a) b = 3 七、矩阵行列式 • 用函数det求矩阵的行列式。 例:a=[1 2 0;2 5 -1;4 10 -1]; b=det(a)

More Related