Найти - Пользователи
Полная версия: Решение для квадратного уравнения
Начало » Центр помощи » Решение для квадратного уравнения
1
ADEIIT
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 и с
romankrv
my solution
 # импортируем модуль, содержащий функцию для
# извлечения квадратного корня
import math
 
# вводятся нижние и верхние границы для
# коэффициентов a, b, c
a1 = int(input('a1: '))
a2 = int(input('a2: '))
b1 = int(input('b1: '))
b2 = int(input('b2: '))
c1 = int(input('c1: '))
c2 = int(input('c2: '))
 
# создаются объекты-диапазоны
# +1 позволяет включить в диапазон верхнюю границу
a = range(a1, a2 + 1)
b = range(b1, b2 + 1)
c = range(c1, c2 + 1)
 
# перебираются все возможные сочетания коэффициентов
# i - текущий элемент из диапазона a
# j - текущий элемент из диапазона b
# k - текущий элемент из диапазона c
for i in a:
    if i == 0:
        # если i равен 0, то уравнение не квадратное, а линейное
        # поэтому решать уравнение не надо,
        # вместо этого выполняется переход к следующей итерации цикла
        continue
    for j in b:
        for k in c:
            # выводятся текущие значения коэффициентов a, b, c
            print(i, j, k, end=' ')
            # вычисляется дискриминант
            D = j * j - 4 * i * k
            if D >= 0:
                # если дискриминант больше нуля или равен ему,
                # то вычисляются корни квадратного уравнения
                x1 = (-j - math.sqrt(D)) / (2 * i)
                x2 = (-j + math.sqrt(D)) / (2 * i)
                # выводятся корни, округленные до двух знаков после точки
                print('Yes', round(x1, 2), round(x2, 2))
            else:
                # если дискриминант меньше нуля, то корней нет
                print('No')
py.user.next
romankrv
 # если дискриминант меньше нуля, то корней нет
В смысле нет? Есть корни, принадлежащие множеству комплексных чисел, - комплексные корни. Даже в средней школе говорят “действительных корней нет”, а не вообще корней нет. Когда в вуз поступишь, там тебе расскажут, что, оказывается, есть ещё поле комплексных чисел, которое включает в себя поле действителных чисел.

Вообще, квадратное уравнение имеет шесть ветвей решения. И когда у тебя получается линейное уравнение (a = 0), его точно так же надо решать дальше, потому что это частный случай квадратного уравнения.
ADEIIT
romankrv
my solution
во первых корни есть
“True
(-0.2499999999999999+1.984313483298443j) (-0.2500000000000001-1.984313483298443j)”
во вторых надо с этим списком сделать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB