Я пытаюсь придумать реализацию Python для модели Фитцхью-Нагумо.
V_t = V_xx + V(V - a)(1 - V) - W + I
W_t = eps(beta*V - W)
Используя действительно простой код для eps = 0.05, a = 0.2, beta = 5, I = .1
, я могу численно решить систему (без V_xx
), но я не могу понять, как реализовать пространственное рассеивание.
def func_v(v, w):
return v * (1 - v) * (v - .2) - w + .1
def func_w(v, w):
return .05 * (5 * v - w)
def get_yn(t0, v, w, h, t):
while t0 < t:
w += h * func_w(v, w)
v += h * func_v(v, w)
t0 += h
return v, w
Я знаю, что формула центрированной разности для производных второго порядка
V_xx(x_i, t) = (V(x_i+1, t) - 2*V(x_i, t) + V(x_i-1, t)) / dx^2
но как мне реализовать разные значения для x_i
(скажем, от x=0
до 10
), чтобы волна распространялась вдоль оси x?
В результате должна получиться волна, которая распространяется примерно так.
V_xx
? - person vlovero   schedule 16.12.2019