03. 일차방정식의 해머, 이항과 Python 봇
1. 학습 목표 (Learning Objectives)
- 등식의 성질을 더 빠르게 단축시킨 필살 치트키인 ‘이항(Transposition)’의 원리를 체득하여 일차방정식을 빠르게 타격합니다.
- 파이썬의 기호 수학 최강 라이브러리인
sympy모듈을 활용하여, 컴퓨터가 스스로 복잡한 방정식을 정리하고 해(Roots)를 도출해 내는 자동 해독 봇을 실습합니다.
2. 왼쪽에서 오른쪽으로 이사 갈 땐, 성별이 바뀐다! (이항)
이전 챕터에서 $2x + 3 = 11$ 의 저울 균형을 잡기 위해 “양변에서 똑같이 3을 뺀다”라는 2번 법칙을 배웠습니다. \(2x + 3 - 3 = 11 - 3\) 결과는 $2x = 8$ 이 됩니다.
그런데 이걸 매번 쓰려니 수학자들은 손이 아팠습니다. 그래서 꼼수를 부립니다. 과정을 건너뛰고 처음 식과 결과 식만 위아래로 슥 비교해 보니…
원래 식: $2x \mathbf{+ 3} = 11$ 결과 식: $2x = 11 \mathbf{- 3}$
어라? 왼쪽에 있던 $+3$ 녀석이 등호($=$)라는 다리를 건너서 오른쪽 동네로 이사를 가버렸네? 대신 다리를 건너는 대가로 자신의 성별인 부호를 반대($+$에서 $-$로, $-$에서 $+$로) 바꾸는 마법을 부린 것처럼 보이게 됩니다. 이처럼 항의 부호를 바꾸어서 등호의 반대편으로 위치를 이동시켜버리는 스킬을 ‘이항(Transposition)’이라고 부릅니다. 이항 스킬 덕분에 방정식 해체 속도가 3배 이상 빨라졌습니다!
3. 파이썬 SymPy 방정식 해결 봇 (Python)
우리가 수동으로 손가락 아프게 이항하고 나누던 노가다를 파이썬은 눈 깜짝할 새 자동화해 버립니다.
우리가 디오판토스의 미스터리 묘비명을 파이썬 sympy(심파이: Symbolic Mathematics 도구 모음) 모듈에 집어넣어, 몇 살에 죽었는지 단숨에 해킹해 보겠습니다.
# 파이썬 수학 기호 처리기(심파이) 임포트
import sympy as sp
# 파이썬에게 'x'가 단순 스펠링 알파벳이 아니라 수학 변수(기호)라고 선언해 줍니다.
x = sp.Symbol('x')
print("■ 디오판토스 묘비명 해독기 가동 ■\n")
# 식 세우기:
# 그의 전체 일생 수명을 x 라고 합니다.
# 1/6 (소년) + 1/12 (청년) + 1/7 (결혼) + 5년(기다림) + 1/2 (아들의 죽음) + 4년(슬픔) = 전체 삶 (x)
# 파이썬 sympy 에서는 등호(=) 대신 Eq(좌변, 우변) 함수를 사용합니다.
left_side = (x / 6) + (x / 12) + (x / 7) + 5 + (x / 2) + 4
right_side = x
# equation(방정식) 이라는 객체 생성
equation = sp.Eq(left_side, right_side)
print(f"1) 작성된 기호 방정식 뼈대: {equation}")
# 방정식 풀이(solve) 전격 실행!
solution = sp.solve(equation, x)
print(f"2) 디오판토스의 나이 해독 완료! 그의 전체 수명은 [{solution[0]}] 세 였습니다.")
파이썬의 실행 결과 요약:
■ 디오판토스 묘비명 해독기 가동 ■
1) 작성된 기호 방정식 뼈대: Eq(25*x/28 + 9, x)
2) 디오판토스의 나이 해독 완료! 그의 전체 수명은 [84] 세 였습니다.
2000년간 나그네를 멘붕에 빠트린 천재의 퍼즐을 파이썬은 0.1밀리 초 만에 이항($x - \frac{25x}{28} = 9$)하여 정리하고는 “84살”이었다고 답을 토해냅니다!
4. 학습 정리 (Summary)
- 이항 (Transposition): 등식의 한쪽 변에 있는 문자의 항이나 숫자 항의 부호를 반대(+, - 체인지)로 강자 변환시켜 다른 변으로 이사 보내는 해킹 기술입니다. 이항을 통해 수식을 초스피드로 압축할 수 있습니다.
- SymPy 모듈: 파이썬에서 대수학 수식(Symbolic)을 컴퓨터의 부동소수점 숫자가 아닌, 순수 기호 형태 그대로 수학자처럼 풀이해 주는 팩토리 모듈로 AI 시대 수학 솔버의 주력 엔진입니다.
서브목차