Presentation is loading. Please wait.

Presentation is loading. Please wait.

第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。

Similar presentations


Presentation on theme: "第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。"— Presentation transcript:

1 第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。
第3章 矩阵、数组和符号运算 一、矩阵和数组运算  要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。 ( 3)学会如何使用矩阵运算函数和数组运算函数。 ( 4)注意区分矩阵和数组的差别,特别是运算符的差别。 ( 6)了解多项式的创建方法和基本运算。

2 第3章 矩阵、数组和符号运算 MATLAB 以矩阵为基本的运算单元,向量和标量作为特殊的矩阵处理:向量看作只有一行或一列的矩阵;标量看作只有一个元素的矩阵。 1、 矩阵的构造 a.直接输入 b.利用内部函数产生矩阵 c.利用M文件产生矩阵 d.从外部数据文件调入矩阵

3 第3章 矩阵、数组和符号运算 a. 直接输入 直接输入需遵循以下基本规则:
第3章 矩阵、数组和符号运算 a.  直接输入 直接输入需遵循以下基本规则: 整个矩阵应以“ [ ]”为首尾,即整个输入矩阵必须包含在方括号中; 矩阵中,行与行之间必须用分号“ ;”或 Enter 键( 按 Enter 键)符分隔; 每行中的元素用逗号“ ,”或空格分隔; 矩阵中的元素可以是数字或表达式,但表达式中不可包含未知的变量,MATLAB用表达式的值为该位置的矩阵元素赋值。当矩阵中没有任何元素时,该矩阵被称作“ 空阵”( Empty Matrix)。

4 第3章 矩阵、数组和符号运算 >> A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]  A =   利用表达式输入 >> B=[1,sqrt(25),9,13 2,6,10,7*2 3+sin(pi),7,11,15 4,abs(-8),12,16] B =

5 第3章 矩阵、数组和符号运算 由向量构成矩阵 向量是组成矩阵的基本元素之一。向量元素需要用方括号括起来。元素之间用空格和逗号分隔生成行向量,用分号隔开生成列向量。可以把行向量看成1n 阶矩阵,把列向量看成n1 阶矩阵。 向量的构造方法: 直接输入向量 利用冒号生成向量 利用 linspace/logspace 生成向量 >> a=[1,2,3,4]; >> x=0:0.5:2; % x=logspace(a,b,n) 生成有 n 个元素的行向量 x,其元素起点 x(1)=10a,终点 x(n)=10b。 >> b=logspace(0,2,4) b =

6 第3章 矩阵、数组和符号运算 % x=linspace(a,b,n) 生成有 n 个元素的行向量 x,其元素值在 a、b 之间线性分布。
第3章 矩阵、数组和符号运算 >> x x = % x=linspace(a,b,n) 生成有 n 个元素的行向量 x,其元素值在 a、b 之间线性分布。 >> y=linspace(0,2,7) y =   >> z=[-1 x 3] z = >> u=[y;z] u =

7 第3章 矩阵、数组和符号运算 b.利用内部函数产生矩阵 % ones 生成全部元素为 1 的矩阵 %compan生成x向量的伴随矩阵
第3章 矩阵、数组和符号运算 b.利用内部函数产生矩阵 %compan生成x向量的伴随矩阵 >> x=[2,4,6,8,10] x =   >> compan(x) ans = % eye 生成单位阵 >> S=eye(6) S =   % ones 生成全部元素为 1 的矩阵 >> ones(3,4) ans = >> F=5*ones(3) F = % zeros 生成全部元素为0的矩阵 >> Z=zeros(2,4) Z = % rand 生成均匀分布的随机矩阵 >> R=rand(4)   R =   %生成空阵 >> K=[]  K =   []

