python - Python:计算二次方程的正根
问题描述
我正在学习 MIT 上的 Python 教程,但其中一个练习有问题。练习是,
使用 IPython 提示计算:
以下方程的正根: 34x2 + 68x - 510 = 0 回忆:给定 ax2 + bx + c = 0 ,则 x = (-b +sqrt(b*b - 4ac))/(2*a)
我已进入
(-68)+(math.sqrt((68**2)-(4*34*510)))
在即兴的,我得到
回溯(最近一次通话最后):
文件“”,第 1 行,在 (-68)+(math.sqrt((68**2)-(434510)))
ValueError:数学域错误
在单独计算时,我发现平方根内的值是负数。我应该添加一些额外的功能来启用负根计算,还是我的陈述有其他问题?
有人可以帮我吗?
注意:课程页面上的解决方案建议制作
(b**2-4ac)
在计算根之前为正。这不会在数学上不准确吗?
解决方案
我也在做课程。
问题来自“入门”,所以应该不难。
它应该与课程材料有关。
因此,这就是我所拥有的:
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
推荐阅读
- c - 一起编译 SDL 和 GTK+
- node.js - Netlify lambda 函数返回“完成请求之前退出进程”错误
- javascript - 在将状态映射到道具后访问组件“this”的道具时未定义
- java - 更改属性文件后,Maven 无法构建 Spring Boot 应用程序(无法解析配置类)
- python - 将numpy数组中的元素顺序添加到新数组中
- scala - Scala:如何避免在代码中到处传递相同的对象实例
- android - 如何在objectdb颤振中找到所有文档?
- mysql - MySQL auto_increments 总是插入 2147483647
- c# - 如何以编程方式从 Azure DevOps 下载最新的构建工件?
- javascript - 为什么键为空?,尽管我创建了它