import math
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项c:"))
delta = b**2 - 4*a*c
if delta <0:
print("该方程无实数根")
elif delta == 0:
x = -b / (2*a)
print("该方程有一个实数根:x =", x)
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print("该方程有两个实数根:x1 =", x1, ", x2 =", x2)
在这个程序中,用户需要输入方程的二次项系数、一次项系数和常数项。程序使用math模块中的sqrt函数来计算方程的判别式delta,然后根据delta的值判断方程的根的情况。如果delta小于0,则方程没有实数根;如果delta等于0,则方程有一个实数根;如果delta大于0,则方程有两个实数根。
程序输出方程的根,如果方程没有实数根,启漏则输出相应的提示。
请注意,在输入念孙系数时,要确保输入的是浮点数,否则可仔旁链能会导致程序出错。
import math
def erfenfa(function, a, b): #定义函数,利用二分法求方程的根,氏枣裤function为具体方程,a,b为根的取值范围
start = a
end = b
if function(a) == 0:
歼简return a
elif function(b) == 0:
return b
elif function(a) * function(b) >0:
print("couldn't find root in [a,b]")
return
else:
mid = (start + end) / 2
while abs(start - mid) >0.0000001:
if function(mid) == 0:
return mid
岩好elif function(mid) * function(start) <0:
end = mid
else:
start = mid
mid = (start + end) / 2
return mid
def f(x):#定义构造方程式函数
return math.pow(x, 5) -15*math.pow(x, 4) +85*math.pow(x, 3)-225*pow(x,2)+274*x - 121
print(round(erfenfa(f, 1.5, 2.4),6))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)