为什么我的python代码要求解二次公式?

2024-05-19 00:21:15 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我对编写python是一个相当新手,所以我决定试着做一个二次方程解算器。输入所有用户输入的变量后,我得到以下错误:

Traceback (most recent call last):
  File "C:/Users/insertnamehere/Desktop/quadratic formula solver.py", line 6, in <module>
    root=math.sqrt((b**2)-4*a*c)
ValueError: math domain error

我的代码是:

^{pr2}$

任何帮助都将不胜感激。在

编辑: 忘了加上我输入的实际值。在

A?: 6
B?: 1
C?: 2

Tags: 用户most错误mathcallusersfile算器
2条回答

这是9年级学生的一个基本数学问题:

二次方程并不总是有实值解,因为你不能取负数的平方根。你已经输入了一个二次方程的值,这个二次方程在实数范围内无法求解。在

编辑:您发布了您的值:

那么,什么是(1²-2*6*2)的平方根?你找不到这个问题的实数解,python也找不到,这就是为什么它会给你一个数学域错误的原因。在

这样看:6x²+x+2=0确实没有真正的解。提示:看graph

Python可以处理复数,但是math模块不处理负数的平方根,因此需要使用cmath。在

演示:

#!/usr/bin/env python

import cmath

a = 1.0
b = 1.0
c = 1.0

root = cmath.sqrt(b * b - 4.0 * a * c)
x1 = (-b + root) / (2.0 * a)
x2 = (-b - root) / (2.0 * a)
print x1
print x2

输出

^{pr2}$

尽管i通常被数学家用作负一平方根的符号,但Python使用j;这种约定在电子工程师中很常见,因为他们使用i来表示电流。在

因此上述输出等于(-1±sqrt(-3))/2

相关问题 更多 >

    热门问题