{ "cells": [ { "cell_type": "markdown", "id": "1f0b71a8", "metadata": {}, "source": [ "# Gap junction-coupled FitzHugh-Nagumo Model\n", "\n", "[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/brainpy/examples/blob/main/dynamics_analysis/highdim_gj_coupled_fhn.ipynb)\n", "[![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://kaggle.com/kernels/welcome?src=https://github.com/brainpy/examples/blob/main/dynamics_analysis/highdim_gj_coupled_fhn.ipynb)" ] }, { "cell_type": "code", "execution_count": 1, "id": "bece6b60", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:49:25.128899800Z", "start_time": "2023-07-22T05:49:23.068916200Z" } }, "outputs": [ { "data": { "text/plain": [ "'2.4.3'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import brainpy as bp\n", "import brainpy.math as bm\n", "\n", "# bp.math.set_platform('cpu')\n", "bp.math.enable_x64()\n", "bp.__version__" ] }, { "cell_type": "code", "execution_count": 2, "id": "009f2f88", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:49:25.139407Z", "start_time": "2023-07-22T05:49:25.123611600Z" } }, "outputs": [], "source": [ "class GJCoupledFHN(bp.DynamicalSystem):\n", " def __init__(self, num=2, method='exp_auto'):\n", " super(GJCoupledFHN, self).__init__()\n", "\n", " # parameters\n", " self.num = num\n", " self.a = 0.7\n", " self.b = 0.8\n", " self.tau = 12.5\n", " self.gjw = 0.0001\n", "\n", " # variables\n", " self.V = bm.Variable(bm.random.uniform(-2, 2, num))\n", " self.w = bm.Variable(bm.random.uniform(-2, 2, num))\n", " self.Iext = bm.Variable(bm.zeros(num))\n", "\n", " # functions\n", " self.int_V = bp.odeint(self.dV, method=method)\n", " self.int_w = bp.odeint(self.dw, method=method)\n", "\n", " def dV(self, V, t, w, Iext=0.):\n", " gj = (V.reshape((-1, 1)) - V).sum(axis=0) * self.gjw\n", " dV = V - V * V * V / 3 - w + Iext + gj\n", " return dV\n", "\n", " def dw(self, w, t, V):\n", " dw = (V + self.a - self.b * w) / self.tau\n", " return dw\n", "\n", " def update(self):\n", " tdi = bp.share.get_shargs()\n", " self.V.value = self.int_V(self.V, tdi.t, self.w, self.Iext, tdi.dt)\n", " self.w.value = self.int_w(self.w, tdi.t, self.V, tdi.dt)" ] }, { "cell_type": "code", "execution_count": 3, "id": "283d3ae5", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:49:25.155043700Z", "start_time": "2023-07-22T05:49:25.139407Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" ] } ], "source": [ "def analyze_net(num=2, gjw=0.01, Iext=bm.asarray([0., 0.6])):\n", " assert isinstance(Iext, (int, float)) or (len(Iext) == num)\n", " \n", " model = GJCoupledFHN(num)\n", " model.gjw = gjw\n", " model.Iext[:] = Iext\n", " \n", " # simulation\n", " runner = bp.DSRunner(model, monitors=['V'])\n", " runner.run(300.)\n", " bp.visualize.line_plot(runner.mon.ts, runner.mon.V, legend='V',\n", " plot_ids=list(range(model.num)), show=True)\n", "\n", " # analysis\n", " finder = bp.analysis.SlowPointFinder(f_cell=model,\n", " target_vars={'V': model.V, 'w': model.w})\n", " finder.find_fps_with_gd_method(\n", " candidates={'V': bm.random.normal(0., 2., (1000, model.num)),\n", " 'w': bm.random.normal(0., 2., (1000, model.num))},\n", " tolerance=1e-5,\n", " num_batch=200,\n", " optimizer=bp.optim.Adam(lr=bp.optim.ExponentialDecay(0.05, 1, 0.9999)),\n", " )\n", " finder.filter_loss(1e-8)\n", " finder.keep_unique()\n", "\n", " print('fixed_points: ', finder.fixed_points)\n", " print('losses:', finder.losses)\n", "\n", " _ = finder.compute_jacobians(finder.fixed_points, plot=True)" ] }, { "cell_type": "markdown", "id": "6a3eecdb", "metadata": {}, "source": [ "## 4D system" ] }, { "cell_type": "code", "execution_count": 4, "id": "6b0b77db", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:49:41.277566200Z", "start_time": "2023-07-22T05:49:25.155043700Z" }, "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ac94c47a569a4d3a8739ad263156209f", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3000 [00:00" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Optimizing with Adam(lr=ExponentialDecay(0.05, decay_steps=1, decay_rate=0.9999), last_call=-1), beta1=0.9, beta2=0.999, eps=1e-08) to find fixed points:\n", " Batches 1-200 in 0.81 sec, Training loss 0.0002788616\n", " Batches 201-400 in 0.48 sec, Training loss 0.0002076722\n", " Batches 401-600 in 0.58 sec, Training loss 0.0001604245\n", " Batches 601-800 in 0.52 sec, Training loss 0.0001257214\n", " Batches 801-1000 in 0.55 sec, Training loss 0.0000993401\n", " Batches 1001-1200 in 0.25 sec, Training loss 0.0000791463\n", " Batches 1201-1400 in 0.64 sec, Training loss 0.0000634978\n", " Batches 1401-1600 in 0.35 sec, Training loss 0.0000512977\n", " Batches 1601-1800 in 0.57 sec, Training loss 0.0000417576\n", " Batches 1801-2000 in 0.41 sec, Training loss 0.0000342319\n", " Batches 2001-2200 in 0.50 sec, Training loss 0.0000282288\n", " Batches 2201-2400 in 0.59 sec, Training loss 0.0000234155\n", " Batches 2401-2600 in 0.50 sec, Training loss 0.0000195315\n", " Batches 2601-2800 in 0.58 sec, Training loss 0.0000164139\n", " Batches 2801-3000 in 0.40 sec, Training loss 0.0000138706\n", " Batches 3001-3200 in 0.59 sec, Training loss 0.0000118313\n", " Batches 3201-3400 in 0.33 sec, Training loss 0.0000101996\n", " Batches 3401-3600 in 0.72 sec, Training loss 0.0000088474\n", " Stop optimization as mean training loss 0.0000088474 is below tolerance 0.0000100000.\n", "Excluding fixed points with squared speed above tolerance 1e-08:\n", " Kept 372/1000 fixed points with tolerance under 1e-08.\n", "Excluding non-unique fixed points:\n", " Kept 1/372 unique fixed points with uniqueness tolerance 0.025.\n", "fixed_points: {'V': array([[-1.17315378, -0.73803683]]), 'w': array([[-0.59144223, -0.04754604]])}\n", "losses: [1.781621e-27]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\adadu\\miniconda3\\envs\\brainpy\\lib\\site-packages\\jax\\_src\\numpy\\array_methods.py:329: FutureWarning: The arr.split() method is deprecated. Use jax.numpy.split instead.\n", " warnings.warn(\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "analyze_net(num=2, gjw=0.1, Iext=bm.asarray([0., 0.6]))" ] }, { "cell_type": "code", "execution_count": 5, "id": "50d52eef", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:49:55.550206Z", "start_time": "2023-07-22T05:49:41.277566200Z" }, "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "930988f883074ece9f68bcca692ea2a5", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3000 [00:00" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Optimizing with Adam(lr=ExponentialDecay(0.05, decay_steps=1, decay_rate=0.9999), last_call=-1), beta1=0.9, beta2=0.999, eps=1e-08) to find fixed points:\n", " Batches 1-200 in 0.42 sec, Training loss 0.0002744392\n", " Batches 201-400 in 0.63 sec, Training loss 0.0002038559\n", " Batches 401-600 in 0.27 sec, Training loss 0.0001579408\n", " Batches 601-800 in 0.71 sec, Training loss 0.0001249296\n", " Batches 801-1000 in 0.34 sec, Training loss 0.0001004665\n", " Batches 1001-1200 in 0.60 sec, Training loss 0.0000817813\n", " Batches 1201-1400 in 0.45 sec, Training loss 0.0000672077\n", " Batches 1401-1600 in 0.48 sec, Training loss 0.0000557249\n", " Batches 1601-1800 in 0.48 sec, Training loss 0.0000465356\n", " Batches 1801-2000 in 0.45 sec, Training loss 0.0000391051\n", " Batches 2001-2200 in 0.58 sec, Training loss 0.0000330272\n", " Batches 2201-2400 in 0.46 sec, Training loss 0.0000280838\n", " Batches 2401-2600 in 0.61 sec, Training loss 0.0000240266\n", " Batches 2601-2800 in 0.36 sec, Training loss 0.0000206586\n", " Batches 2801-3000 in 0.64 sec, Training loss 0.0000178943\n", " Batches 3001-3200 in 0.28 sec, Training loss 0.0000155499\n", " Batches 3201-3400 in 0.65 sec, Training loss 0.0000135563\n", " Batches 3401-3600 in 0.29 sec, Training loss 0.0000119020\n", " Batches 3601-3800 in 0.63 sec, Training loss 0.0000105507\n", " Batches 3801-4000 in 0.39 sec, Training loss 0.0000094129\n", " Stop optimization as mean training loss 0.0000094129 is below tolerance 0.0000100000.\n", "Excluding fixed points with squared speed above tolerance 1e-08:\n", " Kept 535/1000 fixed points with tolerance under 1e-08.\n", "Excluding non-unique fixed points:\n", " Kept 1/535 unique fixed points with uniqueness tolerance 0.025.\n", "fixed_points: {'V': array([[-1.19613886, -1.14106509]]), 'w': array([[-0.62017365, -0.55133897]])}\n", "losses: [1.17769156e-15]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "analyze_net(num=2, gjw=0.1, Iext=bm.asarray([0., 0.1]))" ] }, { "cell_type": "markdown", "id": "aa71bc3b", "metadata": {}, "source": [ "## 8D system" ] }, { "cell_type": "code", "execution_count": 6, "id": "760f8813", "metadata": { "ExecuteTime": { "end_time": "2023-07-22T05:50:03.004006400Z", "start_time": "2023-07-22T05:49:55.550206Z" }, "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "da9f05f7b67046d592134ecee185e968", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/3000 [00:00" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Optimizing with Adam(lr=ExponentialDecay(0.05, decay_steps=1, decay_rate=0.9999), last_call=-1), beta1=0.9, beta2=0.999, eps=1e-08) to find fixed points:\n", " Batches 1-200 in 0.41 sec, Training loss 0.0002981253\n", " Batches 201-400 in 0.20 sec, Training loss 0.0002175304\n", " Batches 401-600 in 0.21 sec, Training loss 0.0001681047\n", " Batches 601-800 in 0.22 sec, Training loss 0.0001327457\n", " Batches 801-1000 in 0.24 sec, Training loss 0.0001062666\n", " Batches 1001-1200 in 0.20 sec, Training loss 0.0000860732\n", " Batches 1201-1400 in 0.20 sec, Training loss 0.0000704338\n", " Batches 1401-1600 in 0.21 sec, Training loss 0.0000581533\n", " Batches 1601-1800 in 0.22 sec, Training loss 0.0000483691\n", " Batches 1801-2000 in 0.22 sec, Training loss 0.0000405031\n", " Batches 2001-2200 in 0.22 sec, Training loss 0.0000341309\n", " Batches 2201-2400 in 0.22 sec, Training loss 0.0000289916\n", " Batches 2401-2600 in 0.22 sec, Training loss 0.0000248071\n", " Batches 2601-2800 in 0.22 sec, Training loss 0.0000213434\n", " Batches 2801-3000 in 0.22 sec, Training loss 0.0000184814\n", " Batches 3001-3200 in 0.23 sec, Training loss 0.0000161170\n", " Batches 3201-3400 in 0.29 sec, Training loss 0.0000141462\n", " Batches 3401-3600 in 0.20 sec, Training loss 0.0000125133\n", " Batches 3601-3800 in 0.20 sec, Training loss 0.0000111212\n", " Batches 3801-4000 in 0.20 sec, Training loss 0.0000099064\n", " Stop optimization as mean training loss 0.0000099064 is below tolerance 0.0000100000.\n", "Excluding fixed points with squared speed above tolerance 1e-08:\n", " Kept 313/1000 fixed points with tolerance under 1e-08.\n", "Excluding non-unique fixed points:\n", " Kept 2/313 unique fixed points with uniqueness tolerance 0.025.\n", "fixed_points: {'V': array([[-1.17876245, -1.17875408, -1.1875546 , -0.81695988],\n", " [-1.17414082, -1.17455959, -1.17427155, -0.79030303]]), 'w': array([[-0.5975094 , -0.59751575, -0.59054519, -0.14463357],\n", " [-0.59622882, -0.59590929, -0.59613388, -0.14083089]])}\n", "losses: [3.68611836e-09 8.30820343e-09]\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "analyze_net(num=4, gjw=0.1, Iext=bm.asarray([0., 0., 0., 0.6]))" ] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "kernelspec": { "display_name": "brainpy", "language": "python", "name": "brainpy" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 5 }