- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要求解一组延迟微分方程,并且我想在这些方程中使用粉红噪声。
我尝试使用 Python 的 Pydelay 包来完成此操作,但问题是我需要生成噪声然后将其传递给模拟,或者在模拟期间生成噪声。第一个选项不起作用,因为该求解器中指定的参数需要保持不变,并且噪声随着时间的推移而变化。第二个选项不起作用,因为 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])
最佳答案
我假设您想要动态噪声。在这种情况下,您应该首先意识到有几种类型的微分方程具有根本不同的求解器:
时滞微分方程 (DDE) 通常通过以下任一方法求解:
嵌入式多步 Runge-Kutta 方法,其中对过去进行插值(这就是 Pydelay 所做的),
单步积分器,积分步骤除以所有延迟。
随机微分方程 (SDE) 使用简单的单步方法求解(均基于欧拉方法)。多步方法仍然是一个热门话题,而嵌入式方法最近才被提出。
我所知道的所有关于 SDE 的论文(理论和方法;但不可否认,它们并不多),仅考虑白噪声(维纳过程);认识粉红噪音本身就是一个问题。通过快速搜索,我只能找到 a paper on simulating white noise with a white-noise SDE .
随机延迟微分方程 (SDDE) 再次需要特殊的求解器。我对它们不是很熟悉,但显然你至少继承了 DDE 和 SDE 的所有限制。因此,最好的求解器是单步方法,其中积分步骤除以所有延迟。快速浏览一下文献,确实是这样做的。请注意,这并不能解决粉红噪声的问题。
正如已经说过的,Pydelay 使用带有插值的多步方法。这不是为正确处理随机性而设计的,也无法正确处理随机性(如果是的话,它已经是 SDE 的一个出色的求解器,即毫不延迟)。相反,它所做的是将多步方法视为单步方法,然后添加噪声。正如 Pydelay 的作者自己所说,这“相当粗糙”。此外,实际使用粉红噪声(即使使用粗略的方法)将需要您重新编程软件,并且可能会导致积分器的误差估计器出现固有问题。我强烈建议不要这样做。即使您成功了,使用高级 DDE 求解器的所有优势(例如自适应步骤)无论如何都会丢失,因此从头开始编写一个新的、更简单的积分器会更容易。
如果您确实需要这样做,我建议首先了解如何使用粉红噪声求解 SDE,然后将该方法扩展到 SDDE(希望这相当简单)。
<小时/>¹ 如果您想要观测噪声,这很简单:只需将其添加到您的解决方案中即可。
关于python - 带有粉红噪声的延迟微分方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41634442/
我想使用 li 和 ul 制作一个多级下拉列表,以便显示我博客中按年和月排序的所有文章。我希望我的下拉菜单看起来像 Google Blogspot 下拉菜单: 这是我的 CSS 和 HTML 代码 u
我在 Win 7 64 机器上将 CodeBlocks 与 gcc 4.7.2 和 gmp 5.0.5 结合使用。开始使用 gmpxx 后,我看到一个奇怪的段错误,它不会出现在 +、- 等运算符中,但
我正在使用 tern 为使用 CodeMirror 运行的窗口提供一些增强的智能感知,它工作正常,但我遇到了一个问题,我想添加一些自定义“types”,可以这么说,这样下拉列表中它们旁边就有图标了。我
我正在尝试让我的 PC 成为 Android 2.3.4 设备的 USB 主机,以便能够在不需要实际“附件”的情况下开发 API。为此,我需要将 PC 设置为 USB 主机和“设备”(在我的例子中是运
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我在设置服务器方面几乎是个新手,但遇到了一个问题。我有一个 Ubuntu 16.04 VPS 并安装了 Apache2 和 Tomcat7。我正在为 SSL 使用 LetsEncrypt 和 Cert
我在一个基于谷歌地图的项目上工作了超过 6 个月。我使用的是 Google Maps API V1 及其开发人员 API key 。当我尝试发布应用程序时,我了解到 Google API V1 已被弃
我是 Python 的新手,所以如果我对一些简单的事情感到困惑,请原谅。 我有一个这样的对象: class myObject(object): def __init__(self):
这个问题已经有答案了: How can I access object properties containing special characters? (2 个回答) 已关闭 9 年前。 我正在尝
我有下面的 CSS。我想要的是一种流体/液体(因为缺乏正确的术语)css。我正在为移动设备开发,当我改变模式时 从纵向 View 到陆地 View ,我希望它流畅。现在的图像 在陆地 View 中效
我正在尝试使用可以接受参数的缓存属性装饰器。 我查看了这个实现:http://www.daniweb.com/software-development/python/code/217241/a-cac
这个问题在这里已经有了答案: Understanding slicing (36 个答案) 关闭 6 年前。 以a = [1,2,3,4,5]为例。根据我的直觉,我认为 a[::-1] 与 a[0:
mysqldump -t -u root -p mytestdb mytable --where=datetime LIKE '2014-09%' 这就是我正在做的事情,它会返回: mysqldum
我正在制作销售税计算器,除了总支付金额部分外,其他一切都正常。在我的程序中,我希望能够输入一个数字并获得该项目的税额我还希望能够获得支付的总金额,包括交易中的税金。到目前为止,我编写的代码完成了所有这
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
我是否必须进行任何额外的设置才能让 apache-airflow 在任务失败时向我发送电子邮件。我的配置文件中有以下内容(与默认值保持不变): [email] email_backend = airf
这个问题在这里已经有了答案: What does the $ symbol do in VBA? (5 个回答) 3年前关闭。 使用返回字符串(如 Left)的内置函数有什么区别吗?或使用与 $ 相同
我有一个用VB6编写的应用程序,我需要使用一个用.NET编写的库。有什么方法可以在我的应用程序上使用该库吗? 谢谢 最佳答案 这取决于。您可以控制.NET库吗? 如果是这样,则可以修改您的库,以便可以
当我创建一个以 ^ 开头的类方法时,我尝试调用它,它给了我一个错误。 class C { method ^test () { "Hi" } } dd C.new.test; Too m
我已经使用 bower 安装了 angularjs 和 materialjs。 凉亭安装 Angular Material 并将“ngMaterial”注入(inject)我的应用程序,但出现此错误。
我是一名优秀的程序员,十分优秀!