首页 > 编程 > Python > 正文

python 解一元二次方程方法汇总

2019-11-06 08:40:53
字体:
来源:转载
供稿:网友

介绍三种方法如下

1、

#!/usr/bin/env python# coding=utf-8"""    solving a quadratic equation"""from __future__ import divisionimport mathdef quadratic_equation(a,b,c):    delta=b*b-4*a*c    if delta<0:        return False    elif delta ==0:        return -(b/(2*a))    else:        sqrt_delta=math.sqrt(delta)        x1=(-b+ sqrt_delta)/(2*a)        x2=(-b- sqrt_delta)/(2*a)        return x1,x2if __name__=="__main__":    PRint "a quadratic equation: x^2 +x+1=0"    coefficients=(1,1,1)    roots=quadratic_equation(*coefficients)    if roots:        print "the result is:", roots    else:        print "this equation has no solution."
2、
#!/usr/bin/env python# coding=utf-8from __future__ import division  # 除法纠正import mathdef oneandtwo():    """判断方程的根;若方程有根,则将其解出来"""    delta = b ** 2 - 4 * a * c  # 根的判别式    print "判别式大小为:", delta    print    if delta < 0:        print "根的判别式小于0,方程无解!"    else:        x1 = (-b + math.sqrt(delta)) / (2 * a)  # 第一个根        x2 = (-b - math.sqrt(delta)) / (2 * a)  # 第二个根        print "方程的两根是:/n/nx1=%f/nx2=%f" % (x1, x2)        printif __name__ == "__main__":    print "输入一元二次方程的系数(a,b,c):"    print    stra = raw_input("请输入系数 a:")    strb = raw_input("请输入系数 b:")    strc = raw_input("请输入系数 c:")    print    print "方程是:(%s)*x^2+(%s)*x+(%s)=0" % (stra, strb, strc)    print    # 将输入的字符串转换为浮点数    a = float(stra)    b = float(strb)    c = float(strc)    oneandtwo()  # 调用并打印出方程的两个根  3、
#!/usr/bin/env python# coding=utf-8import mathdef quadratic_equation(a, b, c):    t = math.sqrt(pow(b, 2) - 4 * a * c)    if(pow(b, 2) - 4 * a * c) > 0:        return (-b + t) / (2 * a), (-b - t) / (2 * a)    elif (pow(b, 2) - 4 * a * c) == 0:        return (-b + t) / (2 * a)    else:        return Noneprint quadratic_equation(2, 3, 0)print quadratic_equation(1, -6, 5)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表