我不知道这是不是问这个问题的地方,如果不是,如果你们告诉我,我会删除它,但我的问题是有关将数学技术转移到一个程序。我的问题是:
如果我要使用一个程序来求解二次方程ax^2+bx+c=0,使用如下方法:
x_1 = (-b-sign(b)*sqrt(b^2-4*a*c) ) / (2*a)
x_2 = (c) / (a * x_1) 使用计算机比使用普通公式有什么好处?我知道这会减少所涉及的错误,但除此之外。
发布于 2013-03-03 11:34:52
我假设您是在问使用代码之间有什么区别
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;这本书的数字食谱在C-科学计算的艺术-第二版刚刚说,第二个代码将给你更准确的根。您可以在http://apps.nrbook.com/c/index.html网上查阅这本书,您将在第183页和第184页的5.6二次和三次方程中找到公式。
Higham教授的书“数值算法的准确性和稳定性”,第二版有介绍性章节1.8。求解二次方程,进一步阐述了第二种码。也许你可以用查询higham 1.8. solving a quadratic equation阅读谷歌书籍;在我看来,他只是谈论第二段代码的准确性和健壮性,而没有描述任何额外的优势。
关于更长的解释(在Python上下文中),您可以查看Michael提供的Scilab并不天真:v2.2.pdf
发布于 2013-01-30 08:47:49
计算机程序是我知道的几乎立即得到数百万a、b和c值的解决方案的唯一途径。
自动化和加速重复微积分任务是计算机最近变得流行的原因之一。
https://stackoverflow.com/questions/14599331
复制相似问题