编程,计算并输出方程:2x2+5x-4=0的根。求求了,作业完全看不懂。
如果有帮助的话,请点击右上角【采纳】按钮,支持一下!!
import math
a = 2
b = 5
c = -4
delta = b*b -4*a*c
if delta >=0:
print("x1 = ",(-b + math.sqrt(delta))/(2*a))
print("x2 = ",(-b - math.sqrt(delta))/(2*a))
else:
print("无实根")
你是不懂高中数学,还是看不懂中文,还是什么
这就是先用求根公式把原题分解,然后直接代码输出就行了
没人让你用计算机自动识别图片并求解啊
有个库叫sympy,这个可以用来解一元二次方程
用Python求解线性、非线性方程(组)的方法有很多,这里给题主推荐3种:
>>> a, b, c = 2, 5, -4
>>> delta = b*b - 4*a*c
>>> if delta < 0:
print('方程没有实根')
else:
x1, x2 = (-b + pow(delta, 0.5))/(2*a), (-b - pow(delta, 0.5))/(2*a)
print('x1 = %f, x2 = %f'%(x1, x2))
x1 = 0.637459, x2 = -3.137459
>>> 2*x1*x1 + 5*x1 - 4
0.0
>>> 2*x2*x2 + 5*x2 - 4
0.0
>>> from scipy import optimize
>>> def f(x):
return 2*x*x + 5*x - 4
>>> result = optimize.root_scalar(f, bracket=[-1, 1])
>>> result.root
0.6374586088176875
>>> result = optimize.root_scalar(f, bracket=[-3, -4])
>>> result.root
-3.1374586088176875
>>> def f(x):
return 2*x*x + 5*x - 4
>>> def df(x):
return 4*x +5
>>> def newton_raphson_method(x):
# 牛顿-拉弗森方法
tiny = 1e-15 # 当f(x_n)小于tiny时,迭代结束
i = 0 # 迭代计数器和初始值
while True:
i += 1 # 迭代计数器加1
x = x-f(x)/df(x) # 计算下一个x
if abs(f(x)) < tiny: # 满足迭代结束条件
print('\n经过%d次迭代,2的算术平方根为%.030f'%(i, x))
break
>>> newton_raphson_method(0)
经过5次迭代,2的算术平方根为0.637458608817687344405555904814
>>> newton_raphson_method(-3)
经过4次迭代,2的算术平方根为-3.137458608817687455427858367329