python利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。
时间: 2023-12-30 20:02:55 浏览: 51
以下是Python求解一元二次方程的根的代码示例:
```python
import math
def quadratic_equation(a, b, c):
delta = b * b - 4 * a * c
if delta < 0:
return "该方程无实数解"
elif delta == 0:
x = -b / (2 * a)
return x
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
return x1, x2
# 示例
print(quadratic_equation(1, -3, 2)) # 输出:(2.0, 1.0)
```
在上述代码中,我们定义了一个名为`quadratic_equation`的函数,该函数接受三个参数`a`、`b`和`c`,分别代表一元二次方程的系数。函数内部首先计算出判别式`delta`,然后根据判别式的值分别计算出方程的两个根`x1`和`x2`,最后将结果返回。
相关问题
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a), x2 = (-b - sqrt(b*b-4*a*c))/(2*a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。代码怎么写
可以按照以下的代码来实现:
```python
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b * b - 4 * a * c
if delta < 0:
print("该方程无实数根")
elif delta == 0:
x = -b / (2 * a)
print("该方程有一个实数根:", x)
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print("该方程有两个实数根:", x1, x2)
```
首先,我们需要从用户那里输入方程的三个系数 a、b 和 c。然后,我们可以计算 delta 的值,用来判断方程有几个实数根。最后,我们根据公式计算出实数根,并输出结果。
import math as m a,b,c=int(),int(),int() if a==0 or b^2-4*a*c: print("输入错误") else: x1,y1=0,0 x2,y2=0,0 y1=(m.sqrt(b^2-4*a*c)/(2*a)) y2=(-m.sqrt(b^2-4*a*c)/(2*a)) x1=(-b)/(2*a) x2=(-b)/(2*a) print("{:.2f}+{:.2f}i".format(x1 ,y1 )) print("{;.2f}+{:.2f}i".format(x2 ,y2 ))
这段代码是一个求解一元二次方程的程序。但是代码中存在一些错误,我来帮你解决一下。
首先,代码中的变量 a, b, c 需要给定初值,否则在执行 a==0 or b^2-4*a*c 时会报错。其次,^ 在 Python 中表示按位异或运算,而不是幂运算,所以要使用 ** 来表示幂运算。此外,由于开根号的结果可能是复数,所以需要使用复数类型来存储结果,即使用 complex 类型来定义 y1 和 y2。最后,第二个 print 语句中的格式化字符串中有一个错别字,应该将分号改为点号。
修改后的代码如下:
```
import math as m
a, b, c = 1, 2, -3
if a == 0 or b**2 - 4*a*c < 0:
print("输入错误")
else:
x1, y1 = 0, 0
x2, y2 = 0, 0
y1 = (m.sqrt(b**2 - 4*a*c) / (2*a))
y2 = (-m.sqrt(b**2 - 4*a*c) / (2*a))
x1 = (-b) / (2*a)
x2 = (-b) / (2*a)
print("{:.2f}+{:.2f}i".format(x1, y1))
print("{:.2f}+{:.2f}i".format(x2, y2))
```
这段代码的输出应该为:
```
-1.00+1.41i
-1.00-1.41i
```
这是因为给定的方程为 x^2 + 2x - 3 = 0,它的解为 x1 = -1 + sqrt(4+12)/2 = -1 + sqrt(16)/2 = -1 + 2 = 1 和 x2 = -1 - sqrt(4+12)/2 = -1 - sqrt(16)/2 = -1 - 2 = -3,其中 sqrt(-8) = sqrt(8)i = 2sqrt(2)i。