matlab解耦合方程,如何在Matlab中求解耦合随机微分方程
我有單一的Hindmarsh-Rose(HR)神經(jīng)元模型如下
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是參數(shù) .
我想改變"w"(在I'* coswt的x'中)并包括具有D強(qiáng)度的白高斯噪聲(Zyi(t))并捕獲范圍[20到60]的頻率靈敏度 . 這是隨機(jī)共振的問(wèn)題,其中系統(tǒng)依賴于頻率,并且在特定頻率處存在可以通過(guò)SNR捕獲的相干性(在這種情況下為40) .
最初我只是使用ODE45來(lái)解決系統(tǒng),當(dāng)它是確定性的(無(wú)噪聲項(xiàng),即Zyi(t))并且它產(chǎn)生了正確的結(jié)果,但是當(dāng)加入高斯噪聲時(shí)無(wú)法再現(xiàn)精確的結(jié)果,即無(wú)法捕獲不同模擬的頻率靈敏度 .
然后我使用SDEToolbox在Matlab中解決它 . 我在工具箱中使用了Euler-Maruyama和Milstein in-build Algorithms但沒(méi)有用 .
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
這確實(shí)產(chǎn)生了一些結(jié)果但是對(duì)于“w”的不同值,它不會(huì)產(chǎn)生精確的結(jié)果 . 即如果“w”較小(> 20且<40),那么產(chǎn)生的尖峰數(shù)應(yīng)該更少,并且對(duì)于w在40和50之間(大約),否則 . 神經(jīng)元尖峰應(yīng)該是最大的,并且對(duì)于“w”> 50和“w”<60,神經(jīng)元尖峰應(yīng)該再次減少 . 任何人都可以告訴我如何捕獲它 .
總結(jié)
以上是生活随笔為你收集整理的matlab解耦合方程,如何在Matlab中求解耦合随机微分方程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle创建哈希索引,ORACLE1
- 下一篇: matlab离散信号幅频相频特性,信号幅