8 第3章 矩阵、数组和符号运算 c.利用M文件产生矩阵 A=[1,2,3,4,5 6,7,8,9,10 11,12,13,14,15
第3章 矩阵、数组和符号运算 c.利用M文件产生矩阵 A=[1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25]

9 第3章 矩阵、数组和符号运算 d.从外部数据文件调入矩阵 用load命令输入 用Import 菜单输入

10 第3章 矩阵、数组和符号运算 2、矩阵元素的修改
第3章 矩阵、数组和符号运算 2、矩阵元素的修改 >> A=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16]  A =   >> A(1,1) ans = 1 >> A(2,3) 7 >> A(1,1)=0;A(2,2)=A(1,2)+A(2,1);A(4,4)=cos(0); >> A A =

11 第3章 矩阵、数组和符号运算 3、矩阵的运算 矩阵运算按照线性代数中基本的运算法则进行; 加减运算必须在具有相同行列的矩阵之间进行;
第3章 矩阵、数组和符号运算 3、矩阵的运算 矩阵运算按照线性代数中基本的运算法则进行; 加减运算必须在具有相同行列的矩阵之间进行; 只有当矩阵 A 的列数和矩阵 B 的行数相同时,才可进行矩阵 A 和 B 的乘法运算; 乘方运算只有在矩阵为方阵时才有意义; 当一个矩阵和一个标量( 1×1 的矩阵)进行运算时,其结果将是此标量和矩阵中的每一个元素“ 相加”、“ 相减”、“ 相乘”、“ 相除”; 在 MATLAB 中,矩阵左除和右除的含义不同。矩阵右除定义为:B\A=(A′/B′)。

12 第3章 矩阵、数组和符号运算 a. 矩阵的加减运算
第3章 矩阵、数组和符号运算 a.  矩阵的加减运算 >> 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] >> C=A+B  C =   >> D=A-B D = >> E=A+3  E =  

13 第3章 矩阵、数组和符号运算 b. 矩阵乘法 c. 矩阵除法 右除 A/B =A*inv(B) 左除 A\B=inv(A)*B
第3章 矩阵、数组和符号运算 b.  矩阵乘法 >> C=A*B C = >> D=A*3 D = c. 矩阵除法 左除 A\B=inv(A)*B >> A=[8,1,6;3,5,7;4,9,2] A =   >> B=[1,1,1;1,2,3;1,3,6]  B =   >> A\B ans = >> C=inv(A) C =   >> C*B  ans =   右除 A/B =A*inv(B) >> A/B ans = >> D=inv(B)  D =   >> A*D

14 第3章 矩阵、数组和符号运算 当对矩阵作除法运算时,有可能因为误差设置的差别导致不精确的结果,此时,MATLAB 会自动给出警告信息:
第3章 矩阵、数组和符号运算 当对矩阵作除法运算时,有可能因为误差设置的差别导致不精确的结果,此时,MATLAB 会自动给出警告信息: MATLAB 采用 IEEE( 国际认可的)算法,即使 A 为奇异阵( 即 A 的行列式值是0),运算也照样进行,但是此时 MATLAB 将给出警告信息:“ Warning: Matrix is singular to working precision.”,求出的矩阵所有元素为无穷大( Inf); 当矩阵 A 为病态阵( Badly Scaled)时,MATLAB 使用的算法产生的误差可能很大,MATLAB 系统也将给出警告信息:“ Warning: Matrix is badly scaled to working precision. Results may be inaccurate.”。 >> E=[1,2,3;4,5,6;7,8,9] E = >> F=[1,4,7;2,5,8;3,6,9] F = >> E\F Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = e-018. ans =

15 第3章 矩阵、数组和符号运算 4、矩阵的函数 a.矩阵的基本变换函数
第3章 矩阵、数组和符号运算 4、矩阵的函数 a.矩阵的基本变换函数 >> A=[3,3,5;2,4,6;7,8,9] %创建方阵 A A =   >> inv(A) %矩阵的逆(A必须为非奇异方阵)  ans = >> A‘ %矩阵的转置

16 第3章 矩阵、数组和符号运算 b.常用的矩阵运算函数 只有方阵才可计算行列式值,即 det(A)的计算只有在 A 为方阵时才有意义。
第3章 矩阵、数组和符号运算 b.常用的矩阵运算函数 只有方阵才可计算行列式值,即 det(A)的计算只有在 A 为方阵时才有意义。 logm(A)和 sqrtm(A)计算矩阵的对数/平方根是指对整个矩阵 A 求对数/平方根。

