2MATLAB的基本数学功能

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二节 MATLAB 的基本数学功能

MATLAB 作为优秀的数学计算和分析软件,其中以矩阵运算为代表的基本运算功能一直是MATLAB 引以为豪的核心和基础。本节将介绍MATLAB 的基本运算功能。

一、算术运算

MATLAB 提供了两种运算方式,一种是普通的数组运算方式:在数组中对应元素之间进行运算;另一种是矩阵运算方式:不改变输入形式和书写方法,把常数看成是标量(即11⨯阶的矩阵),一维数组看作是一行或一列的矢量(即1n ⨯阶或1n ⨯阶的矩阵),二维数组看成是m n ⨯阶的矩阵,然后按照矩阵的运算规则进行运算。二者的输入形式和表示方法是相同的,差别就在于使用了不同的运算符。

1. 加、减运算

矩阵与数组的加减运算没有区别,都使用“+”、“-”运算符,运算方法相同。需注意的是,两个进行加减运算的数组(或是矩阵)必须有相同的尺寸,否则运算时会出现错误信息。如:

a=[2 1 3; 4 6 5;2 4 6]; b=[2 5 7]; a+b

??? Error using ==> +

Matrix dimensions must agree .

如果其中的一个运算对象是标量,即11⨯阶的矩阵,它可以和其他不同维数的矩阵进行运算。如:

a+4 ans =

6 5

7

8 10

9 6 8 10 2. 乘、除运算

矩阵与数组在进行乘法或除法运算时,使用不同的运算符。矩阵运算使用的运算符是“*”和“\”(或“/”),而数组运算使用的运算符是矩阵运算符号前加一个点“.”,即“.*”和“.\”(或“. /”)。

2.1 矩阵乘法

矩阵乘法用 “*”表示,两矩阵要能相乘,必须要求前一矩阵的列数与后一矩阵的行数相等。如:

A =[1 2 3 ; 4 5 6 ;7 8 9];

B= [2 5 ;-1 3 ;-2 0]; A*B ans =

-6 11 -9 35 -12 59

用乘法也可以实现两个同维矢量的内积(点乘)。在输入列矢量时,为了书

写方便,通常先写成行矢量,再用转置符号,将其转化为列矢量;也可以直接输入为a=[2;-1;5]。如:

a=[2 -1 5]';

b=[-1 3 -4]';

a'*b

ans =

-25

b'*a

ans =

-25

MATLAB用dot(a,b)计算矢量a和b的点乘,用cross(a,b)计算矢量a和b的叉乘。如:

dot(a,b)

ans =

-25

cross(a,b)

ans =

-11

3

5

在MA TLAB中矩阵可以和标量相乘,标量可以是乘数或是被乘数。如:-5*a'

ans =

-10 5 -25

2.2 数组乘法

数组的乘法用“.* ”表示,两数组相乘必须具有相同的维数,则a .*b表示a 和b中对应元素之间相乘。如:z= a'.*b'

z =

-2 -3 -20

即z (i,j) = a' (i ,j) * b' (i ,j)。

2.3 矩阵除法

在MA TLAB中有两种矩阵除法运算符号:“\”和“/”分别表示左除和右除。如果A为非奇异方阵,则A\B和B/A运算都可以实现。A\B表示矩阵A的逆左乘矩阵B,即A\B=inv(A)*B,而B/A表示矩阵A的逆右乘矩阵B,即B/A=B*inv(A)。

通常X=A\B是A*X=B的解,X=B/A是X*A=B的解。一般A\B≠B/A。如:A=rand(2)

A =

0.9501 0.6068

0.2311 0.4860

B=rand(2)

B =

0.8913 0.4565

0.7621 0.0185 C=A/B C =

1.3425 -0.3234 1.1047 -0.9887 D=B\A D =

0.2653 0.6355 1.5634 0.0885

2.4 数组除法

数组除法用“.\”或“./”表示(结果相同),a 与b 必须具有相同的维数,a .\b 表示b 中的元素分别除以a 中的对应元素。如:

g=a'.\b' g =

-0.5000 -3.0000 -0.8000

f=b'./a'

f =

-0.5000 -3.0000 -0.8000

即a'.\b'=b'./a',都表示b'除以a'。

3 乘方

3.1 矩阵的乘方

矩阵的乘方用“^”表示,A ^p 即为A 的p 次方。

若A 是一个方阵,p 是一个标量,且p 是大于1的整数,则A 的p 次幂即为

A 自乘p 次;若p 是不为整数的标量时, A ^p=V*1p p n λλ⎛⎫

⎪ ⎪⎝

/ V ,其中λ1

…λn 为矩阵A 的特征值,V 为对应的特征矢量阵。

若A 为标量而p 为方阵时,计算也涉及到特征值和特征矢量的问题,A ^

p=V*1n A A λλ⎛⎫ ⎪

⎪ ⎪⎝⎭

/ V ,其中λ1 …λn 为矩阵p 的特征值,

V 为对应的特征矢量阵。

若A 、p 均是矩阵,则A ^p 是错误的,即A 和p 中必须一个是标量,一个是方阵。

3.2 数组的乘方 数组的乘方用“.^”。

当底和指数为同样大小的数组时,如:

x=[3 -2 -1];

y=[2 4 3];

z=x.^y

结果为:

z =

9 16 -1

即z=x.^y=[3 -2 -1].^ [2 4 3]=[3^2 (-2)^4 (-1)^3]=[ 9 16 –1]。

若指数是标量,如:g=x.^2

结果为:

g =

9 4 1

即g=x.^2=[3 -2 -1].^2=[3^2 (-2)^2 (-1)^2]=[ 9 4 1]。

若底是标量,指数是数组,如:f=2.^x

结果为:

f =

8.0000 0.2500 0.5000

即f=2.^x=2.^ [3 -2 -1] =[2^3 2^(-2) 2^ (-1)]=[ 8.0000 0.2500 0.5000]。

4转置

矩阵的转置用“'”来表示。如:

A =[ 0.9501 0.6068; 0.2311 0.4860];

G=A'

G =

0.9501 0.2311

0.6068 0.4860

也可直接对矢量进行转置运算:

[1 4 5]'

ans =

1

4

5

若z复数矩阵,则z'为它的复数共轭转置,若要进行非共轭转置运算,使用z.'或conj(z')求得。如:

z=[2+i 3-4i];

z'

ans =

2.0000 - 1.0000i

3.0000 +

4.0000i

z.'

ans =

2.0000 + 1.0000i

3.0000 -

4.0000i

相关文档
最新文档