04. 네 번째 수업: 껍데기를 바꿔치기하는 치환적분법 (Substitution)
이제 적분 $\int$ 을 다루는 고급 스킬들을 마스터할 차례입니다. 게임에서 치트키가 아무리 강력해도, 몬스터가 ‘무적 보호막 방어력’ 스킬을 두르고 치트키가 안 먹히도록 방어할 때가 있습니다. 함수에서도, 너무나 더럽게 합쳐진 합성 함수 껍데기 때문에 도저히 ‘필름 되감기(기본 적분 찾기)’가 눈으로 보이지 않는 경우가 무수히 터져 나옵니다. 이 답 없는 수식 보호막 락(Lock)을 뚫어버리는 역사적인 수학자들의 백도어(Backdoor) 해킹 기술이 바로 ‘치환적분법(Integration by Substitution)’ 입니다.
1. 합성 함수의 더러운 뱃속
예를 들어 너무 괴상하게 생긴 다음과 같은 마피아 보스 함수 덩어리가 있다고 합시다.
\[\int 2x(x^2 + 1)^{50} dx\]아니, 이걸 어떻게 풀까요? 괄호 무더기를 50번 곱셈해서 풀어헤치는 전개 노가다 코딩을 돌리느니 차라리 죽는 게 나을지 모릅니다. 우리의 뇌 회로로는 도저히 “미분하기 전 오리지널 원본 함수”를 단 1초 만에 감으로 찍어 역추적할 수가 없습니다. 저 안에 있는 $x^2 + 1$ 이라는 내부 코어 로직이 거대한 50제곱($50$) 투구 껍데기 속에 숨어 있기 때문이죠.
2. 해킹의 시작: 이름표 스와핑(치환)
여기서 치환적분이라는 이름표 바꿔치기 해킹 스킬이 등장합니다. 이 복잡한 괄호 안의 귀찮은 한 무더기 뱃속 데이터 알맹이 $(x^2 + 1)$ 전체를 그저 짧고 쿨한 알파벳 하나 $u$ 라는 메모리 변수로 확 덮어 씌워서 바꿔버립니다 (치환, Substitution).
- 지정: 일단 내장을 덮어씁니다.
u = x^2 + 1 -
미분 검사 (가장 중요한 핵심): 이 $u$를 $x$에 대해 껍질을 까보듯 한 번 미분을 갈겨 봅니다. $\rightarrow \frac{du}{dx} = 2x$ 어엇?! 놀랍게도 이 나오는 쓰레기 파편 값 $2x$ 가 적분식 바깥에서 돌아다니던 녀석($2x$)과 얼굴이 완전히 모조리 100% 똑같습니다!
- 쓰레기 교환 (치환의 마법): $du = 2x dx$ 가 되면서, 수식 안에 있던 귀찮은 찌꺼기 부분인 $2x dx$ 덩어리 전원을 단 1바이트 짜리 깔끔한 글자 파편 $du$ 로 완벽하게 일대일로 렌더링 파일 덮어쓰기 해버릴 수 있게 됩니다!
자, 이제 괴물 같았던 원본 방정식은 어떻게 되었을까요? 파괴력이 엄청납니다.
원본 코드: $\int \mathbf{2x}(\mathbf{x^2 + 1})^{50} \mathbf{dx}$ 해킹 후 코드: $\int u^{50} \mathbf{du}$
3. 마사지된 평화로운 세상을 풀다
세상에! 초등학생 수준의 평화로운 수식 $u^{50}$ 이 되었습니다. 이 녀석을 적분(필름 되감기)하는 건 누워서 떡 먹기입니다. 차수를 하나 올리고 그 숫자로 나눠주면 되니까요.
$\rightarrow \frac{1}{51} u^{51} + C$
마지막 피날레입니다. 우리는 가짜 메모리 주소 $u$ 라는 아바타 변수를 빌렸을 뿐입니다. 이제 마스크를 벗기고, 원래 본체였던 내장 코드 $(x^2 + 1)$ 을 $u$ 자리에 다시 쑤셔 넣어서 돌려보내 줍니다.
정답 결론: $\frac{1}{51} (x^2 + 1)^{51} + C$
완벽하게 해킹이 성공했습니다! 50제곱 투구를 부수지 않고도 껍질을 통째로 이식해 계산을 끝내버린 것입니다.
이처럼 ‘치환적분법’은 프로그래밍에서 긴 배열 변수 덩어리를 let temp = Array.어쩌구 형식의 단일 변수로 임시 포장하여 반복문 루프 로직을 짤 때 코드의 복잡성을 극도로 줄이는 (Refactoring 리팩토링) 아이디어와 그 뿌리가 완벽하게 일맥상통합니다.