import scipy.optimize
成都创新互联公司专注于细河网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供细河营销型网站建设,细河网站制作、细河网页设计、细河网站官网定制、微信小程序服务,打造细河网络公司原创品牌,更为您提供细河网站排名全网营销落地服务。
import sympy
print(scipy.optimize.fsolve(lambda x: x**2 + 2*x + 1, 0))
print(sympy.solve('x**2 + 2*x + 1'))
spicy.optimize.fsolve求数值解,需要给定初值,必要时需要选定求解器(不过解个二元一次而已无所谓了)。
sympy.solve求解析解。当然还有更细致的玩法。
当然其实一元二次方程这种有求根公式的玩意……直接套求根公式就行……
######python求标准的一元二次方程的解###############
a,b,c= map(float,input("请输入aX^2+bX+c=0,函数中的三个参数:(空格隔开)").split())
###使用公式b^2-4ac判定是否有解b^2-4ac####
i=b*b-4*a*c
if i0:
print("该方程无实数解!")
elif i==0:
print("该方程解为:%.2f"%((-1)*b/(2*a)))#有一个解
else:
print("该方程解为:%.2f或%.2f"%((((-1)*b+i**0.5)/(2*a)),(((-1)*b-i**0.5)/(2*a))))
该方法运用是运用公式求解,保留两位小数,只能求实数解,供参考,有问题可追问
编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。python编程最好的方法就是实践,当你能处理绝大多数例子之后,你会发现很多难懂的概念也就自然的解决了。
一元二次方程为:ax^2+bx+c=0
我们先编写一个最简单的版本,我们成功的计算除了数值。下面这个程序不适合复数形式
代码:
import math
a=int(input('请输入a的值:'))
b=int(input('请输入b的值:'))
c=int(input('请输入c的值:'))
derta=(b**2-4*a*c)
if a == 0:
print('您输入的a为0,方程ax^2+bx+c=0不能作为一元二次方程')
elif derta0:
print('方程无实数解')
elif derta==0:
print('方程有解,有一个实数解:')
print(b*(-1)/(a*2))
else:
print('方程有解,有两个实数解:')
print((-1*b+math.sqrt(derta))/2*a)
print((-1*b-math.sqrt(derta))/2*a)
结果测试:
二次方程,先计算判别式,判别式小于0 的,说明方程有复数根,那么就用Complex类型来表示就行了,Complex类型是python的内置类型。
1+2*i 就写成
x=complex(1,2)