Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:计算二次方程的正根_Python_Python 3.x - Fatal编程技术网

Python:计算二次方程的正根

Python:计算二次方程的正根,python,python-3.x,Python,Python 3.x,我正在学习麻省理工学院的Python教程,其中一个练习有问题。演习是, 使用IPython提示符计算: 下列等式的正根:34x2+68x-510=0: 给定ax2+bx+c=0,那么x=(-b+sqrt(b*b-4ac))/(2*a) 我已经进去了 (-68)+(数学sqrt((68**2)-(4*34*510))) 在我的演讲中,我得到了 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 (-68)+(数学sqrt((68**2)-(434510))) ValueError:数学域错误 单

我正在学习麻省理工学院的Python教程,其中一个练习有问题。演习是,

使用IPython提示符计算:

下列等式的正根:34x2+68x-510=0: 给定ax2+bx+c=0,那么x=(-b+sqrt(b*b-4ac))/(2*a)

我已经进去了

(-68)+(数学sqrt((68**2)-(4*34*510)))

在我的演讲中,我得到了

回溯(最近一次呼叫最后一次):

文件“”,第1行,在 (-68)+(数学sqrt((68**2)-(434510)))

ValueError:数学域错误

单独计算时,我发现平方根内的值为负值。我应该添加一些附加函数来启用负根计算,还是我的语句有其他问题

有人能帮我吗

注意:课程页面上的解决方案建议

(b**2-4ac)

在计算根之前为正值。这在数学上不是不准确吗?

f(x)=ax²+bx+c
。如果要在实数域中求解
f(x)=0
,则需要注意定义为
b²-4ac
f
的判别式。如果后者是否定的,那么你就没有真正的解决方案了(你需要考虑代码< F>代码)作为一个复杂的多项式,这意味着你想在复数字段中找到<代码> f(x)=0 < /代码>的解决方案。p> 现在,对于你的问题,你似乎有一个符号问题。系数
c
等于
-510
,而不是
510
。因此,
68²-4*34*510
应该是
68²-4*34*(-510)=68²+4*34*510
,如果f(x)=ax^2+bx+c,那么它的正根将是

(-b+sqrt(b^2-4ac))/2a

根据你的问题f(x)=34x^2+68x-510=0

所以+ve根将是=>(-68+sqrt(68^2-4*34*(-510))/(2*34)=3

在python中,代码如下-

from math import sqrt

print((-68 + sqrt(68**2 - 4*34*(-510)))/(2*34)) 
但你做错了的是,你把C的系数取为510


相反,它应该是(-510)。

我也在上这门课。
这个问题来自“入门”,所以应该不难。
它应该与课程材料相关


因此,以下是我所拥有的:

IDLE 1.2.4      
>>> import math
>>> a=34
>>> b=68
>>> c=-510
>>> d = ( -b + math.sqrt ( b*b - 4*a*c))/(2 * a)
>>> print d
3.0

我也在学同样的课程,我这样做了,得到了正确的答案。写出如下等式:

(-68+((68**2)-4*34*(-510))**0.5)/(2*34)
这将给出第一个解,只要将加号改为减号,就得到了第二个解,如下所示:

(-68-((68**2)-4*34*(-510))**0.5)/(2*34)
检查我所附的照片,这是解决方案的截图