2.4 Matlab学习笔记之数据与运算-常用内部函数

MATLAB常用内部函数

内部函数是由 MATLAB 系统根据一般用户的需要编制并提供给用户使用的一组程序,也称为系统函数或库函数。

1.常用数学函数

MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量具有相同维数和大小的矩阵,即结果矩阵与自变量矩阵同型。

>> A=[4,2;3,6] 

A =

     4     2
     3     6

>> B=sqrt(A) 

B =

    2.0000    1.4142
    1.7321    2.4495

​ 表 常用的数学函数

函 数 名功 能函 数 名功 能
sin/sind正弦函数,输入值为弧度/角度abs绝对值函数
cos/cosd余弦函数,输入值为弧度/角度rem求余
tan/tand正切函数,输入值为弧度/角度mod求模
asin/asind反正弦函数,返回值为弧度/角度fix向零方向取整
acos/acosd反余弦函数,返回值为弧度/角度floor不大于自变量的最大整数
atan/atand反正切函数,返回值为弧度/角度ceil不小于自变量的最小整数
sinh/asinh双曲正弦函数/反双曲正弦函数round四舍五入到最邻近的整数
cosh/acosh双曲余弦函数/反双曲余弦函数sign符号函数
tanh/atanh双曲正切函数/反双曲正切函数gcd最大公约数
sqrt平方根函数lcm最小公倍数
log自然对数函数factorial阶乘
log10常用对数函数isprime判断是否为素数
log2以2为底的对数函数primes生成素数列表
exp自然指数函数perms生成所有排列
pow22 的 幂randperm生成任意排列

函数使用说明如下:

(1)三角函数有以弧度为单位的函数和以角度为单位的函数以角度为单位的函数在函数名后面加“d”,以示区别。

(2)abs函数可以求实数的绝对值、复数的模字符串的ASCII码值。例如,

abs(-4)、abs(3+4i)、 abs('a') 的值分别为4、5、97

(3)求余运算和求模运算有相同的地方但又不完全一致,主要的区别在于对负整数进行除法运算时的操作不同

  • 对于整数a 、b 来说,求余运算或求模运算的方法都是先求整数商 c=a/b, 再求余数或模r=a-c*b 。
  • 求余运算在取c 的值时,向0方向取整(fix函数),
  • 而求模运算在计算c的值时,向负无穷方向取整 (floor函数)

rem 与 mod 函数的区别是:

当b≠0时 ,rem(a,b)=a-b.*fix(a./b),而 mod(a,b)=a-b.*floor(a./b); 
当b=0时 ,rem(a,0)=NaN,  而 mod(a,0)=a。
  • 如果a 、b符号相同,那么rem(a,b)=mod(a,b)。
  • 如果a 、b符号相反,那么mod(a,b)=rem(a,b)+b。
  • rem(a,b)的符号与 a 相同,而 mod(a,b)的符号与 b 相同。

例如,

rem(7,4)=mod(7,4)=3;   

rem(-7,-4)=mod(-7,-4)=-3;      

rem(7,-4)=3, 而 mod(7,-4)=-1;

rem(-7,4)=-3, 而 mod(-7,4)=1

(4)用于取整的函数有fix 、floor 、ceil 、round,要注意它们的区别。round 函数的作用是四舍五入。设a 为最靠近x的正整数(|x|≥a), 则其余3个函数的区别可表示为下图。

image-20241009095805048

设x=2.45, 则 fix(x)、floor(x)、ceil(x)、round(x)的结果分别是2、2、3、2。

又设x=-2.65, 则 fix(x) 、floor(x) 、ceil(x) 、round(x) 的结果分别是-2、-3、-2、-3。

(5)关于符号函数。

  • 当x<0 时 ,sign(x)=-1;
  • 当x=0 时 ,sign(x)=0;
  • 当x>0 时 ,sign(x)=1。
2.矩阵的超越函数

MATLAB 还提供了一些直接作用于矩阵的超越函数,这些函数名都在上述内部函数名之后缀以m, 并规定输入参数A必须是方阵

(1)矩阵平方根

sqrtm(A)计算矩阵A的平方根。

>> A=[4,2;3,6]; 
>> B=sqrtm(A)

B =

    1.9171    0.4652
    0.6978    2.3823

>> B*B

ans =

    4.0000    2.0000
    3.0000    6.0000

若A为实对称正定矩阵或复埃尔米特 (Hermitian) 正定阵,则一定能算出它的平方根。但某些矩阵,如A=[0,1;0,0]就得不到平方根。若矩阵A含有负的特征值,则sqrtm(A)将会得到一个复矩阵

>> A=[4,9;16,25];
>> eig(A)

ans =

   -1.4452
   30.4452

>> B=sqrtm(A)

B =

   0.9421 + 0.9969i   1.5572 - 0.3393i
   2.7683 - 0.6032i   4.5756 + 0.2053i

(2)矩阵对数

logm(A)计算矩阵A 的自然对数。此函数输入参数的条件与输出结果间的关系和函数 sqrtm(A)完全一样。

>> A=[4,9;1,5];
>> L=logm(A)

L =

    1.0639    2.4308
    0.2701    1.3340

(3)矩阵指数

e x p m ( A ) 的功能是求矩阵指数 e A expm(A)的功能是求矩阵指数e^A expm(A)的功能是求矩阵指数eA

>> B=expm(L) 

B =

    4.0000    9.0000
    1.0000    5.0000

(4)普通矩阵函数

funm(A,@fun)对方阵 A 计算由fun定义的函数的矩阵函数值。例如,当fun取exp 时 , funm(A,@exp)可以计算矩阵A的指数,与expm(A)的计算结果一样。

>> A=[2,-1;1,0]; 
>> funm(A,@exp) 

ans =

    5.4366   -2.7183
    2.7183    0.0000

>> expm(A)

ans =

    5.4366   -2.7183
    2.7183         0

与expm(A)的计算结果一样。

>> A=[2,-1;1,0]; 
>> funm(A,@exp) 

ans =

    5.4366   -2.7183
    2.7183    0.0000

>> expm(A)

ans =

    5.4366   -2.7183
    2.7183         0

funm 函数可以用于 exp、log、sin、cos、sinh和 cosh 等函数,但求矩阵的平方根只能用sqrtm 函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值