【问题标题】:high order number in computer simulation计算机模拟中的高阶数
【发布时间】:2015-06-15 16:11:05
【问题描述】:

我编写了一个 Fortran 代码来求解 PDE(如连续性方程),但初始 未知值的顺序为 1.0e20 这意味着我的代码给出无穷大的 NANE(不是数字),因为它是乘以或除以大数字 我该怎么做才能运行如此大的数字?
方程是:泊松方程和类连续性方程

【问题讨论】:

  • 我正在寻找一些数学技术来规范化方程,我想知道是否可以使用这种技术!
  • 你用的是什么物理单位?
  • si(体积、米、冒号、体积/米)
  • 通常建议使用物理(或缩减)单位,使各种数量变为 1 的数量级。但我想如果您使用双精度(64 位),尽管值很大,但一切都会好起来的在你的程序中玩耍:)
  • 非本机扩展精度数字将显着影响性能。在转向这种蛮力方法之前,您应该努力使您的系统正常化以避免大量数字。由于缺乏细节投票结束。

标签: fortran numerical pde


【解决方案1】:

您可以使用extended precisionreal*8double precision(64 位浮点表示)作为类型,而不是real(32 位)。这将给出至少 308 的指数范围,而不是较小的 38 范围。

【讨论】:

  • double precision 确定吗?虽然这不能提供您提到的保证。
  • @francescalus: double precision 是另一个同义词。 extended precision 来自我在 1970 年代使用的非品牌 Fortran。除非计算机不使用 IEEE-754 表示,否则 308 范围是一个非常安全的假设。
  • 感谢回复,我正在搜索不使用 real*8(双精度)的数学技术
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
相关资源
最近更新 更多