计算科学

科学家使用计算机解决科学问题的问答

2
内点法相对于线性优化的单纯形法有哪些优缺点?
据我了解,由于线性程序的解法总是出现在其多面体可行集的顶点(如果存在解,并且假设最小化问题,则最佳目标函数值从下面限定),那么如何在线性程序中进行搜索内部可行区域会更好吗?它会收敛更快吗?在什么情况下使用单纯形法优于内点法会更有利?在代码中实现一个比另一个更容易吗?

3
多维度的PDE
我知道,找到PDE近似解的大多数方法都无法随维数扩展,并且Monte Carlo用于需要约100维的情况。 有什么好的方法可以有效地对〜4-10维的PDE进行数值求解?10-100? 除了蒙特卡洛,还有没有其他方法可以随维数扩展?

4
如何处理太多数据?
我们的等离子体动力学模拟通常会产生太多信息。在仿真过程中,我们至少在10个属性上将各种物理属性记录在最大(8192x1024x1024x1500)的网格(x,y,z,t)上。仿真完成后,将处理此信息。有了它,我们 拍电影, 进行傅立叶分析, 计算平均性能。 当研究较小的系统时,尽可能多地进行简单的信息转储就可以了。这使我们可以灵活地与结果进行交互,并在以后决定我们要怎么做。它也使我们能够分配计算资源(CPU时间)来简单地运行仿真。 我们已经开始进行动态傅里叶分析的过程,并且仅对选定范围的长度刻度进行过滤。出于数字原因,有时我们需要解析小于实际所需长度的比例尺,因此在这种情况下,此过滤器会很有帮助。我们还在探索各种并行IO库,例如并行I / O选项,尤其是并行HDF5。 有哪些策略可以使数据处理效率最大化? 快速执行所有分析(不包括后期处理,例如电影和情节)是否有任何好处? 我可以想象这个问题会在其他研究领域出现。例如,您可能需要进行长时间的分子动力学模拟,但是您对发生有趣事件的短暂瞬间感兴趣。或在CFD中,早期开发可能会变慢,但是一旦出现动荡,您可能需要更高的时间分辨率来监视动态。 是否有免费提供的从模拟中收集复杂结果的示例?


3
描述基于代理的模型的最佳实践
我在数学生物学/流行病学方面投入了大量精力,其中大多数建模/计算科学工作仍由ODE集所主导,当然,有时它们是相当复杂的。这些模型的优点之一是它们很容易描述和复制。参数值表,方程式本身以及您已经给了他们所需的一切,以便他们以自己喜欢的任何方式来复制研究。 但是有些更复杂的模型已经开始变得越来越流行。基于代理的模式,特别是似乎都很难在出版物来形容,且难以复制的,因为他们并不一定完全由一组微分方程描述。在以读者理解发生的事情并使它们相对易于复制的方式描述这些模型之后,是否有任何指南(或仅有实践经验)?

1
是否有一种多网格算法可以解决Neumann问题,并且收敛速度与级别数无关?
多重网格方法通常可以在水平上解决Dirichlet问题(例如,点Jacobi或Gauss-Seidel)。当使用连续有限元方法时,组装小诺伊曼问题比组装小Dirichlet问题要便宜得多。诸如BDDC之类的非重叠域分解方法(如FETI-DP)可以解释为在层次上解决“固定”诺伊曼问题的多网格方法。不幸的是,多级BDDC的条件数缩放为 C( 1 + 日志(高H))2 升C(1个+日志⁡(HH))2大号C \left(1 + \log \left(\frac{H}{h}\right)\right)^{2L} 其中是能级数,是粗化率。相反,基于Dirichlet问题的带有平滑器的多网格方法的条件数具有与层数无关的条件数。大号大号LH/小时H/HH/h 有没有办法解决“固定”的诺伊曼问题而又不失去层次独立性的方法?
14 pde  multigrid 

1
MD模拟的复杂性
我是分子动力学(MD)模拟的新手。就模拟时间而言,分子动力学模拟的复杂性是多少?换句话说,如果我想将模拟时间从10纳秒增加到20纳秒,那么对于运行时间的增加我有什么期望?


