Octave/Matlab: e^(-1*z) 和 exp(-1*z) 的区别

Octave/Matlab: Difference between e^(-1*z) and exp(-1*z)

我是 Octave 的新手,我 problem.I 认为以下代码是相同的,但它们产生不同的结果。有什么不同?谢谢

Octave/Matlab: e^(-1*z) 和 exp(-1*z) 的区别

g = 1./(1 + e^(-1*z));

g = 1./(1 + exp(-1*z));

其中 z 是向量、元素或矩阵

八度

exp(1) 等于 e where e is Euler's number

这里需要注意的有4个operations/functions:

e^x 等同于 expm(x) and e.^(x) is same as exp(x).

  • e^xexpm(m)代表e加注到矩阵x
  • e.^(x)exp(x) 表示矩阵 x.
  • 中每个元素的指数 ex

如果 x 是标量,则所有(e^xexpm(x)e.^xexp(x))在数学上都是相等的。
对于您的情况,z 是一个矩阵,因此您会得到不同的结果。


在 MATLAB 中,

e 未在 MATLAB 中定义。 exp(x) and expm(x) 在 MATLAB 中的定义与上面针对 Octave 描述的定义相同。


PS: eE 在 MATLAB 和八度,但那是另一回事。

在 Octave 中,重要的是要注意 e^xexp(x),其中 x 是双精度标量变量,不一定相同。

例如:

>> a = e ^ 2
a =  7.3891

>> b = exp (2)
b =  7.3891

>> b - a
ans = 8.8818e-16

原因是exp (2)使用了专门的算法来计算指数函数,而e ^ 2实际上是调用函数e ()得到e的值,然后求平方:

>> c = realpow (e (), 2)
c =  7.3891

>> c - a
ans = 0

e ^ xexp (x) 不同的另一个原因是当 x 是方阵时它们计算完全不同的东西,但这已经在 Sardar 的回答中讨论过。