
Simulación de una Neurona, Problemas con Variables
Publicado por Pedro Maximiliano (2 intervenciones) el 24/08/2015 22:52:36
hola!
Quiero simular el comportamiento del potencial x(t) de una neurona que cumple :
dx/dt = -x +I(t) si x(t) < v_u (valor umbral) donde I(t) es una fuente externa, (que en este caso la supongo constante).
y al llegar al valor umbral v_u , instantáneamente realiza una descarga, hasta quedar en un valor de reseteo v_r
Tengo 2 problemas con el código:
a) las variables globales que definí, las desconoce la función ( ver la función xdot, la variable Ic )
b) En la línea de código r = i+1 (ver al función Nr ) me salta un error de sintaxis, y me señala la identación.
El código es éste:
Quiero simular el comportamiento del potencial x(t) de una neurona que cumple :
dx/dt = -x +I(t) si x(t) < v_u (valor umbral) donde I(t) es una fuente externa, (que en este caso la supongo constante).
y al llegar al valor umbral v_u , instantáneamente realiza una descarga, hasta quedar en un valor de reseteo v_r
Tengo 2 problemas con el código:
a) las variables globales que definí, las desconoce la función ( ver la función xdot, la variable Ic )
b) En la línea de código r = i+1 (ver al función Nr ) me salta un error de sintaxis, y me señala la identación.
El código es éste:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
N = 1; % cantidad de neuronas
v_r = 0; % Potencial de reseteo
v_u = 15; % Potencial umbral
Ic = 20; % Intensidad de corriente
t = 0:0.1:10;
function xdot = f(x,t)
xdot = -x + 20;
endfunction
function Nr = Neuron(T) % Devuelve un vector de potenciales que cumple la ec.
% diff para x < V_u y se resetea a V_r si llega a V_u
z = lsode("f",v_r,T) % Z es la sol de la ec diff; sin la condición Umbral
Nr = zeros(1,length(T))
Nr(1) = v_r
i = 2
while (i < length(T))
if z(i) < v_u
Nr(i) = z (i)
elseif i = length(T)
z(i) = v_r
else % Para los valores de T que me faltan, resuelvo la ec.
% y guardo los datos en una var aux Nr2.
z(i) = v_r
Nr2 = Neuron(T(1:length(T)-i)
r = i+1
while r <length(T) % Comando para unir ambos vectores
Nr (r) = Nr2(r-i)
r = r+1
endwhile
break
i = i+1
endif
endwhile
Neuron = Neuron (t)
plot(t,Neuron)
Valora esta pregunta


0