RRootEquinox
Продукт

Возможности программы · Устойчивые корни квадратного уравнения

01

Держите коэффициенты сильно различающихся масштабов рядом с расчётом корней и проверяйте отказы вместе с невязками многочлена.

01

Подключение

Базовый URL, учётные данные и доступный сервер.

02

Выбор

Модель, которую предоставляет настроенный endpoint.

03

Возможности

Объём контекста и поддержка инструментов определяются моделью и сервером.

Устойчивые корни квадратного уравнения

● ● ●RootEquinox●
Конкретная отправная точка · Устойчивые корни квадратного уравнения ×
from math import isfinite, sqrt, copysign
def real_roots(a, b, c):
    original = (a, b, c)
    if not all(type(v) in (int, float) and isfinite(v) for v in original) or a == 0:
        raise ValueError("finite quadratic coefficients")
    if c == 0:
        other = -b / a
        if not isfinite(other) or (b != 0 and other == 0):
            raise ValueError("unrepresentable root")
        return [0.0] if b == 0 else sorted((0.0, other))
    scale = max(map(abs, original))
    a, b, c = (v / scale for v in original)
    if any(v != 0 and s == 0 for v, s in zip(original, (a,b,c))):
        raise ValueError("coefficient underflow")
    d = b*b - 4*a*c
    if d < 0: return []
    if d == 0: roots = [-b / (2*a)]
    else:
        q = -0.5 * (b + copysign(sqrt(d), b))
        if q == 0: raise ValueError("root underflow")
        roots = sorted((q/a, c/q))
    if not all(map(isfinite, roots)) or (original[2] != 0 and 0 in roots):
        raise ValueError("unrepresentable roots")
    return roots
✳Вычислите вещественные корни квадратного уравнения с масштабированием коэффициентов и формулой, уменьшающей потерю значащих цифр.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