(scilab)x = [-6,6] y = 1 /(1 +%e ^ -x)为什么它不起作用?

时间:2010-09-18 09:16:57

标签: scilab

我正试图在scilab上使用这个代码绘制sigmoid函数,但我得到的结果不是来自等式。我的代码出了什么问题?

x = -6:1:6; y = 1 /(1 +%e ^ -x)

y =

0.0021340  
0.0007884  
0.0002934  
0.0001113  
0.0000443  
0.0000196  
0.0000106  
0.0000072  
0.0000060  
0.0000055  
0.0000054  
0.0000053  
0.0000053  

http://en.wikipedia.org/wiki/Sigmoid_function

非常感谢你

2 个答案:

答案 0 :(得分:2)

尝试:

-->function [y] = f(x)
-->  y = 1/(1+%e^-x)
-->endfunction

-->x = -6:1:6;

-->fplot2d(x,f)

产生: alt text

答案 1 :(得分:0)

您的方法计算(1 +%e。^ x)向量的伪逆。您可以通过执行:(1 +%e ^ -x)* y

进行验证

您可以做以下两件事:

x = -6:1:6; y = ones(x)./(1+%e.^-x)

这给出了您需要的结果。这按预期执行元素分割。

另一种方法是:

x = -6:1:6    
deff("z = f(x)", "z = 1/(1+%e^-x)") 
// The above line is the same as defining a function- 
// just as a one liner on the interpreter.
y = feval(x, f)

两种方法都会产生相同的结果。