我想在速度和准确性方面写出好的语句。如果我没记错的话,这一行:b=(a+1)*a生成了一个比这个更好的程序:b=(a^2+a)。
这只是一个例子,可能是错的,但现在无关紧要,问题是:我在哪里可以找到科学计算的良好实践的概要?
发布于 2012-01-24 20:41:14
你可以看看Numerical Recipes in C。我不确定它是否介绍或教你优化,但就C语言的科学计算而言,它是一本非常受欢迎的书。甚至可能会有一本给C++的书。
发布于 2012-01-24 20:41:55
您在这里所做的被称为premature optimization,它是许多邪恶的根源。你应该做的是,编写你的程序,然后profile它们,并尝试优化关键部分。关于科学计算的优化技术的完整概要可能会是一本非常厚的书,因此在寻找解决方案之前,您需要缩小问题的范围。
发布于 2012-01-24 21:12:45
一种有用的技术是将所有函数模板设置为datum类型,然后使用interval算术类型而不是浮点类型运行算法。这为您提供了给定输入集的结果精度的上限,而不必进行广泛的数值分析。
同样重要的是要对你的结果和任何中间结果的预期大小有一个概念,这样你就可以快速判断出有没有什么问题。
https://stackoverflow.com/questions/8986925
复制相似问题