본문으로 건너뛰기
🛠️ToolsShed

이차방정식 풀이기

ax² + bx + c = 0을 단계별로 풀어줍니다.

계수 입력

ax² + bx + c = 0

x = (−b ± √(b² − 4ac)) / 2a

공식

  • 판별식: Δ = b² − 4ac
  • Δ > 0: 두 개의 서로 다른 실근
  • Δ = 0: 하나의 중근
  • Δ < 0: 두 개의 복소켤레근

이 도구 소개

이차방정식 ax² + bx + c = 0은 물리학, 공학, 금융, 건축 등 모든 분야에서 나타나는 대수학의 가장 기본적인 문제 중 하나입니다. 이 도구는 이차방정식을 순식간에 풀어주고 최종 답뿐만 아니라 완전한 단계별 풀이 과정을 보여주므로 해에 어떻게 도달하는지 정확히 이해할 수 있습니다.

계수 a, b, c를 입력하면 판별식을 계산하고 이차방정식 공식을 적용하여 실근과 복소수 해를 모두 구합니다. 숙제 확인, 프로젝트 계산 검증, 대수학 복습 등 어떤 상황에서든 이 도구는 명확하고 체계적인 풀이를 제공하여 그 배경이 되는 수학을 이해하도록 도와줍니다.

자주 묻는 질문

코드 구현

import cmath

def solve_quadratic(a: float, b: float, c: float):
    """Solve ax^2 + bx + c = 0. Returns two roots (may be complex)."""
    if a == 0:
        if b == 0:
            raise ValueError("Not an equation (a=0, b=0)")
        return (-c / b,)  # linear case
    disc = b**2 - 4*a*c
    sqrt_disc = cmath.sqrt(disc)
    x1 = (-b + sqrt_disc) / (2 * a)
    x2 = (-b - sqrt_disc) / (2 * a)
    return x1, x2

def format_root(r: complex) -> str:
    if r.imag == 0:
        return f"{r.real:.6g}"
    return f"{r.real:.4g} + {r.imag:.4g}i"

# Two real roots: x^2 - 5x + 6 = 0  ->  x = 3, 2
x1, x2 = solve_quadratic(1, -5, 6)
print(format_root(x1), format_root(x2))  # 3   2

# Complex roots: x^2 + 1 = 0  ->  x = ±i
x1, x2 = solve_quadratic(1, 0, 1)
print(format_root(x1), format_root(x2))  # 0 + 1i   0 + -1i

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.