2MATLAB的基本数学功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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