- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于二阶 ODE(python 中的 dopri5 方法),下面的代码总是会导致错误:C:\Users\MY\Anaconda3\lib\site-packages\scipy\integrate\_ode.py: 1019:用户警告:dopri5:需要更大的 nmax
。我已经更改了参数,但似乎没有任何帮助。即使设置
self.messages.get(idid, 'Unexpected idid=%s' % idid))nsteps=100000
也不起作用。除了增加nsteps
之外,还有其他方法可以解决这个问题吗?
from scipy.integrate import ode
import numpy as np
def fun(t, y):
return np.array([y[1], -3/t*y[1] + 7/(t**6)*y[0]])
yinit = np.array([0.01, 0.2])
dt = 0.01
t_stop = 2
solver = ode(fun).set_integrator('dopri5', nsteps=100000).set_initial_value(yinit)
solver.t = 0.001
t_RK4_sci = [0]
x_RK4_sci = [yinit]
while solver.successful() and solver.t < t_stop:
solver.integrate(solver.t+dt, step=True)
t_RK4_sci.append(solver.t)
x_RK4_sci.append(solver.y)
t_RK4_sci = np.array(t_RK4_sci)
x_RK4_sci = np.array(x_RK4_sci)
最佳答案
放一个
print t,y
作为 fun
中的第一行看到您的解决方案在使用非常小的步长时迅速爆炸。该日志的最后几行是
0.00100025397168 [ 2.57204893e+289 6.79981963e+298]
0.00100025397168 [ 2.57204893e+289 6.79981963e+298]
0.00100025397168 [ 2.57204893e+289 6.79981964e+298]
0.00100025397168 [ 2.57204893e+289 6.79981964e+298]
0.00100025397168 [ 2.57204897e+289 6.79981974e+298]
0.00100025397168 [ 2.57204899e+289 inf]
0.00100025397168 [ inf nan]
0.00100025397168 [ nan nan]
0.00100025397168 [ nan nan]
0.00100025397168 [ nan nan]
0.00100025397168 [ 2.57204894e+289 6.79981966e+298]
0.00100025397168 [ 2.57204894e+289 inf]
0.00100025397168 [ inf nan]
0.00100025397168 [ nan nan]
0.00100025397168 [ nan nan]
0.00100025397168 [ nan nan]
/usr/lib/python2.7/dist-packages/scipy/integrate
/_ode.py:1018: UserWarning: dopri5: step size becomes too small
self.messages.get(idid, 'Unexpected idid=%s' % idid))
要查看它的数学方面,请观察初始 Lipschitz 常数位于 L=1e+18
的某处。 .
必须遵守数值积分的有用步长 L*dt < 10
,可能是一个更小的上限,以保持在显式方法的 A 稳定性区域内。
从局部到全局误差的放大率为(exp(L*T)-1)
, 其中T
是积分区间的长度。这意味着只能乐观地预期有意义的结果 L*T < 50
, 这给出了 T<5e-17
.
在这些理论限制下,dopri5 积分器在实践中证明非常稳健,因为它仅在 T=2.5e-7
处退出。 .
欧拉形式的微扰
t²·y'' + 3t·y' - 7/t0^4·y = 0
在
范围内给出初始增长(t/t0) ^ 3e6
并且由于最大的双倍值在 10^300
左右大约在
t/t0 = 10 ^ 1e-4 = 1.00023028502 or t=0.00100023028502
这是最接近数值积分退出的位置,因此可能是真正的原因。 (更好的界限是 10^(308/2.6e6)=1.00027280498
。)
不仅这个微分方程有一个非常大的 Lipschitz 常数,因此表现不佳或僵硬,而且就欧拉方程的近似值而言,精确解的增长速度如此之快,超过了 double
。数值积分失效时的范围。也就是说,即使是像隐式积分器这样更好的方法也不会给出更好的结果。
关于python - 二阶 ODE dopri5 python UserWarning : larger nmax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34584609/
我正在编写我的 servlet 程序并使用 jconsole 和 jmap 来监视其内存状态。我发现当我的程序运行时,内存池“PS Old Gen”变得越来越大,最后我的 servlet 无法响应任何
我正在执行从 tfs.visualstudio 到内部部署 2012 服务器的 TFS 集成迁移。我遇到了一个包含多个超过 1 MB 的二进制文件的特定变更集的问题,其中一些是 15-16 MB。 [
考虑一个带有内置整型常量的 Rust 程序 const N: u64和运行时整数值 x: u64 。我想匹配x这样值 x N分别。我的第一次尝试如下所示: const N: u64 = 3; mat
我不确定为什么,但我在使用 OG Debugger 时不断收到此警告并且 Facebook 没有加载正确的错误。它告诉我图像不够大,但图像是 404x404px,所以我不确定它的预期是什么,因为它符合
我在 PostgreSQL 中有一个包含一个数字列的表,我有一个给定的数字 x . 如果x在表格中,我想要所有数字 >= x . 如果x不在表格里,我要所有的数字> x和最大的数字 12 UNION
我想为我的用户提供显示某些 的可能性字体大小大于系统默认值的元素。 documentation仅提供该样式的编号。 我想显示带有 web-css“大”或“更大”值的文本,或者可能是 的 140%。原
您好,新年快乐, 我正在开发内核模块。有必要对某些参数进行数值计算才能正确设置设备。该函数工作完美,但 gcc 编译器(我正在使用 kbuild)给了我警告: warning: the frame s
我正在解决一些关于图表的问题。它需要存储 N 个节点的权重(N。如果一个节点连接到几乎所有其他节点,这是不好的,如果连接到几个节点,则便宜 删除边对于大社区来说也是昂贵的(在最坏的线性时间内,一个
我正在尝试实现一个读取图像宽度和高度的脚本,如果图像高度大于 600,则将 html div 的高度设置为 600。如果高度小于 600,则 div 的高度将是图像的高度。 这是我一直在尝试的。 Ja
我想用 while 循环测量计算时间。 我正在使用 C99 版本进行编程。 我的代码如下: struct timeval startingTime,endingTime; gettimeofday(&
以下算法返回数组中前一个较大的元素。它来自 these 的第 11 页笔记。 // Input: An array of numeric values a[1..n] // Returns: An a
我需要将科学信息存储在数据库 (sql server) 中。在“小于”、“大于”是信息的一部分的数据库中存储值的最佳方式是什么。 例子: 患者编号:123变异率:<3% 患者编号:999突变率:3%
在 Excel 中,是否有一个 native 函数可以返回两个值中较大的一个?我希望避免使用 IF 函数。如果值得的话,我正在使用 Excel 2010 Beta。 例如: GTR(66,24) 将返
我正在开发一个项目,需要通过 RMI 网络显示一些加密解密。我为此使用 RSA 系统。解密时,我的代码出现以下错误: javax.crypto.BadPaddingException: Message
我已从 Visual Studio 多次部署到 Azure 网站,但从几周前开始我无法再进行部署。我一遍又一遍地收到此错误 Web deployment task failed. (Error des
假设我在 h1 元素中有一个标题(任何元素都可以)。它的内容是动态的(不知道标题的长度)。它应该显示在一行中。 h1 在一个大小有限的 DIV(我们称之为容器)中。 我怎么知道元素 (h1) 是否溢出
我在基于此 real-world example 的小型项目中使用 Redux/sagas 工作流,但这些逻辑并不那么复杂。我应该如何使用更全面的 API(即 Reddit 的 API)而不会使事情变
我收到以下错误 - 显然是在保存模型时 Step = 1799 | Tensorflow Accuracy = 1.0 Step = 1799 | My Accuracy = 0.036335
我已经安装了mysql服务器5.1。当我尝试插入一个大文件时,我的 MySQL 数据库中的 BLOB 字段出现问题。有人有什么建议吗? 提前非常感谢 最佳答案 如何解决此问题: 更改 max_allo
我有以下代码 Can you click me? 目标是我可以点击“你能点击我吗”框并转到 google 并在包含 div 的任何其他地方
我是一名优秀的程序员,十分优秀!