コンテンツへスキップ
🛠️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.