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^x
和expm(m)
代表e
加注到矩阵x
。
e.^(x)
和 exp(x)
表示矩阵 x
. 中每个元素的指数 ex
如果 x
是标量,则所有(e^x
、expm(x)
、e.^x
和 exp(x)
)在数学上都是相等的。
对于您的情况,z
是一个矩阵,因此您会得到不同的结果。
在 MATLAB 中,
e
未在 MATLAB 中定义。 exp(x)
and expm(x)
在 MATLAB 中的定义与上面针对 Octave 描述的定义相同。
PS: e
或 E
在 MATLAB 和八度,但那是另一回事。
在 Octave 中,重要的是要注意 e^x
和 exp(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 ^ x
和 exp (x)
不同的另一个原因是当 x
是方阵时它们计算完全不同的东西,但这已经在 Sardar 的回答中讨论过。
我是 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^x
和expm(m)
代表e
加注到矩阵x
。e.^(x)
和exp(x)
表示矩阵x
. 中每个元素的指数 ex
如果 x
是标量,则所有(e^x
、expm(x)
、e.^x
和 exp(x)
)在数学上都是相等的。
对于您的情况,z
是一个矩阵,因此您会得到不同的结果。
在 MATLAB 中,
e
未在 MATLAB 中定义。 exp(x)
and expm(x)
在 MATLAB 中的定义与上面针对 Octave 描述的定义相同。
PS: e
或 E
在 MATLAB 和八度,但那是另一回事。
在 Octave 中,重要的是要注意 e^x
和 exp(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 ^ x
和 exp (x)
不同的另一个原因是当 x
是方阵时它们计算完全不同的东西,但这已经在 Sardar 的回答中讨论过。