ADEIIT
Окт. 9, 2018 13:34:13
def solve_quad(b, c):
D = b**2-4*c
x1 = (- (b)) + D**0.5)/2
x2 = (- (b)) - D**0.5)/2
print (x1,x2)
return x1,x2
from numpy import allclose
variants = [{'b': 4.0, ‘c’: 3.0},
{'b': 2.0, ‘c’: 1.0},
{'b': 0.5, ‘c’: 4.0},
{'b': 1e10, ‘c’: 3.0},
{'b': -1e10, ‘c’: 4.0},]
for var in variants:
x1, x2 = solve_quad(**var)
print(allclose(x1*x2, var))
вывод
-1.0 -3.0
True
-1.0 -1.0
True
(-0.2499999999999999+1.984313483298443j) (-0.2500000000000001-1.984313483298443j)
True
0.0 -10000000000.0
False
0.0 -10000000000.0
False
как дискриминант которая большая величина приблизить (вне размерности питона) приблизить чтобы посчитал 2 последних b и с
py.user.next
Окт. 10, 2018 01:37:01
romankrv
# если дискриминант меньше нуля, то корней нет
В смысле нет? Есть корни, принадлежащие множеству комплексных чисел, - комплексные корни. Даже в средней школе говорят “действительных корней нет”, а не вообще корней нет. Когда в вуз поступишь, там тебе расскажут, что, оказывается, есть ещё поле комплексных чисел, которое включает в себя поле действителных чисел.

Вообще, квадратное уравнение имеет шесть ветвей решения. И когда у тебя получается линейное уравнение (a = 0), его точно так же надо решать дальше, потому что это частный случай квадратного уравнения.
ADEIIT
Окт. 10, 2018 10:40:08
romankrv
my solution
во первых корни есть
“True
(-0.2499999999999999+1.984313483298443j) (-0.2500000000000001-1.984313483298443j)”
во вторых надо с этим списком сделать