matlab第三讲Matlab的基本函数与代数运算.docx
- 文档编号:17840135
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:21
- 大小:22.34KB
matlab第三讲Matlab的基本函数与代数运算.docx
《matlab第三讲Matlab的基本函数与代数运算.docx》由会员分享,可在线阅读,更多相关《matlab第三讲Matlab的基本函数与代数运算.docx(21页珍藏版)》请在冰点文库上搜索。
matlab第三讲Matlab的基本函数与代数运算
第三讲Matlab的基本函数与代数运算
3.1Matlab的变量和基本函数
3.2矩阵的代数运算
3.1Matlab的变量和基本函数
1、Matlab中常用的常量和变量
ans,eps(无穷小),realmax(最大实数),realmin(最小实数),pi(π),inf(无穷大),NaN(不确定数),i,j(虚数单位),nargin,nargout(调用函数时变量数)。
>>eps
ans=2.2204e-016
>>realmax
ans=1.7977e+308
>>realmin
ans=2.2251e-308
>>1/0Warning:
Dividebyzero.
ans=Inf
>>0/0Warning:
Dividebyzero.
ans=NaN
>>i^2
ans=-1
>>j^2
ans=-1
2、Matlab的基本数学函数
round(x)求最接近x的整数,(四舍五入)。
如果x是一个向量,则适用于所有元素。
fix(x)求0方向最接近x的整数。
floor(x)求小于或等于x的最接近的整数。
ceil(x)求大于或等于x的最接近的整数。
rem(x,y)求整除x/y的余数。
gcd(x,y)求整数x和y的最大公因子。
lcm(x,y)求正整数x和y的最小公倍数。
[t,n]=rat(x)由有理数t/n求x的近似值,这里的t和n是整数,相对误差小于1e-6。
[t,n]=rat(x,tol)与上相同,但相对误差小于tol。
abs(x)求x的绝对值,即|x|。
sign(x)求x的符号,如果是正的得1;负的得-1;零得0。
sqrt(x)求x的平方根。
exp(x)求x的指数函数。
log(x)求x的自然对数,即lnx。
log10(x)求x以10为底的对数。
log2(x)求x以2为底的对数。
sin(x)求正弦x,x为弧度。
cos(x)求余弦x,x为弧度。
tan(x)求正切x,x为弧度。
cot(x)求余切x,即1/(tanx),x为弧度。
asin(x)求反正弦。
acos(x)求反余弦。
atan(x)求反正切。
acot(x)求反余切。
sec(x)求正割x,即1/(cosx)。
csc(x)求余割x,即1/(sinx)。
asec(x)求asecx=arccos(1/x)。
acsc(x)求acscx=arcsin(1/x)。
sinh(x)求双曲正弦x。
cosh(x)求双曲余弦x。
有关于复变函数的一些函数
real(z)求z的实部。
imag(z)求z的虚部。
abs(z)求z的绝对值,即|z|。
conj(z)求z的共扼复数。
angle(z)求z的相角。
2、Matlab的逻辑运算和基本逻辑函数
A&B返回一个与A和B相同维数的矩阵。
在这个矩阵中,A和B对应元素都为非零时,则对应项为1;有一个为零的项则为0。
A|B返回一个与A和B相同维数的矩阵。
在这个矩阵中,A和B对应元素只要有一个为非零,则对应项为1;两个矩阵均为零时,则为0。
~A返回一个与A相同维数的矩阵。
在这个矩阵中,A是零时,则对应项为1;A是非零时,则对应项为0。
xor(A,B)返回一个与A和B相同维数的矩阵。
在这个矩阵中,如果A和B均为零或均为非零时,则对应项为0;如果A或B是非零但不是两者同时为非零时,则对应项为1。
>>A=round(rand(4))
A=
1111
0101
1010
0010
>>B=round(rand(4))
B=1000
1000
0100
1011
>>A&B
ans=1000
0000
0000
0010
>>A|B
ans=1111
1101
1110
1011
>>~A
ans=0000
1010
0101
1101
>>xor(A,B)
ans=0111
1101
1110
1001
any(x)如果x中的有一个元素为非零值,那么返回1;否则,返回0。
any(A)对A进行列运算,根据相应列是否包含非零元素,返回一个带1和0的行向量。
all(x)如果所有的元素都是非零值,返回1;否则,返回0。
all(A)对A进行列操作,根据相应列是否所有元素都为非零值,返回带1和0的一个行向量。
>>x=round(rand(1,6))
x=110010
>>any(x)
ans=1
>>all(x)
ans=0
>>A=round(rand(3))
A=001
100
011
>>any(A)
ans=111
>>all(A)
ans=000
isnan(A)返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有‘NaN’处为1,其他地方为0。
isinf(A)返回一个维数与A相同的矩阵,在这个矩阵中,对应A中有‘inf’处为1,其他地方为0。
isequal(A,B)如果A和B是相同的,即有相同的维数和相同的内容,则返回1。
>>A=round(rand(3))
A=111
110
000
>>B=1./A
Warning:
Dividebyzero.
B=111
11Inf
InfInfInf
>>isinf(B)
ans=000
001
111
>>C=0./A
Warning:
Dividebyzero.
C=000
00NaN
NaNNaNNaN
>>isnan(C)
ans=000
001
111
>>A=pascal(3)
A=
111
123
136
>>B=magic(3)
B=
816
357
492
>>isequal(A,A)
ans=
1
>>isequal(A,B)
ans=0
3、Matlab的关系运算
Matlab有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较。
关系运算符如下:
<小于、<=小于等于、>大于、>=大于等于、==等于、~=不等于。
>>1>2
ans=0
>>5<=6
ans=1
>>7~=7
ans=0
>>4==9
ans=0
>>A=rand(3)>0.7
A=
101
000
001
>>B=rand(3)<0.7
B=
111
110
010
>>A==B
ans=
101
001
100
>>A>B
ans=
000
000
001
>>A
ans=
010
110
010
3.2矩阵的代数运算
矩阵的基本运算
1加法和减法
如果矩阵A和B具有相同的维数,那么就可以定义两个矩阵的和A+B和两个矩阵的差A-B。
矩阵A±B,即对应元素运算。
在MATLAB中,一个m×n矩阵A和一个标量,即一个1×1矩阵s之间
也能进行加和减运算。
矩阵A+s与A有相同的维数,且元素为A的每个元素加s。
2乘法
如果矩阵A的列数等于矩阵B的行数,那么矩阵相乘,即C=AB,就被定义为二维矩阵。
如果不是
这种情况,MATLAB就返回一个错误信息。
只有一个例外就是这两个矩阵之一是1×1,即一个标
量,那么MATLAB是可以接受的。
在MATLAB中,乘法的运算符是*,因此,命令是C=A*B。
元
素cij是A的第i行和B的第j列的点积。
矩阵C有与A相同的行数和与B相同的列数。
>>A=magic(3)
A=
816
357
492
>>B=pascal(3)
B=
111
123
136
>>A+B
ans=
927
4710
5128
>>A-B
ans=
705
234
36-4
>>3+A
ans=
1149
6810
7125
>>3*A
ans=
24318
91521
12276
>>A*B
ans=
152847
153460
152843
MATLAB也包含其他乘积。
命令dot(x,y)得到具有相同元素数量的两个向量x和y的点积,也称为标量积或内积。
如果点积为零,则两个向量是正交的。
dot(x,y)得到向量x和y的点积
dot(A,B)得到一个长度为n的行向量,这里的元素是A和B对应列的点积。
矩阵A和B必须是具有相同的维数m×n。
>>x=[1234];
>>y=[1211];
>>dot(x,y)
ans=
12
>>A=magic(3)
A=
816
357
492
>>B=pascal(3)
B=
111
123
136
>>dot(A,B)
ans=153839
对于各具三个元素的两个向量x和y,命令cross(x,y)给出向量积或叉积。
cross(x,y)得到向量x和y的叉积。
cross(A,B)得到一个3×n矩阵,其中的列是A和B对应列的叉积。
矩阵A和B必须具有相同的维数
3×n。
>>x=[123];
>>y=[121];
>>cross(x,y)
ans=
-420
>>A=magic(3);
>>B=pascal(3);
>>cross(A,B)
ans=
-1-336
-46-34
5-311
3除法
在MATLAB中,有两个矩阵除法的符号,左除\和右除/。
如果A是一个非奇异方阵,那么
A\B和B/A对应A的逆与B的左乘和右乘,即分别等价于命令inv(A)*B和B*inv(A)。
如果A是一个方阵,那么X=A\B是矩阵方程AX=B的解inv(A)B,这里的X具有与B相同的维数。
在B=b
是一个列向量这样一个特殊情况下,x=A\b是线性系统AX=b的解。
如果A是一个m>n的m×n矩阵,X=A\B得到矩阵方程AX=B的最小二乘解。
矩阵方程XA=B的解是X=B/A,它等同于(A′\B′)′,即右除可以由左除定义。
这里,撇号′表示
转置。
>>A=magic(3)
A=
816
357
492
>>B=pascal(3)
B=
111
123
136
>>A\B
ans=
0.06670.05000.0972
0.06670.30000.6389
0.06670.0500-0.0694
>>A/B
ans=
27-3112
120
-1329-12
>>B\A
ans=
19-3-1
-17413
60-6
>>B/A
ans=
0.06670.06670.0667
-0.03330.4667-0.0333
-0.15281.0556-0.2361
4转置和共轭
一个重要的运算是转置和共轭转置,它在MATLAB中用′表示。
如果A是一个实数,那么它被转置时,第1行变成第1列,第2行变成第2列,依此类推,一个m×n矩阵变为一个n×m矩阵。
如果仅希望转置,在撇号之前输入一点.´,A.`´表示转置。
>>A=magic(3)
A=
816
357
492
>>B=pascal(3)
B=
111
123
136
>>A'
ans=834
159
672
>>C=A+B*i
C=
Columns1through2
8.0000+1.0000i1.0000+1.0000i
3.0000+1.0000i5.0000+2.0000i
4.0000+1.0000i9.0000+3.0000i
Column3
6.0000+1.0000i
7.0000+3.0000i
2.0000+6.0000i
>>C'
ans=
Columns1through2
8.0000-1.0000i3.0000-1.0000i
1.0000-1.0000i5.0000-2.0000i
6.0000-1.0000i7.0000-3.0000i
Column3
4.0000-1.0000i
9.0000-3.0000i
2.0000-6.0000i
>>C.'
ans=
Columns1through2
8.0000+1.0000i3.0000+1.0000i
1.0000+1.0000i5.0000+2.0000i
6.0000+1.0000i7.0000+3.0000i
Column3
4.0000+1.0000i
9.0000+3.0000i
2.0000+6.0000i
5.矩阵的乘方
对于二维方阵,A的p次乘方可以用A^p实现。
如果p是一个正整数,那么这个幂可以由许多矩阵乘法运算定义。
对于p=0,得到与A维数相同的单位矩阵;当p<0时,如果A^-1存在,可定义A^p,它是与inv(A)^(-p)相同。
>>A=magic(3)
A=816
357
492
>>A^2
ans=916767
679167
676791
>>A^0
ans=100
010
001
>>A^(-1)
ans=0.1472-0.14440.0639
-0.06110.02220.1056
-0.01940.1889-0.1028
>>inv(A)
ans=0.1472-0.14440.0639
-0.06110.02220.1056
-0.01940.1889-0.1028
6.按位操作运算‘.’
按位运算也可以元素与元素逐次进行。
矩阵的维数要相同,可以是多维的。
如果运算是由一点进行的,那么这个运算实行的是元素方式。
对于加法和减法,数组运算和矩阵运算没有差别。
运算符是:
+-.*./.\.^
>>A=magic(3)
A=816
357
492
>>B=pascal(3)
B=111
123
136
>>A.*B
ans=816
31021
42712
>>A./B
ans=8.00001.00006.0000
3.00002.50002.3333
4.00003.00000.3333
>>A.^2
ans=64136
92549
16814
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 第三 基本 函数 代数 运算
![提示](https://static.bingdoc.com/images/bang_tan.gif)