第二章MATLAB语言的数值运算_第1页
第二章MATLAB语言的数值运算_第2页
第二章MATLAB语言的数值运算_第3页
第二章MATLAB语言的数值运算_第4页
第二章MATLAB语言的数值运算_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章MATLAB语言的数值运算,MATLAB基本运算符,第二章MATLAB语言的数值运算,系统特殊变量,第二章MATLAB语言的数值运算,常用数学函数,第二章MATLAB语言的数值运算,第二章MATLAB语言的数值运算,教学目标 介绍MATLAB的两种基本的数值运算,矩阵和表达式 学习要求 掌握矩阵和多项式的构造和运算方法,能够使用常用的几种函数进行简单的问题求解,第二章MATLAB语言的数值运算,2.1 矩阵 2.2 向量 2.3 数组 2.4 多项式,第二章MATLAB语言的数值运算,2.1 矩 阵,矩阵是线性代数的基本运算单元,通常矩阵是指含有M行N列的数值和矩阵结构,每个元素可以是实

2、数或复数,在线性代数中我们学习了矩阵的基本性质,了解了矩阵的基本运算,如:加、减、内积、逆矩阵、转置、线性方程式等。 MATLAB支持线性代数所定义的全部矩阵运算。,第二章MATLAB语言的数值运算,矩阵的信息获取,第二章MATLAB语言的数值运算,MATLAB语言的数值运算,MATLAB = matrix(矩阵)+ laboratory(实验室),第二章MATLAB语言的数值运算,2.1.1矩阵的构造,直接输入法 三个符号:“”、“,”、“;” 用中括号 把所有矩阵元素括起来 同一行的不同数据元素之间用空格或逗号间隔 用分号(;)指定一行结束 可分成几行进行输入,用回车符代替分号 数据元素可

