добавление шума к динамике восстановления в связанной нелинейной оде - PullRequest
0 голосов
/ 01 апреля 2019

Я хотел бы добавить шум к нелинейно-связанной системе ОДУ (модель Фитцхью-Нагумо). Я добавил гауссовский белый шум на вход (см. Код: добавление шума в \ dot (V), который является динамикой напряжения), и я хотел бы получить аналогичные «зубчатые» пики, когда добавляю шум в переменную восстановления (\ dot ( ж)).

Однако я использую более или менее ту же процедуру для добавления шума в переменную восстановления, хотя мне пришлось уменьшить сигму. В результате я получаю переменный результат, но не "зубчатые" пики, как мне хотелось бы видеть. До сих пор я не смог выяснить, как изменить масштаб системы, чтобы получить аналогичное моделирование с шумом для динамики напряжения и динамики восстановления.

Код для добавления гауссовского белого шума к динамике напряжения (разница между кодом - «сигма» и место, где шум добавляется в Forward Euler):

%% Parameters
%Time vector for integration
dt = 0.1;
tend = (3/1e-2); %make sure to capture some spikes
t = 0:dt:tend;

%simulations
nsimu = 20;

%Initial values
V0 = -1.5;
w0 = -3/8;

%initial values vectors
V = zeros(1, length(t));
V(1) = V0;
w = zeros(1, length(t));
w(1) = w0;

%input
Iapp = 0.3303;

%noise
sigma = 1.0;
nsimu = 50;
eta = zeros(1,length(t));


%% Functions
dV = @(t, V, w) V - V^3/3 - w + Iapp;
dw = @(t, V, w) 0.08*(V + 0.7 - 0.8* w);

%% Adding white noise on input

for m = 1:nsimu

    %Generate noise vector
    for i = 1:length(t)-1
        eta(i+1) = eta(i) + sigma*sqrt(dt)*randn;
    end

    %Forward Euler + white noise
    for ii = 1:length(eta)-1
        w(ii+1) = w(ii) + dt * dw(t, V(ii), w(ii)); 
        V(ii+1) = V(ii) + dt * dV(t, V(ii), w(ii)) + dt*eta(ii);
    end

    plot(t, V, 'k-', 'LineWidth', 1.5)
    drawnow

end

Код для добавления шума в переменную восстановления `w '. (Довольно похоже на предыдущий код ... но это требует работы)

%% Parameters
%Time vector for integration
dt = 0.1;
tend = (3/1e-2); %make sure to capture some spikes
t = 0:dt:tend;

%simulations
nsimu = 20;

%Initial values
V0 = -1.5;
w0 = -3/8;

%initial values vectors
V = zeros(1, length(t));
V(1) = V0;
w = zeros(1, length(t));
w(1) = w0;

%input
Iapp = 0.3303;

%noise
sigma = 1e-3;
nsimu = 50;
eta = zeros(1,length(t));


%% Functions
dV = @(t, V, w) V - V^3/3 - w + Iapp;
dw = @(t, V, w) 0.08*(V + 0.7 - 0.8* w);

%% Adding white noise on input

for m = 1:nsimu

    %Generate noise vector
    for i = 1:length(t)-1
        eta(i+1) = eta(i) + sigma*sqrt(dt)*randn;
    end

    %Forward Euler + white noise
    for ii = 1:length(eta)-1
        w(ii+1) = w(ii) + dt * dw(t, V(ii), w(ii)) + dt*eta(ii); 
        V(ii+1) = V(ii) + dt * dV(t, V(ii), w(ii));
    end

    plot(t, V, 'k-', 'LineWidth', 1.5)
    drawnow

end

Результатом обоих кодов должно стать возмущенное моделирование динамики системы. Симуляция шума на w' should appear the same as the simulation of noise on V '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...