본문으로 건너뛰기
🛠️ToolsShed

테일러 급수 계산기

sin·cos·exp·ln 등의 테일러/맥클로린 급수 근사 계산.

급수 공식

sin(x) = x - x³/3! + x⁵/5! - x⁷/7! + ...

이 도구 소개

테일러 급수는 복잡한 함수를 다항식과 산술만으로 근사할 수 있는 수학의 가장 강력한 도구 중 하나입니다. 정현, 코사인, 지수함수 같은 초월함수를 직접 계산하는 대신, 테일러 급수는 이를 무한개의 단순한 대수 항의 합으로 분해합니다. 각 항은 계승과 거듭제곱만으로 이루어져 있으며, 이는 해석적으로 풀기 어려운 문제를 계산기나 브라우저에서 효율적으로 처리할 수 있는 형태로 변환합니다.

이 계산기를 사용하면 테일러 급수와 매클로린 급수가 어떻게 작동하는지 직접 탐구할 수 있습니다. 함수(정현, 코사인, 지수, 자연로그, 역탄젠트, 제곱근, 등비급수)를 선택하고 중심점과 근사점을 지정하면 급수가 실제 값에 수렴하는 과정을 실시간으로 관찰할 수 있습니다. 항을 추가할 때마다 부분합이 정확한 값에 가까워지고 오차는 급격히 감소합니다. 이러한 실습을 통해 수렴의 원리와 급수의 정확도가 중심점으로부터의 거리에 어떻게 의존하는지 깊이 있게 이해할 수 있습니다.

테일러 급수는 수치해석, 물리 시뮬레이션, 컴퓨터 그래픽에서 필수적입니다. 조회 테이블 없이도 초월함수를 계산할 수 있어 메모리와 처리 속도를 절약하기 때문입니다. 공학자와 과학자들은 복잡한 비선형 시스템을 선형화할 때 사용하고, 물리학자들은 섭동 이론에 적용하며, 머신러닝 실무자들은 활성화 함수 근사에 활용합니다. 미적분학을 공부하는 학생부터 고급 수학을 배우는 사람, 함수 계산이 필요한 소프트웨어를 개발하는 전문가까지, 이 도구는 수학의 가장 우아하고 실용적인 개념 중 하나를 시각적으로 이해하는 창을 제공합니다.

자주 묻는 질문

코드 구현

import math

def factorial(n: int) -> int:
    return math.factorial(n)

def taylor_sin(x: float, n_terms: int) -> list[float]:
    """sin(x) = sum(-1)^n * x^(2n+1) / (2n+1)!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = ((-1)**n * x**(2*n+1)) / factorial(2*n+1)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

def taylor_exp(x: float, n_terms: int) -> list[float]:
    """e^x = sum x^n / n!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = x**n / factorial(n)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

def taylor_cos(x: float, n_terms: int) -> list[float]:
    """cos(x) = sum(-1)^n * x^(2n) / (2n)!"""
    terms = []
    partial_sum = 0
    for n in range(n_terms):
        term = ((-1)**n * x**(2*n)) / factorial(2*n)
        partial_sum += term
        terms.append({'n': n, 'term': term, 'partial_sum': partial_sum})
    return terms

# Example: sin(0.5)
x = 0.5
n_terms = 6
result = taylor_sin(x, n_terms)
approx = result[-1]['partial_sum']
exact = math.sin(x)
print(f"sin({x}) approximation with {n_terms} terms:")
for r in result:
    print(f"  n={r['n']}: term={r['term']:.8f}, sum={r['partial_sum']:.10f}")
print(f"Exact: {exact:.10f}")
print(f"Error: {abs(approx - exact):.2e}")

Comments & Feedback

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