3、以是表达式,系统将自动计算结果,可以是实数 ,也可以是复数,复数用i,j 输入,第二章MATLAB语言的数值运算,矩阵的构造,A=1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16 B=1,sqrt(25),9,13 2,6,10,7*2 3+sin(pi),7,11,15; 4,abs(-8),12,16,第二章MATLAB语言的数值运算,由函数创建和修改矩阵,第二章MATLAB语言的数值运算,由函数创建和修改矩阵,MATLAB提供了大量的函数用于创建一些特殊的矩阵及其派生矩阵。 zeros生成全部元素为0的零距阵 (Zeros Array) A=zeros(

4、n) 生成nn零矩阵。 A=zeros(m,n)或者A=zeros(m,n) 生成mn的零矩阵。 A=zeros(m,n,p,)或者A=zeros(m n p ) 生成mnp的零矩阵。 B=zeros(size(A) 生成和矩阵A大小相等的全零矩阵。 ones生成全部元素为1的距阵 A=ones (n) 生成nn全1矩阵。 A=ones (m,n)或者A=ones (m,n) 生成mn的全1矩阵。 A=ones (m,n,p,)或者A=ones (m n p ) 生成mnp的全1矩阵。 B=ones (size(A) 生成和矩阵A大小相等的全1矩阵。,第二章MATLAB语言的数值运算, eye

5、生成单位距阵 A=eye (n) 生成nn单位矩阵。 A=eye (m,n)或者A=eye (m,n) 生成mn的单位矩阵。 B=eye (size(A) 生成和矩阵A大小相等的单位矩阵。 rand生成均匀分布的随机矩阵 A=rand (n) 生成nn随机矩阵。 A=rand (m,n)或者A=rand (m,n) 生成mn的随机矩阵。 A=rand (m,n,p,)或者A=rand (m n p ) 生成mnp的随机矩阵。 B=rand (size(A) 生成和矩阵A大小相等的随机矩阵。 A=rand 不带任何参数将产生一个随机数。 提示:rand函数产生一个矩阵元素在0和1之间均匀分布的随

6、机数的随机矩阵。,第二章MATLAB语言的数值运算,diag 生成一个对角阵或由对角线元素组成的向量 Adiag(V) 当V为n维向量时,产生一个以向量V的元素为对角线的n维数组 Adiag(V) 当V为n维矩阵时,产生 一个以V矩阵的主对角线元素为元素的n 维数组。 tril: 抽取主下三角; triu:抽取主上三角 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 注意:在MATLAB中,不需要事先定义矩阵的维数,MATLAB自动为矩阵分配存 储空间。但如果在程序运行过程中采用零矩阵为矩阵生成的全部元素,或某一行、某一列的元素预先分配内存空间,将会大大加快MATLA

7、B程序的运算速度。,第二章MATLAB语言的数值运算,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列的子块,第二章MATLAB语言的数值运算,例: 修改矩阵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

8、)=cos(0); 则矩阵变为: A = 0 2 3 4 5 7 7 8 9 10 11 12 13 14 15 1,第二章MATLAB语言的数值运算,2.1.3 矩阵的运算,MATLAB对于矩阵与矩阵之间的运算的处理方法与线性代数的相同 1、矩阵的“+”、“-”是对应元素的加减,相同维数或其中一个为标量 2、矩阵的除法,“”、“/”左除和右除,A矩阵是非奇异矩阵,则A/B或AB可以运算 X=AB是方程A*X=B的解 X=B/A是方程X*A=B的解,第二章MATLAB语言的数值运算,2.1.3 矩阵的运算,3、矩阵的乘方,A是一个方阵,P是正整数,则AP表示A自乘P次 4、矩阵的转置A,I行j

9、列与j行I列元素互换 5、求逆矩阵,用函数A-1=inv(A) 6、求特征值,用函数eig(A) 7、求特征多项式,用函数poly() 8、求方阵的行列式,用函数det(),第二章MATLAB语言的数值运算,基本矩阵运算,第二章MATLAB语言的数值运算,A = 16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1 A + A A*A 矩阵转置A,加一个矩阵到它的转置得到一个对称矩阵。用矩阵去乘它的转置也能得到对称矩阵。,第二章MATLAB语言的数值运算,2.1.4 矩阵的关系运算,关系运算符: (大于) =(大于或等于)、=(等于)、=(不等于)。 关系运算符的

10、运算法则: 关系运算将对两个矩阵的对应元素进行比较。,第二章MATLAB语言的数值运算,1. 矩阵加、减运算 (AB、AB) 规则: 相加、减的两矩阵必须有相同的行和列,两矩阵对应元素相加减。 MATLAB允许参与运算的两矩阵之一是标量,标量与矩阵的所有元素分别进行加减操作。 例:A=1 2 3;4 5 6 B=3 4 5;7 8 9 C=3 A+B=4 6 8;11 13 15 A+C=4 5 6;7 8 9 B+C=6 7 8;10 11 12,第二章MATLAB语言的数值运算,2.矩阵乘运算 A*B:A矩阵的列数必须等于B矩阵的行数。 s*A 或 A*s:标量可与任何矩阵相乘,标量s分别

11、与矩阵A每个元素相乘。 例: A = 1 2 3; 4 5 6; 7 8 0 ; B= 1; 2; 3 ; C = A*B C = 14 32 23 D = -1; 0; 2 ; F = pi*D F = -3.1416 0 6.2832,第二章MATLAB语言的数值运算,3. 矩阵除运算及线性方程组的解 在线性代数中没有矩阵的除运算,只有矩阵逆的运算,在MATLAB中有两种矩阵除运算。 A/B 矩阵右除,相当于 Ainv(B) AB 矩阵左除,相当于 inv(A)B 因此,x = AB 是线性方程组Ax=B的解。 例:求解方程组 3x1 + x2 - x3 = 3.6 x1 + 2x2 +

12、4x3 = 2.1 -x1 + 4x2 + 5x3 = -1.4 A = 3 1 -1 ; 1 2 4 ; -1 4 5 ; B = 3.6 ; 2.1 ; -1.4 ; x = AB x = 1.4818 -0.4606 0.3848,第二章MATLAB语言的数值运算,4.矩阵乘方 An A自乘n次幂 A为方阵,n为大于1的整数 例 a = 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ; a2 ans = 30 36 42 66 81 96 102 126 150,第二章MATLAB语言的数值运算,矩阵的逻辑运算 矩阵的与运算A 5 6 0 8; 9 0 11 12; 0 14

13、15 16; det(X) ans = -5464,第二章MATLAB语言的数值运算,2.求矩阵的秩, X=-2 1 1;0 2 0;-4 1 3; rank(X) ans = 3 3求逆矩阵 Y=inv(X) Y = -1.5000 0.5000 0.5000 0 0.5000 0 -2.0000 0.5000 1.0000,第二章MATLAB语言的数值运算,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

14、2 0 0 0 2,第二章MATLAB语言的数值运算,5矩阵分解, X=-2 1 1;0 2 0;-4 1 3; L, U=lu(A) %三角分解 L = 0.5000 0.2500 1.0000 0 1.0000 0 1.0000 0 0 U= -4.0000 1.0000 3.0000 0 2.0000 0 0 0 -0.5000,第二章MATLAB语言的数值运算,6求解线性方程组,=,a x = b,例: x1+2x2=8 2x1+3x2=13 方程ax=b a=1 2;2 3;b=8;13; 两种解法 x=inv(a)*b x=ab x = x = 2.00 2.00 3.00 3.0

15、0,第二章MATLAB语言的数值运算,2.2 向量,向量是矢量运算的基础 行向量 列向量,第二章MATLAB语言的数值运算,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,第二章MATLAB语言的数值运算,x=i:j 如果ij, 则生成x空向量。 x=i:j:k 如果j0, 且ik, 则生成向量x=i,i+j,i+2j,.,k; 如果j0, 且ik或j

16、0且ik, 则生成向量x为空向量。,第二章MATLAB语言的数值运算,利用冒号生成向量。 a=1:6; b=2:2:10; c=8:-1:2; c1=8:1:4; c1= Empty Matrix: 1-by-0 , 说明c1生成的是空向量。,第二章MATLAB语言的数值运算,3利用函数生成向量 x=linspace(1, 9, 5)%初值=1,终值=9,元素数目=5 利用logspace生成向量 logspace生成等比向量,其用法与linspace相同。,第二章MATLAB语言的数值运算,linspace函数生成等差向量,其功能类似于冒号算子x=i:j, 调用格式如下: x=linspac

17、e(a,b) 生成有100个元素的行向量x,其元素值在a、b之间线性分布。默认值 x=linspace(a,b,n) 生成有n个元素的行向量x,其元素值在a、b之间线性分布。,第二章MATLAB语言的数值运算,x=logspace(a,b) 生成有50个元素的行向量x,其元素起点x(1) ,终点x(50)= 。 x=logspace(a,b,n) 生成有n个元素的行向量x,其元素起点x(1) ,终点x(50) 。 例 利用linspace函数生成等差向量,利用logspace函数生成等比向量。 a=linspace(1.5,6.0,5) %元素值在1.5和6.0之间的5个数 b=logspac

18、e(0,2,4) %元素值在 和 之间的4个数,第二章MATLAB语言的数值运算,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,第二章MATLAB语言的数值运算,2.3 数组,数组运算方式是一种元素对元素的运算(不按照线性代数的规则) ; 除了加、减法与矩阵相同以外,乘、除、幂的数组运算符都是通过在标准的运算符前面加一个圆点来生成。,第二章MATLAB语言的数值运算,数组运算, x=1 2 3; 4 5 6; 7 8 9; y=

19、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,第二章MATLAB语言的数值运算,a./b=b.aa.b=b./aa./b=b.a 都是a的元素被b的对应元素除a.b=b./a 都是a的元素被b的对应元素除, 给出a,b对应元素间的商.,例: a=1 2 3;b=4 5 6

20、; c1=a.b; c2=b./a c1 = 4.0000 2.5000 2.0000 c2 = 4.0000 2.5000 2.0000,z1=a.2 z2=a.b,第二章MATLAB语言的数值运算,2.4 多项式,matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。 如多项式式子 多项式用行向量表示:,matlab规定多项式系数向量用行向量表示,一组根用列向量表示。,第二章MATLAB语言的数值运算,2.4.1 多项式的生成与表达,直接输入法 函数poly(A)生成 例:已知向量A=1 34 80 0 0,用此向量构造的多项式并展开。 (x-1)(x+34)(x+

21、80)(x-0)(x-0) PA=poly(A) %表明以A向量中的数为根 PAX=poly2sym(PA,X) %亦可以A为系数得到多项式 X5 + 113 X4 + 2606 X3 - 2720 X2,第二章MATLAB语言的数值运算,3. 求值 函数polyval可以将某个特定数值代入多项式 函数polyvalm可以求出当多项式中的未知数为方阵时的值。 4. 求导 使用polyder函数对多项式求导。,第二章MATLAB语言的数值运算,(1).conv多项式乘运算例:a(x)=x2+2x+3; b(x)=4x2+5x+6;c = (x2+2x+3)(4x2+5x+6)a=1 2 3;b=

22、4 5 6;c=conv(a,b)=conv(1 2 3,4 5 6)c = 4.00 13.00 28.00 27.00 18.00p=poly2str(c,x)p = 4 x4 + 13 x3 + 28 x2 + 27 x + 18,第二章MATLAB语言的数值运算,(2).deconv多项式除运算 a=1 2 3; c = 4.00 13.00 28.00 27.00 18.00 d=deconv(c,a) d =4.00 5.00 6.00,第二章MATLAB语言的数值运算,p =1.00 -6.00 -72.00 -27.00; r=roots(p) r = 12.12 -5.73 -0.39,(3). 多项式求根运算roots,第二章MATLAB语言的数值运算,多项式的其他基本运算 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论