数值计算大作业:求解一元二次方程的根
以下是一个数值计算大作业的例子,旨在解决一个实际问题:求解一元二次方程的根。
问题描述:给定一元二次方程 ax^2 + bx + c = 0,其中 a、b、c 为已知常数,求解该
方程的实数根。
数学模型:一元二次方程的解可以通过求根公式 x = [-b ± sqrt(b^2 - 4ac)] / (2a) 来求
解。其中,sqrt 表示平方根函数,b^2 - 4ac 是判别式。
要求:
1. 使用
Python
语言编写代码,实现求解一元二次方程的实数根的功能。
2. 要求对判别式进行判断,如果判别式小于 0,则输出该方程无实数根。
3. 对于有实数根的情况,要求输出每个实数根的值。
4. 测试不同情况下的方程,包括有实数根和无实数根的情况。
以下是实现上述要求的 Python 代码:
python
复制代码
import cmath
def solve_quadratic_equation(a, b, c):
# 计算判别式
discriminant = cmath.sqrt(b**2 - 4*a*c)
# 计算根
root1 = (-b + discriminant) / (2*a)
root2 = (-b - discriminant) / (2*a)
# 判断判别式情况并输出结果
if discriminant < 0:
print("该方程无实数根")
else:
print("该方程的两个实数根分别为:", root1, "和", root2)
# 测试不同情况下的方程
# 有实数根的情况
solve_quadratic_equation(1, -3, 2) # 输出:该方程的两个实数根分别为: