matlab解耦合方程,如何在Matlab中求解耦合随机微分方程

我有单一的Hindmarsh-Rose(HR)神经元模型如下

x' = y - a*x^3 + b*x^2 -z + I0 + I1*cos*w*t + D*Zyi(t);

y' = c - d*x^2 -y;

z' = r[s(x - x0) - z ];

其中a,b,I1,I0,D,c,d,r,s,x0是参数 .

我想改变"w"(在I'* coswt的x'中)并包括具有D强度的白高斯噪声(Zyi(t))并捕获范围[20到60]的频率灵敏度 . 这是随机共振的问题,其中系统依赖于频率,并且在特定频率处存在可以通过SNR捕获的相干性(在这种情况下为40) .

最初我只是使用ODE45来解决系统,当它是确定性的(无噪声项,即Zyi(t))并且它产生了正确的结果,但是当加入高斯噪声时无法再现精确的结果,即无法捕获不同模拟的频率灵敏度 .

然后我使用SDEToolbox在Matlab中解决它 . 我在工具箱中使用了Euler-Maruyama和Milstein in-build Algorithms但没有用 .

function [] = sd1

a=1;

b=3;

c=1;

d=5;

s=4;

r=0.006;

x0=-1.6;

I1=0.2;

I0=1.31; %for I0=1.32 and no noise term all neurons fire.

T = 0:0.01:2000;

xi = [0.1 0.01 0.1]; %initial conditions

zyi = 0.2 * randn; %Noise term with D=0.2

f = @(T,X)[X(2) - a*X(1)^3 + b * X(1)^2 - X(3) + I0 + (I1 * cos(40 * T)) + zyi;c - d*X(1)^2 - X(2) ; r*(s*(X(1) - x0) - X(3))];

y = sde_euler(f,g,T,xi); % Integrate

figure;

plot(T,y(:,1));

end

这确实产生了一些结果但是对于“w”的不同值,它不会产生精确的结果 . 即如果“w”较小(> 20且<40),那么产生的尖峰数应该更少,并且对于w在40和50之间(大约),否则 . 神经元尖峰应该是最大的,并且对于“w”> 50和“w”<60,神经元尖峰应该再次减少 . 任何人都可以告诉我如何捕获它 .

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值