- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我应该在 matlab 代码中加入什么条件才能使用这些公式得到二次方程的精确解:
x1=(-2*c)/(b+sqrt(b^2-4*a*c))
x2=(-2*c)/(b-sqrt(b^2-4*a*c))
在某些情况下直接实现这些公式我没有得到正确的解决方案,例如 x^2-1000001x+1
非常感谢您的帮助
最佳答案
正确的公式是
w = b+sign(b)*sqrt(b^2-4*a*c)
x1 = -w/(2*a)
x2 = -(2*c)/w
其中,如果 b>=0,则 sign(b)=1,如果 b<0,则 sign(b)=-1。
您的公式以及标准公式导致 b 的一个根中的灾难性抵消是大 wrt。 a和c。
如果你想走极端,你还可以在计算平方根下的项时防止上溢和下溢。
设 m 表示 |a|、|b| 的最大尺寸和 |c|,例如它们浮点表示中指数的最大值,或者它们的绝对值...然后
w = b+sign(b)*m*sqrt( (b/m)*(b/m)-4*(a/m)*(c/m) )
在根下面有一个介于 -10 和 10 之间的项。如果此项为零,则不是由下溢引起。
关于算法 二次方程 MATLAB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22414609/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我求解 jQuery 二次方程的代码有什么问题? a = parseFloat($('#a').val()); b = parseFloat($('#b').val()); c = parseFloa
我应该在 matlab 代码中加入什么条件才能使用这些公式得到二次方程的精确解: x1=(-2*c)/(b+sqrt(b^2-4*a*c)) x2=(-2*c)/(b-sqrt(b^2-4*a*c))
我正在做一项学校作业。我应该实现一个类并提供方法 getSolution1 和 getSolution2。但是,我的代码有 2 个我无法弄清楚的问题。 问题 #1 在这一行: solution1= (
如果这个问题很简单,我很抱歉,但我是 C++ 的新手。我正在设计一个使用二次公式计算 2 个根的程序。但是,当我的判别式为负数时,我的程序不起作用。 #define _USE_MATH_DEFINES
我对 Javascript 不太熟悉。我希望有人能简单地解释一下编辑以下代码的过程。 this.hideNextButton(); this.hidePreviousButton(); var tha
我是一名优秀的程序员,十分优秀!