17 第3章 矩阵、数组和符号运算 >> det(A) %求方阵 A 的行列式值 ans = -24
第3章 矩阵、数组和符号运算 >> det(A) %求方阵 A 的行列式值 ans = -24 >> eig(A) %求特征值 0.8793 >> logm(A) %求矩阵 A 的对数 i i i i i i i i i >> sqrtm(A) %求矩阵 A 的平方根 i i i i i i i i i

18 第3章 矩阵、数组和符号运算 c.矩阵的分解函数

19 第3章 矩阵、数组和符号运算 >> X=[3,-1,2;1,2,-1;-2,1,4] %输入矩阵 X X = 3 -1 2
第3章 矩阵、数组和符号运算 >> X=[3,-1,2;1,2,-1;-2,1,4] %输入矩阵 X  X =   >> [L,U]=lu(X) %对矩阵 X 进行 LU 分解  L =   U =    >> [Q,R]=qr(X) %对矩阵 X 进行 QR 分解  Q =    R =  

20 第3章 矩阵、数组和符号运算 5、数组运算 Matlab是以矩阵为基本运算单元的,数组作为独立的计算单元实体是不存在的。数组运算是Matlab的一种运算形式,它从矩阵的单个元素出发,针对每个元素进行的运算。 MATLAB对数组运算在符号上做了不同的约定,运算符形式为:.* , ./ , .\ , .^ 矩阵运算和数组运算有着显著的不同。属于两种不同的运算:矩阵运算是从矩阵的整体出发,按照线性代数的运算规则进行,有着明确而严格的数学规则;而数组运算是从矩阵的单个元素出发,针对每个元素进行的运算。 对于加法和减法而言,矩阵运算和数组运算相同;对于乘法和除法而言,矩阵和数组的运算有着显著的不同。

21 第3章 矩阵、数组和符号运算 矩阵的数组乘/除及乘方 数组除的运算规则:
第3章 矩阵、数组和符号运算 矩阵的数组乘/除及乘方 数组除的运算规则: 当参与除运算的两个矩阵同维时,运算为矩阵的相应元素相除,计算结果是与参与运算的矩阵同维的矩阵; 当参与运算的矩阵有一个是标量时,运算是标量和矩阵的每一个元素相除,计算结果是与参与运算的矩阵同维的矩阵; 右除与左除的关系为 A./B=B.\A,其中 A 是被除数,B 是除数。

22 第3章 矩阵、数组和符号运算 > > E=[1,2,3;4,5,6;7,8,9] >> F./E ans =
第3章 矩阵、数组和符号运算 > > E=[1,2,3;4,5,6;7,8,9] E = >> F=[1,4,7;2,5,8;3,6,9] F = >> E.\F ans =   >> 4.\F  ans =   >> F./E  ans =   >> E*F ans = >> E.*F

23 第3章 矩阵、数组和符号运算 数组乘方的运算规则:
第3章 矩阵、数组和符号运算 数组乘方的运算规则: ①矩阵的标量乘方 A.^p( 即 A 为矩阵,p 为标量),运算为矩阵每个元素的 p 次方,计算结果是与矩阵A 同维的矩阵; ②标量的矩阵乘方 p.^A,表示以 p 为底,分别以 A 的元素为指数求幂值,计算结果是与矩阵A 同维的矩阵。

24 第3章 矩阵、数组和符号运算 b.向量的数组运算: 加/减法: 乘方: 乘/除法: 点积、叉积: >> x=[1,2,3]
第3章 矩阵、数组和符号运算 b.向量的数组运算: 加/减法: >> x=[1,2,3] >> y=[4,5,6] >> c=x-y >> a=1+x 乘/除法: >> b=2*x >> b=2.*x >> z3=x.\9 >> z4=x./9 >> z=x.*y >> z1=x./y >> z2=x.\y 乘方: >> z7=2.^x >> z5=x.^3 >> z6=x.^y 点积、叉积: >> c1=dot(a,b) >> c1= sum(a.*b) >> c2=cross(a,b)

