1 / 33

第 2章 MATLAB数值运算

第 2章 MATLAB数值运算. 本章目标. 掌握矩阵、向量、数组和多项式的构造和运算方法 能够使用常用的几种函数进行一般的数值问题求解. 主要内容. 2.1 矩阵 2.2 向量 2.3 数组 2.4 多项式. 2.1 矩阵. MATLAB = mat rix (矩阵) + lab oratory (实验室). 2.1.1 矩阵的构造. 通过直接输入矩阵的元素构造矩阵: 用中括号 [ ] 把所有矩阵元素括起来 同一行的不同数据元素之间用空格或逗号间隔 用分号(;)指定一行结束 可分成几行进行输入,用回车符代替分号

alma
Télécharger la présentation

第 2章 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. 第2章 MATLAB数值运算

  2. 本章目标 • 掌握矩阵、向量、数组和多项式的构造和运算方法 • 能够使用常用的几种函数进行一般的数值问题求解

  3. 主要内容 • 2.1 矩阵 • 2.2 向量 • 2.3 数组 • 2.4 多项式

  4. 2.1 矩阵 MATLAB = matrix(矩阵)+ laboratory(实验室)

  5. 2.1.1 矩阵的构造 • 通过直接输入矩阵的元素构造矩阵: • 用中括号[ ]把所有矩阵元素括起来 • 同一行的不同数据元素之间用空格或逗号间隔 • 用分号(;)指定一行结束 • 可分成几行进行输入,用回车符代替分号 • 数据元素可以是表达式,系统将自动计算结果

  6. 例:输入矩阵A、B的值 >>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] >>B=[1,sqrt(25),9,132,6,10,7*2 3+sin(pi),7,11,15,4, abs(-8),12,16]

  7. 2.1.2 矩阵下标与子矩阵提取 • A(m, n) 提取第m行,第n列元素 • A(:, n) 提取第n列元素 • A(m, :) 提取第m行元素 • A(m1:m2, n1:n2) 提取第m1行到第m2行和第n1列到第n2 列的所有元素 • A(m:end, n) 提取从第m行到最末行和第n列的子块 • A(:) 得到一个长列矢量,该矢量的元素按矩 阵的列进行排列

  8. 例:修改矩阵A中元素的数值 >>A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]; >>A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); 则矩阵变为: A = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1

  9. 2.1.3 矩阵的算术运算 • 1. 矩阵的加减运算:+(加)、-(减) • 2. 矩阵乘法:*(乘) • 3. 矩阵除法:/ (右除)、\ (左除) • 4. 矩阵的乘方:^(乘方) • 5. 矩阵转置: ' (转置运算符)

  10. 2.1.4 矩阵的关系运算 • 关系运算符: <(小于)、<=(小于或等于)、>(大于) >=(大于或等于)、==(等于)、~=(不等于)。 • 关系运算符的运算法则: • 关系运算将对两个矩阵的对应元素进行比较。

  11. 2.1.5 矩阵的逻辑运算 • 必须是两个同维矩阵或其中一个矩阵为标量才能进行 • MATLAB提供了一些逻辑函数

  12. 2.1.6 矩阵函数

  13. 1. 求矩阵的行列式的值 >> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16]; >>det(X) ans = -5464

  14. 2. 求矩阵的秩 >> X=[1, 2, 3; 2, 3 -5; 4 7 1]; >> rank(X) ans = 2

  15. 3. 求逆矩阵 >> X=[1 2 3 0; 5 6 0 8; 9 0 11 12; 0 14 15 16]; >> Y=inv(X) Y = 0.2299 0.0908 0.0351 -0.0717 0.1940 0.0798 -0.0659 0.0095 0.1274 -0.0835 0.0322 0.0176 -0.2892 0.0084 0.0275 0.0377 >>Y*X %矩阵与其逆阵相乘结果是单位矩阵 ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 >> X*Y %矩阵的逆阵是唯一的 ans = 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000

  16. 4. 求特征值和特征向量 >> X=[-2 1 1;0 2 0;-4 1 3]; >> [V D]=eig(X) V= -0.7071 -0.2425 0.3015 0 0 0.9045 -0.7071 -0.9701 0.3015 D= -1 0 0 0 2 0 0 0 2

  17. 5. 矩阵分解 >> A=[2 -1 3;1 2 1;2 4 3]; >> [L, U]=lu(A) %三角分解 L = 1.0000 0 0 0.5000 0.5000 1.0000 1.0000 1.0000 0 U = 2.0000 -1.0000 3.0000 0 5.0000 0 0 0 -0.5000

  18. 6. 求解线形方程组

  19. 2.2 向量 • 向量是矢量运算的基础 • 行向量 • 列向量

  20. 2.2.1 向量的构造 • 1.逐个输入 >>a=[1 3 9 10 15 16] %采用空格和逗号分隔构成行向量 >>b=[1; 3; 9; 10; 15; 16] %采用分号隔开构成列向量 • 2.利用冒号表达式“:”生成向量 >>x=1:2:9 %初值=1,终值=9,步长=2 >>z=1:5 %初值=1,终值=5,默认步长=1 • 3.利用函数生成向量 >> x=linspace(1, 9, 5) %初值=1,终值=9,元素数目=5

  21. 2.2.2 向量的运算 • 1.点积:dot函数 • 2.叉积:cross函数 • 例 >> a = [1 2 3]; >> b = [4 5 6]; >> c = dot(a, b) >> d = cross(a, b) c = 32 d = -3 6 -3

  22. 2.3 数组 • 数组运算方式是一种元素对元素的运算(不按照线性代数的规则) ; • 除了加、减法的与矩阵相同以外,乘、除、幂的数组运算符都是通过在标准的运算符前面加一个圆点来生成。

  23. 数组运算 >> x=[1 2 3; 4 5 6; 7 8 9]; >> y=[9 8 7; 6 5 4; 3 2 1]; >> x+y %数组和矩阵的加法规则相同 ans = 10 10 10 10 10 10 10 10 10 >> x.*y %数组乘法:对应元素相乘 ans = 9 16 21 24 25 24 21 16 9 >> x*y %矩阵乘法:按照线性代数理论进行 ans = 30 24 18 84 69 54 138 114 90

  24. 多维数组维间处理的函数 • 1.reshape • 2.size • 3.ndims • 4.cat • 5.permute • 6.ipermute • 7.shiftdim • 8.squeeze

  25. 2.4 多项式 多项式是形如 P(x) = a0xn+a1xn-1+…+an-1x+an的式子。 在MATLAB中,多项式用行向量表示: P=[ a0 a1 … an-1 an]

  26. 2.4.1 多项式的生成与表达 • 例:已知向量A=[1 –34 –80 0 0],用此向量构造一多项式并显示结果。 (x-1)(x+34)(x+80)(x-0)(x-0) >>PA=poly(A) >>PAX=poly2str(PA,'X') X^5 + 113 X^4 + 2606 X^3 - 2720 X^2

  27. 2.4.2 多项式的运算 • 1. 多项式的算术运算 • 参加加减运算的多项式应该具有相同的阶次。 • 多项式乘法采用conv函数,除法由deconv函数完成。 • 2. 求根 • 求多项式的根采用roots函数。 • 3. 求值 • 函数polyval可以将某个特定数值代入多项式 • 函数polyvalm可以求出当多项式中的未知数为方阵时的值。 • 4. 求导 • 使用polyder函数对多项式求导。

  28. 扩展阅读 • 2.5 特殊矩阵 • 2.6稀疏矩阵

  29. 上机指导 • 2.7工作空间与内存变量 • 2.7.1变量的查看 • 2.7.2变量的文件保存与获取

  30. 应用举例

  31. 应用举例

  32. 应用举例 例2-31将表达式(x-4)(x+5)(x2-6x+9)展开为多项式形式,并求其对应的一元n次方程的根。 >>p=conv([1 -4],conv([1 5],[1 -6 9])) >>px=poly2str(p,’x’) >>x=roots(p)

  33. 结 束 语 • 学好计算机的唯一途径是 • 你的编程能力与你在计算机上投入的时间成 上机练习 正比

More Related