使用python解决一元二次方程

    科技2025-04-25  7

    python解一元二次方程

    一元二次方程的公式开始编程

    一元二次方程的公式

    一元二次方程的一般式为ax^2+bx+c=0(a不等于0) 一元二次方程的解法有几种,最简便的是公式法,即=b±根号b^2-4ac除以2a

    开始编程

    a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分")) b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分")) c=int(input("请输入常数项的值,如有根号,请输入无根号的部分")) g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")

    先询问出abc的值, 以及带不带根号

    j=(g**(1/2))*a k=(h**(1/2))*b l=(i**(1/2))*c

    这一步就是分别计算出a,b,c的值(根号默认为二次)

    d=(k**2)-4*j*l

    这一步就相当于上面的b^2=4ac,只不过乘上了一个根号

    if d<0 or g==0 : print("此方程没有实数解")

    这一步就是最基础的筛选,因为b^2-4ac小于0的话方程是没有实数解的,所以要先排除。 另外g也不能等于0,因为如果等于0的话就是一元一次方程了,不符合题意。

    else: print("此方程有实数解") e=b+(d**(1/2)) f=b-(d**(1/2)) A=e/(2*a) B=f/(2*a)

    排去了无解的式子,就要开始分析有解的式子了,e和f就是b±根号b^2-4ac除以2a上面的分子, 当然,分子分两种请况,一种是加,另一种是减,加对应e,减对应f A和B也很好理解,就是分母(除以2a)

    if A !=B : print("该方程的实数解为X1=",-A,"X2=",-B) if A==B : print("实数解为X1=X2=",-A or -B)

    最后再分析一下A和B的情况,如果A不等于B,就打印出两个数的值,等于的话就随机打印一个数的值(当然,也可以之打印一个) 最后的程序:

    a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分")) b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分")) c=int(input("请输入常数项的值,如有根号,请输入无根号的部分")) g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) j=(g**(1/2))*a k=(h**(1/2))*b l=(i**(1/2))*c d=(k**2)-4*j*l if d<0 or g==0 : print("此方程没有实数解") else: print("此方程有实数解") e=b+(d**(1/2)) f=b-(d**(1/2)) A=e/(2*a) B=f/(2*a) if A !=B : print("该方程的实数解为X1=",-A,"X2=",-B) if A==B : print("实数解为X1=X2=",-A or -B)

    当然,各位学霸也可以不抄答案,而是自己验算一遍:

    a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分")) b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分")) c=int(input("请输入常数项的值,如有根号,请输入无根号的部分")) g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")) j=(g**(1/2))*a k=(h**(1/2))*b l=(i**(1/2))*c d=(k**2)-4*j*l if d<0 or g==0 or h==0 or i==0: print("此方程没有实数解") else: print("此方程有实数解") e=b+(d**(1/2)) f=b-(d**(1/2)) A=e/(2*a) B=f/(2*a) z=int(input("请输入你计算的第一个值(分子)(不带根号)(加上的那个)")) ax=int(input("请输入第一个值的分母,如没有,请输入“1”")) y=int(input("请输入你计算的第一个值(根号下)如没有,请输入“0”")) x=input("请输入你计算的第一个值的运算") if x=='加': DIYI=(z/ax)+y**(1/2) if x=='减': DIYI=(z/ax)-y**(1/2) if DIYI==-A : print("你算对了!") else: print("你算错了!") zz=int(input("请输入你计算的第二个值(不带根号)(减去的那个)")) bx=int(input("请输入第二个值的分母,如没有,请输入“1”")) yy=int(input("请输入你计算的第二个值(根号下)如没有,请输入“0”")) xx=input("请输入你计算的第二个值的运算") if xx=='加': DIER=(zz/bx)+yy**(1/2) if xx=='减': DIER=(zz/bx)-yy**(1/2) if DIER==-B : print("你算对了!") else: print("你算错了!") if A !=B : print("该方程的实数解为X1=",-A,"X2=",-B) if A==B : print("实数解为X1=X2=",-A)

    结束

    Processed: 0.008, SQL: 8