25 第3章 矩阵、数组和符号运算 6、数组函数 常用的数学函数

26 第3章 矩阵、数组和符号运算 常用三角函数和超越函数

27 第3章 矩阵、数组和符号运算 >> A=[3,3,5;2,4,6;7,8,9] A = 3 3 5 2 4 6 7 8 9
第3章 矩阵、数组和符号运算 >> A=[3,3,5;2,4,6;7,8,9]  A =   >> log(A) ans =   >> sqrt(A) >> cos(A) ans = >> pow2(A) >> 2.^A

28 第3章 矩阵、数组和符号运算 7、多项式及其运算 a.多项式的输入 向量A=[a0,a1,…,an-1,an],
第3章 矩阵、数组和符号运算 7、多项式及其运算 a.多项式的输入 向量A=[a0,a1,…,an-1,an], 则命令poly(A)会生成(x-a0)(x-a1)…(x-an-1)(x-an) 的多项式 >> a a =   >> PA=poly(a) PA = >> poly2sym(PA,'x') ans = x^4-10*x^3+35*x^2-50*x+24 >> p_a=poly2sym(a) p_a = x^3+2*x^2+3*x+4

29 第3章 矩阵、数组和符号运算 b.多项式的运算 除法: 微分: 加法: 求根: 乘法: >> a a =
第3章 矩阵、数组和符号运算 b.多项式的运算 >> a a = >> b=[0,1] b = 加法: >> c=a+[0 0 b] c =   乘法: >> d=conv(a,b) d = 除法: >> [div,rest]=deconv(d,a) div = rest = 微分: >> polyder(a) ans = 求根: >> roots(a)   i i

30 第3章 矩阵、数组和符号运算 求值: 多项式拟合: >> a=[1,2,3,4] a = 1 2 3 4
第3章 矩阵、数组和符号运算 求值: >> a=[1,2,3,4] a = >> b=[1,1;1,1] b = >> polyvalm(a,4) % x=4时多项式的值  ans =   %与polyval(a,4)结果相同 >> polyval(a,b) %数组运算 ans = >> polyvalm(a,b) %矩阵运算 多项式拟合: >> x=0:pi/20:pi/2; >> y=sin(x); >> [p,s]=polyfit(x,y,5); >> x1=0:pi/30:pi*2; >> y1=sin(x1); >>y2=p(1)*x1.^5+p(2)*x1.^4+p(3)*x1.^3+p(4)*x1.^2+p(5)*x1+p(6); >> plot(x1,y1,'b-',x1,y2,'r*') >> legend('Original curve','Fitted curve') >> axis([0,7,-1.2,4])

31 上机习题(4) ( 1)在 MATLAB 6.0 的工作空间中用直接输入法建立如下两个矩阵,然后在矩阵编辑器中将矩阵A改为3行3列的矩阵,并将其保存。  ( 2)分别对(1)产生的两个矩阵 作加、减、乘和除(左除,右除)运算,同时运用数组运算法则进行运算,比较二者的计算结果有何异同。 ( 3)利用矩阵生成函数建立一个对角线元素全部为 1 的 4 阶单位矩阵。 ( 4)利用矩阵生成函数建立一个 4×4 的随机矩阵。

32 上机练习(4) ( 5)对题(4)所产生的矩阵求特征值和特征向量,并用 lu和 qr命令对该矩阵进行分解。
( 6)对题( 1)中的矩阵 B 求秩、行列式的值、条件数、平方根及对数。 ( 7)将如下矩阵 A 进行转置和求逆。 ( 8)在 MATLAB 环境下,用下面三条指令创建矩阵 C,看输出怎样的结果。 a=2.7358; b=33/79; C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]


Download ppt "第3章 矩阵、数组和符号运算 一、矩阵和数组运算 要求内容: ( 1)熟练掌握矩阵的创建。 ( 2)掌握矩阵运算和数组运算。"

Similar presentations


Ads by Google