Файл:Fitzhugh-nagumo b = 2.0, separatrix.png

Матеріал з testwiki
Перейти до навігації Перейти до пошуку
Повна роздільність (1260 × 1297 пікселів, розмір файлу: 958 КБ, MIME-тип: image/png)

Цей файл з Вікісховища і може використовуватися в інших проєктах. Далі наведена інформація з його сторінки опису.

Опис файлу

Опис
English:
```python
from matplotlib.widgets import AxesWidget
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

for alpha in [0.0]:
  # Define the parameter values
  a = 0.7
  b = 2.0 # If b < 1.5, then there are stable loops. Else there are no loops.
  tau = 12.5
  R = 0.1
  I_ext_0 = (2/3 + (a-1)/b)/R
  I_ext_1 = (-2/3 + (a+1)/b)/R
  I_ext_min = min(I_ext_0, I_ext_1) - 2.0 / R
  I_ext_max = max(I_ext_0, I_ext_1) + 2.0 / R
  I_ext = I_ext_min * (alpha - 1.0)/(-2.0) + I_ext_max * (alpha + 1.0)/(+2.0)
  # If alpha < 1, then all trajectories fall to a stable equilibrium
  # If alpha > 1, and b < 1.5, then all trajectories fall to a stable loop.

  # Define the system of ODEs
  def system(t, y):
      v, w = y
      dv = v - (v ** 3) / 3 - w + R * I_ext
      dw = (1 / tau) * (v + a - b * w)
      return [-dv, -dw]

  vmin, vmax, wmin, wmax = -2, 2, -2+R*I_ext, 2+R*I_ext

  t_span = [0, 50]
  trajectory_resolution = 30
  initial_conditions = [(x, y) for x in np.linspace(vmin, vmax, trajectory_resolution) for y in np.linspace(wmin, wmax, trajectory_resolution)]
  sols = {}
  for ic in initial_conditions:
      sols[ic] = solve_ivp(system, t_span, ic, dense_output=True, max_step=0.1)

  vs = np.linspace(vmin, vmax, 200)
  v_axis = np.linspace(vmin, vmax, 20)
  w_axis = np.linspace(wmin, wmax, 20)

  v_values, w_values = np.meshgrid(v_axis, w_axis)

  dv = v_values - (v_values ** 3) / 3 - w_values + R * I_ext
  dw = (1 / tau) * (v_values + a - b * w_values)

  fig, ax = plt.subplots(figsize=(16,16))
  # integral curves
  for ic in initial_conditions:
    sol = sols[ic]
    ax.plot(sol.y[0], sol.y[1], color='k', alpha=0.4, linewidth=0.5)

  # vector fields
  arrow_lengths = np.sqrt(dv**2 + dw**2)
  alpha_values = 1 - (arrow_lengths / np.max(arrow_lengths))**0.4
  ax.quiver(v_values, w_values, dv, dw, color='blue', linewidth=0.5, scale=25, alpha=alpha_values)

  # nullclines
  ax.plot(vs, vs - vs**3/3 + R * I_ext,  color="green", alpha=0.4, label="v nullcline")
  ax.plot(vs, (vs + a) / b, color="red", alpha=0.4, label="w nullcline")

  # ax.set_xlabel('v')
  # ax.set_ylabel('w')
  ax.set_title(f'FitzHugh-Nagumo Model\n$b={b:.2f}$\t\t$I_{{ext}} = {I_ext:.2f}}})

  # ax.legend()
  ax.set_xlim(vmin, vmax)
  ax.set_ylim(wmin, wmax)
  ax.set_xticks([])
  ax.set_yticks([])
  plt.show()
```
Час створення
Джерело Власна робота
Автор Cosmia Nebula

Ліцензування

Я, власник авторських прав на цей твір, добровільно публікую його на умовах такої ліцензії:
w:uk:Creative Commons
зазначення авторства поширення на тих же умовах
Ви можете вільно:
  • ділитися – копіювати, поширювати і передавати твір
  • модифікувати – переробляти твір
При дотриманні таких умов:
  • зазначення авторства – Ви повинні вказати авторство, надати посилання на ліцензію і вказати, чи якісь зміни було внесено до оригінального твору. Ви можете зробити це в будь-який розсудливий спосіб, але так, щоб він жодним чином не натякав на те, наче ліцензіар підтримує Вас чи Ваш спосіб використання твору.
  • поширення на тих же умовах – Якщо ви змінюєте, перетворюєте або створюєте іншу похідну роботу на основі цього твору, ви можете поширювати отриманий у результаті твір тільки на умовах такої ж або сумісної ліцензії.

Підписи

Додайте однорядкове пояснення, що саме репрезентує цей файл

Об'єкти, показані на цьому файлі

зображує

981 090 байт

1297 піксель

1260 піксель

Історія файлу

Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.

Дата/часМініатюраРозмір об'єктаКористувачКоментар
поточний02:47, 25 квітня 2023Мініатюра для версії від 02:47, 25 квітня 20231260 × 1297 (958 КБ)wikimediacommons>Cosmia NebulaUploaded while editing "FitzHugh–Nagumo model" on en.wikipedia.org

Така сторінка використовує цей файл: