FitzHugh-Nagumo 模型连续-MATLAB仿真

  1. FitzHugh-Nagumo 模型微分方程、
function dYdt = fhn_model(Y, a, b, c, I)
    V = Y(1);
    W = Y(2);
    dVdt = V - V^3 / 3 - W + I; 
    %表示膜电位的变化率。这个方程包含了两个部分,第一部分 V - V^3 / 3 描述了膜电位的变化,第二部分 - W + I 描述了外部刺激对膜电位的影响。
    dWdt = c * (V + a - b*W);
 %表示激活变量的变化率。这个方程也包含了两个部分,第一部分 V + a 描述了膜电位对激活变量的影响,第二部分 - b*W 描述了激活变量自身的耗散,其中 b 是耗散系数,c 是一个比例系数。
    dYdt = [dVdt; dWdt];
end
  1. FitzHugh-Nagumo 模型脉冲响应微分方程
    function dYdt = fhn_model_impulse(Y, a, b, c, I)
        V = Y(1);
        W = Y(2);    
        dVdt = V - V^3 / 3 - W + I;
        dWdt = c * (V + a - b*W);
        dYdt = [dVdt; dWdt];
        if rand < 0.01 % 添加脉冲激励
            dYdt = dYdt + [1; 0];
        end
    end
    %该模型模拟神经元的放电行为。
  1. MATLAB仿真测试
clc;clear
% FitzHugh-Nagumo 模型参数
a = 0.7;
b = 0.8;
c = 0.08;
I = 0.5;
% 定义函数进行时间积分
T = [0 250];            %定义了时间范围 [0, 250],用于指定积分的时间区间
initialY = [-0.8; 0.8]; % 初始膜电位 ( V ) 设置为 -0.8,初始恢复变量 ( W ) 设置为 0.8。
options = odeset('RelTol', 1e-6);       %定义了ODE求解器的选项。在这里,使用了相对容差为 ( 1 \times 10^{-6} ) 的选项
[t, Y] = ode45(@(t, Y) fhn_model(Y, a, b, c, I), T, initialY, options);     %使用ODE45函数对FHN模型进行时间积分
% 提取状态变量
V = Y(:, 1);    %提取时间积分得到膜电位 ( V ) 的值
W = Y(:, 2);    %提取时间积分得到恢复变量 ( W )  的值
%-------------FHN神经元放电图-------------
[t_impulse, Y_impulse] = ode45(@(t, Y) fhn_model_impulse(Y, a, b, c, I), T, initialY, options);
figure(2);
plot(t_impulse, Y_impulse(:, 1), 'r');
ylabel('膜电位V')
xlabel('时间T')
grid minor
grid on
set(gca,'linewidth',0.5,'fontsize',12,'fontname','STFangSong');
ylim([-2.5,2.5])
%--------- FitzHugh-Nagumo模型相图绘制相图--------------
figure(1);
plot(V, W)
xlabel('膜电位V')
ylabel('恢复变量W')
grid minor
grid on
set(gca,'linewidth',0.5,'fontsize',12,'fontname','STFangSong');
% ------------ 绘制零斜率线-----------------
figure(3);
v = @(V) -(V - V.^3 / 3 + I);
w = @(V) -(V + a) / b;
hold on;
xlabel('膜电位V');
ylabel('恢复变量W');
fplot(v, [-3 3], 'r--');
fplot(w, [-3 3], 'g--');
grid minor
grid on
set(gca,'linewidth',0.5,'fontsize',12,'fontname','STFangSong');
% ---------------膜电势 ( V ) 和恢复变量 ( W ) 随时间变化------------------
figure(4);
plot(t, V, 'b', t, W, 'r');
xlabel('时间T');
ylabel('膜电势(V),恢复变量(W)');
legend('膜电势(V)', '恢复变量(W)');
grid minor
grid on
set(gca,'linewidth',0.5,'fontsize',12,'fontname','STFangSong');
ylim([-3,3])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值