• MATLAB程序设计与应用 2.4 MATLAB常用内部函数


    MATLAB程序设计与应用

    2. 第2章 MATLAB数据及其运算

    2.4 MATLAB常用内部函数

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

    2.4.1 常用数学函数

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

    >> A = [4,2;3,6]
    
    A =
    
         4     2
         3     6
    
    >> B = sqrt(A)
    
    B =
    
        2.0000    1.4142
        1.7321    2.4495
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    常用的数学函数

    函数名功能函数名功能
    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个函数的区别:

      在这里插入图片描述

    设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。

    1. 关于符号函数。当x<0时,sign(x)=-1:当x=0时,sign(x)=0:当x>0时,sign(x)=1。
    2.4.2 矩阵的超越函数

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

    1. 矩阵平方根

      sqrtm(A)计算矩阵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
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14

      若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
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
    2. 矩阵对数

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

      >> A = [4,9;1,5];
      >> L = logm(A);
      >> L
      
      L =
      
          1.0639    2.4308
          0.2701    1.3340
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    3. 矩阵指数

      expm(A)的功能是求矩阵指数e的A次幂。

      L =
      
          1.0639    2.4308
          0.2701    1.3340
      
      >> B = expm(L)
      
      B =
      
          4.0000    9.0000
          1.0000    5.0000
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
    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
      
      >> expm(A)
      
      ans =
      
          5.4366   -2.7183
          2.7183         0
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14

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

  • 相关阅读:
    34 IDEA 架包,字体...
    850. 矩形面积 II:扫描线+离散化+线段树
    大数据调优经验
    冲刺80万辆!明年再翻倍!行泊一体赛道「激活」市场新引擎
    edu cf#136 Div.2(A~C)
    Python GUI案例之看图猜成语开发(第三篇)
    PHP 变量
    VMware虚拟机以独占方式锁定此配置文件失败
    【java实验】在项目中使用Java常用类
    Centos8安装docker并配置Kali Linux图形化界面
  • 原文地址:https://blog.csdn.net/weixin_44226181/article/details/126087128