数值分析 - 计算机程序相对于数学公式的优势



我不确定这是否是问这个问题的正确地方,如果不是,如果你们告诉我,我会删除它,但我的问题与将数学技术转移到程序中有关。我的问题是:

如果我使用一个程序来解决二次方程ax^2+bx+c=0使用以下方法:

x_1 = (-b-sign(b)*sqrt(b^2-4*a*c) ) / (2*a) 
x_2 = (c) / (a * x_1) 

与通用公式相比,使用计算机有什么优势?我知道这将减少所涉及的错误,但除此之外。

我假设你在问使用代码有什么区别

x1 = -b+sqrt(b*b-4*a*c)/(2*a);
x2 = -b-sqrt(b*b-4*a*c)/(2*a);

和代码

q = (-b-sign(b)*sqrt(b*b-4*a*c))/2;
x1 = q/a;
x2 = c/q;

《Numerical recipes in C - The Art of Scientific Computing-第二版》一书只是说,第二段代码会给你更准确的根。您可以在 http://apps.nrbook.com/c/index.html 在线查阅本书,您可以在第 5.6 二次方程和三次方程第 183 页和第 184 页找到公式。

Higham教授的著作《数值算法的准确性和稳定性,第2版》有1.8的介绍性部分。求解二次方程,进一步阐述第二个代码。也许你可以通过查询higham 1.8. solving a quadratic equation的谷歌图书来阅读它;在我看来,他只是谈论第二代码的准确性和健壮性,而没有描述任何额外的优势。

有关更长的解释(在Python Scilab上下文中),您可以查看Michael Baudin的Scilab is Not naïve here: http://forge.scilab.org/index.php/p/docscilabisnotnaive/downloads/get/scilabisnotnaive_v2.2.pdf

计算机程序是我所知道的几乎立即获得数百万个abc值解的唯一方法。

自动化和加速重复的微积分任务是计算机最近流行的原因之一。

最新更新