python - numpy 和 scipy 结果不规则

标签 python numpy scipy

我正在 Python 中创建有限元代码,该代码依赖于 numpy 和 scipy 进行数组、矩阵和线性代数计算。最初生成的代码似乎正在工作,我得到了我需要的结果。

但是,对于其他一些功能,我需要调用一个多次执行分析的函数,当我查看结果时,它们与第一次调用完全不同,尽管两者都是使用相同的输入调用的。我唯一能想到的是垃圾收集不起作用并且内存正在损坏。

这里是使用的过程:

  1. 调用设置文件生成模型数据库:mDB = F0(inputs)
  2. 使用一些变量输入调用第一个分析:r1 = F1(mDB, v1)
  3. 使用第 2 步中的相同变量重复第一次分析:r2 = F1(mDB, v1)

由于没有任何变化,我希望步骤#2 和步骤#3 的结果是相同的,但是,我的代码产生不同的结果(使用 matplotlib 验证)。

我正在使用:

Windows 7 上的 Python 2.7(32 位),带有 numpy-1.6.2 和 scipy-0.11.0

最佳答案

如果您的结果对舍入误差敏感(例如,您的代码中有一些编程错误),那么通常浮点结果是不可重现的。由于现代编译器优化代码的方式已经发生这种情况,因此它不需要例如访问未初始化的内存。

请参阅: http://www.nccs.nasa.gov/images/FloatingPoint_consistency.pdf

另一种可能的可能性是您的计算函数修改了输入数据。 您在上面评论中提到的观点并不排除这种可能性, 因为 Python 是按引用传递的。

关于python - numpy 和 scipy 结果不规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13871466/

相关文章:

python - 如何在 python 中求余数或整数?

python - 开放量子系统建模

python - 在python中添加两个不同形状的 `csc`稀疏矩阵

Python:从 Python 中的 wav 文件计算随时间变化的频率?

python - 使用 dateutil.parser 解析不完整日期时,如何将日期设置为 1?

python - 问 : Python Spell Checker using NLTK

python - 在 Pandas 中就地合并两个数据框

python - pandas 中是否有相当于 excel 公式的内容

Python:计算多个数组列中的零并有效存储它们

python - 代码优化/减少运行时间