]> Creatis software - CreaPhase.git/blob - octave_packages/nnet-0.1.13/tansig.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / nnet-0.1.13 / tansig.m
1 ## Copyright (C) 2006 Michel D. Schmid  <michaelschmid@users.sourceforge.net>
2 ##
3 ##
4 ## This program is free software; you can redistribute it and/or modify it
5 ## under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2, or (at your option)
7 ## any later version.
8 ##
9 ## This program is distributed in the hope that it will be useful, but
10 ## WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ## General Public License for more details.
13 ##
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; see the file COPYING.  If not, see
16 ## <http://www.gnu.org/licenses/>.
17
18 ## -*- texinfo -*-
19 ## @deftypefn {Function File} {}@var{a} = tansig (@var{n})
20 ## @code{tansig} is a non-linear transfer function used to train
21 ## neural networks.
22 ## This function can be used in newff(...) to create a new feed forward
23 ## multi-layer neural network.
24 ##
25 ## @end deftypefn
26
27 ## @seealso{purelin, logsig}
28
29 ## Author: Michel D. Schmid
30
31
32 function a = tansig(n)
33
34   ## see MATLAB(TM) online help
35   a = 2 ./ (1 + exp(-2*n)) - 1;
36   ## attention with critical values ==> infinite values
37   ## must be set to 1
38   i = find(!finite(a));
39   a(i) = sign(n(i));
40
41 endfunction