4
什么是解决混合整数编程问题的最快软件(开源)
我有一个混合整数编程问题。我目前正在使用GLPK作为我的求解器。但是我发现GLPK可以很好地解决线性编程问题,但是对于混合整数编程,它需要更长的时间,因此不符合我们的要求。我正在寻找其他软件。还有其他好的开源工具可以快速解决混合整数编程问题吗?谢谢!

2
为什么计算科学家需要实现自己的std :: complex版本?
许多计算科学较为著名的C ++库如征,Trilinos和deal.II使用标准的C ++模板库头对象std::complex<>,表示复杂的浮点数。 在Jack Poulson 回答有关默认构造函数的问题时,他指出,“出于多种原因” 他std::complex在Elemental中具有自己的实现。那是什么原因 这种方法的优点和缺点是什么?

1
以计算物理学着称的大学
我对计算物理学非常感兴趣,学习这些主题非常有趣。由于我计划出国一学期,所以我想知道哪些大学以计算物理着称?特别是关于美国的大学? 我知道计算物理学不是物理学的一个庞大而独立的分支,而是经常被整合到理论物理学系中。但是,尽管如此,我还是非常感谢活跃和不断发展的研究小组的任何暗示和建议。 编辑:我被要求在我感兴趣的主题上添加更多细节。 这有点困难,因为我在我的第四学期学期,几乎不了解晶格量子场论。因此,很难说我更喜欢特定的研究领域。 我希望找到一种大学/系,该系将提供一些关于计算物理的讲座或提供广泛的可能性,以便我一获得理论背景就可以进行专业研究。
14 education 

1
如何确定伪随机数生成器的周期?
假设我正在使用线性同余伪随机数生成器(PRNG)。给定种子,乘积因子(a),移动因子(c)和模量因子(m),我如何确定PRNG的周期?是否通过实验/模式检测算法确定它,或者有直接公式计算其周期? X0x0x_0 尽管我的问题专门针对线性同余法,但我愿意了解更多有关如何实际计算其他PRNG的周期的信息。

2
向量之间的角度数值稳定计算方法
当对两个向量之间的角度应用经典公式时: α=arccosv1⋅v2∥v1∥∥v2∥α=arccos⁡v1⋅v2‖v1‖‖v2‖\alpha = \arccos \frac{\mathbf{v_1} \cdot \mathbf{v_2}}{\|\mathbf{v_1}\| \|\mathbf{v_2}\|} 人们发现,对于非常小的/锐角,会损失精度,结果也不准确。正如在解释这个堆栈溢出的答案,一个解决方案是使用反正切来代替: α=arctan2(∥v1×v2∥,v1⋅v2)α=arctan⁡2(‖v1×v2‖,v1⋅v2)\alpha = \arctan2 \left(\|\mathbf{v_1} \times \mathbf{v_2}\|, \mathbf{v_1} \cdot \mathbf{v_2} \right) 这确实提供了更好的结果。但是,我想知道这是否会给非常接近\ pi / 2的角度带来不好的结果π/2π/2\pi / 2。是这样吗 如果是这样,是否有任何公式可以精确计算角度而无需检查if分支内的公差?


4
快速确定密集矩阵是否为低秩
在我正在从事的软件项目中,对于密集的低阶矩阵,某些计算非常容易。一些问题实例涉及密集的低秩矩阵,但是它们是完全提供给我的,而不是作为因素提供给我的,因此,如果我想利用低秩结构,就必须检查秩并分解矩阵。 所讨论的矩阵通常是完全或接近完全密集的,n的范围从一百到几千。如果矩阵的秩较低(例如小于5到10),则计算SVD并使用它形成低秩分解是值得的。但是,如果矩阵的排名不低,则将浪费精力。 因此,我想找到一种快速合理的方法来确定等级是否较低,然后再投入精力进行完整的SVD因数分解。如果在任何时候都可以确定等级高于临界值,则该过程可以立即停止。如果该过程在不正确的情况下错误地将矩阵声明为低秩,则这不是一个大问题,因为我仍然会执行完整的SVD来确认低秩并找到低秩分解。 我考虑过的选项包括显示LU或QR因式分解的等级,然后是完整的SVD作为检查对象。我还应该考虑其他方法吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.