python實現解一元二次方程
阿新 • • 發佈:2018-12-15
python實現一元二次方程的求解
要考慮的點:
1、二元方程組a=0的情況
2、判別式是否大於0
3、當有複數解時如何表示
程式塊:
# -*- coding: utf-8 -*- import math def root_of_square(a,b,c): '''solve the quadratic equation''' discr=pow(b,2)-4*a*c if a!=0 and discr>0: x1=(-b+math.sqrt(discr))/(2*a) x2=(-b-math.sqrt(discr))/(2*a) return x1,x2 elif a!=0 and discr==0: return -b/(2*a) elif a!=0 and discr<0: x1=str(-b/(2*a))+"+"+str(math.sqrt(-discr)/(2*a))+"i" x2=str(-b/(2*a))+"-"+str(math.sqrt(-discr)/(2*a))+"i" return x1,x2 elif a==0 and b!=0: return -c/b else: return "no solution" if __name__=="__main__": a=input() b=input() c=input() print(root_of_square(float(a),float(b),float(c)))
實驗結果:
有兩個不同根的情況:
輸入:
1
0
-1
輸出 (1.0, -1.0)
有兩個同根的情況:
輸入:
1
2
1
輸出: -1.0
有兩個虛根的情況:
輸入:
1
2
2
輸出: ('-1.0+1.0i', '-1.0-1.0i')
a=0的情況:
輸入:
0
1
1
輸出: -1.0
無解的情況:
輸入:
0
0
1
輸出: no solution