最近有个同学询问如何用python语言编程求解二元一次方程,见着有趣便记录下来了。
二元一次方程组有现成的求解公式,其实还算简单,对于下面这样一个二元一次方程组来说,
其解为:
下面我们将这样一个公式转化为程序语言.,python提供了一个math模块,math模块中内置了平方根函数:sqrt。下是一段小的求解程序:
frommath import sqrt
print("ais not equal to 0,and (b*b-4*a*c)>0")
defx_function(a,b,c):
x1=(-b+sqrt(b*b-4*a*c))/(2*a)
x2= (-b-sqrt(b*b-4*a*c)) / (2*a)
print("方程的第一个解为:%.2f,\n方程的第二个解为:%.2f" %(x1,x2))
return
程序的第一条是调用math模块的sqrt平方根函数,第二条是一个提示语,第三条则是定义了一个求解的函数。输入代码如图1,运行结果如图2.
图1
图2
当然也可以把程序变得更丰满一些,让程序分别对(b*b-4*a*c)=0,(b*b-4*a*c)>0和(b*b-4*a*c)
from math import sqrt
print("ax^2+bx+c=0,please inputa,b,c")
def x_function(a,b,c):
if a==0:
print("这不满足二元一次方程的条件")
elif (b*b-4*a*c)>0:
x1=(-b+sqrt(b*b-4*a*c))/(2*a)
x2=(-b-sqrt(b*b-4*a*c))/(2*a)
print("方程的第一个解为:%.2f,\n方程的第二个解为:%.2f" %(x1,x2))
elif (b*b-4*a*c)==0:
x1=x2=-b/(2*a)
print("方程存在两个相同的解为:%.2f" %x1)
else:
x1=-b/(2*a)
x3=sqrt(4*a*c-b*b)/(2*a)
x2=-b/(2*a)
x4=sqrt(4*a*c-b*b)/(2*a)
print("方程的第一个解为:%.2f+%.2fj:,\n方程的第二个解为:%.2f+%.2fj" %(x1,x3,x2,4))
return
输入代码如图3,运行结果如图4.
图3
图4
领取专属 10元无门槛券
私享最新 技术干货