Мне нужно решить набор дифференциальных уравнений задержки, и я хочу использовать розовый шум в этих уравнениях.Задержка дифференциальных уравнений с розовым шумом
Я попытался сделать это с пакетом Pydelay для Python, но проблема в том, что мне нужно либо генерировать шум, а затем передавать его в симуляцию или генерировать шум во время моделирования. Первый вариант не работает, потому что параметры, указанные в этом решателе, должны быть постоянными, и со временем изменяется шум. Второй вариант не работает, потому что Pydelay поддерживает только генерирование шума, в котором каждый образец не зависит от других, что не относится к розовому шуму.
Кто-нибудь знает, как это сделать?
Вот мой код (мне нужно I1 и I2 быть розовые шумы, не постоянные, как в моем коде):
# -*- coding: utf-8 -*-
"""
Created on Tue Aug 2 15:35:15 2016
@author: kasienka
"""
#!python
import pydelay
from time import time
import math
import numpy as np
from numpy import fft
from scipy import integrate
import matplotlib as mpl
mpl.use('Agg')
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.interpolate import griddata
import sys
import pylab as pl
from pydelay import dde23
# define the equations
eqns = {
'y1' : 'I1 - y1(t-tau) + epsilon * pow(y2(t-tau), 1.1)',
'y2' : 'I2 - y2(t-tau) + epsilon * pow(y1(t-tau), 1.1)'
}
#define the parameters
params = {
'I2' : 0.2,
'I1' : 0.4,
'tau': 1.31,
'epsilon': 0.2
}
# Initialise the solver
dde = dde23(eqns=eqns, params=params)
# set the simulation parameters
dde.set_sim_params(tfinal=50, dtmax=0.0001)
histdic = {
'y1': lambda t: 0.2,
'y2': lambda t: 0.4
}
dde.hist_from_funcs(histdic, 1000)
# run the simulator
dde.run()
p1 = []
p2 = []
x1 = []
x2 = []
czasy = np.linspace(0, 50, 10000)
for el in times:
x10 = dde.sol_spl(el)['y1']
x20 = dde.sol_spl(el)['y2']
prob1 = 1.0/(1 + 3.14**(-(x10 - x20)))
prob2 = 1.0/(1 + 3.14**(-(x20 - x10)))
p1.append(prob1)
p2.append(prob2)
x1.append(x10)
x2.append(x20)
fig = pl.figure()
pl.plot(times, p1, label = '$p_1$')
pl.plot(times, p2, label = '$p_2$')
pl.xlabel('$time$')
pl.ylabel('$probabilities$')
pl.legend()
pl.savefig(sys.argv[1])
Как вы думаете, добавление рабочего кода поможет описать проблему? – periphreal
Так возникает проблема генерации * розового шума *? –