zoukankan      html  css  js  c++  java
  • 数学函数如开方,求膜,阶乘,取整方法的比较

    rem(x,y):求整除x/y的余数
    mod(x,y):求模

    rem(x,y)=x-y.*fix(x./y); (fix()向0取整)
    mod(x,y)=x-y.*floor(x./y); (floor()向左取整)
    如果x和y的符号相同(同为‘+’,同为‘-’),那么rem(x,y)=mod(x,y)(正数与正数,负数与负数,取整结果两个函数效果一样)
    如果x和y的符号相反,那么mod(x,y)=rem(x,y)+y(正数与负数的取整,看你希望得到什么结果就选择用什么函数)
    当正数与负数取余时,当得到的余数结果的符号希望跟除数(x)一样,用rem()函数;当得到的余数结果的符号希望跟被除数(y)一样,用mod()函数
    例如:
    rem(3,2)=1;mod(3,2)=1;
    rem(-3,-2)=-1;mod(-3,-2)=-1;
    rem(3,-2)=1;mod(3,-2)=-1;
    rem(-3,2)=-1;mod(-3,2)=1;

    mod(3,2)=rem(3,2)=1;
    mod(3,-2)=rem(3,-2)-2=1-2=-1;
    mod(-3,2)=rem(-3,2)+2=-1+2=1

    开方函数
    
    sqrt(9)=3=nthroot(9,2)=3;
    

    nthroot(8,3)=2;%%8开3次方。


    阶乘:

    (1)用函数factorial(n)可计算阶乘,例如5!

    >> factorial(5)

    ans=120

    (2)函数prod(1:n)可计算阶乘,例如prod(1:5)和prod(1:0)可计算5和0的阶乘。

    >> prod(1:5)

    ans =

       120

    >> prod(1:0)

    ans =

         1

    (3)

    可利用伽玛函数实现求解阶乘的目的,

    例如gamma(6)=5!,gamma(7)=6!

    >> gamma(6)

    ans =

       120

    >> gamma(7)

    ans =

       720

    (4)利用组合函数可beta和gamma函数组合求解阶乘

    n!=(beta(n+1,n+1)*gamma(2*(n+1)))^(1/2)

    或者n!=beta(n+1,1)*gamma(n+2)

    >> (beta(5+1,5+1)*gamma(2*(5+1)))^(1/2)

    ans =

      120.0000

    >> (beta(6+1,6+1)*gamma(2*(6+1)))^(1/2)

    ans =

      720.0000

    >> beta(5+1,1)*gamma(5+2)

    ans =

      120.0000

    >> beta(6+1,1)*gamma(6+2)

    ans =

       720

    (5)编写MATLAB命令,实现阶乘

    在代码窗口输入

    function f=jiecheng(n);

    if n==0;

    f=1;

    elseif n>=1

    f=n*jiecheng(n-1);

    end

    运行上述命令,若想计算5的阶乘可直接输入函数调用命令

    >> jiecheng(5) 即可



    sqrt(a)  %返回a的算数平方根
    log(a)   %自然对数,相当于ln(a)
    log10(a) %以10为底的对数
    log2(a)  %以2为底的对数
    
    e写作exp(1),e^a写作exp(a);
    
        fix(x)为x数值取整。
    
    A=randi([10,99],1)   %%fix(99*(rand()*2-1))表示10到99之间的随机数。
    
    Matlab取整函数有: fix, floor, ceil, round.具体应用方法如下:
      fix朝零方向取整,如fix(-1.3)=-1; fix(1.3)=1;
        floor,顾名思义,就是地板,所以是取比它小的整数,即朝负无穷方向取整,如floor(-1.3)=-2; floor(1.3)=1;floor(-1.8)=-2,floor(1.8)=1
        ceil,与floor相反,它的意思是天花板,也就是取比它大的最小整数,即朝正无穷方向取整,如ceil(-1.3)=-1; ceil(1.3)=2;ceil(-1.8)=-1,ceil(1.8)=2
        round四舍五入到最近的整数,如round(-1.3)=-1;round(-1.52)=-2;round(1.3)=1;round(1.52)=2。



  • 相关阅读:
    C# DES加密解密
    VC SOCKET 压缩通信学习
    ASPX一句话爆破工具
    VC读取文件内容
    VC查找字符串
    (学习记录)代码注入之远程线程篇
    WINSOCK 传送文件
    VC数据类型
    占用字节数求法
    HDU
  • 原文地址:https://www.cnblogs.com/xuxinstyle/p/9128899.html
Copyright © 2011-2022 走看看