高次多項式の因数分解

多項式入力

サンプル多項式:

入力形式の説明:

累乗の表記: ^ 記号を使用、例 x^2、x^3
乗算の表記: 必ず * 記号を使用、例 2*x^2、-3*x
加減算: + と - で各項を接続
定数項: 数値を直接記述、例 + 6、- 12

因数分解の結果

多項式を入力して因数分解を開始

アルゴリズムの説明:

1. 有理根定理(Rational Root Theorem):
整数係数多項式 a_n·x^n + ... + a_1·x + a_0 について、有理根 p/q(既約形式)が存在する場合:
  • p は定数項 a_0 の約数
  • q は最高次係数 a_n の約数
  • 可能な有理根:±(pの約数)/(qの約数)
  • 例:x³ - 6x² + 11x - 6 の場合、可能な有理根は ±1, ±2, ±3, ±6
2. 総合除法(Synthetic Division):
根の検証と多項式除算に使用:
  • r が多項式 P(x) の根の場合、P(x) = (x - r)·Q(x)
  • 総合除法により商多項式 Q(x) を高速に取得
  • Q(x) の因数分解を続行し、分解できなくなるまで実施
3. 数値求根法:
有理根定理で整数根が見つからない場合、数値的手法を使用:
  • ニュートン法:x_{n+1} = x_n - f(x_n)/f'(x_n)
  • 実数根(無理数の可能性あり)の求解に使用
  • 複素根については実部と虚部を表示
  • 例:x^2 - 2 = (x - sqrt(2))(x + sqrt(2))
4. 特殊形式の識別:
  • 平方差:a^2 - b^2 = (a + b)(a - b)
  • 完全平方:a^2 +/- 2ab + b^2 = (a +/- b)^2
  • 立方差/和:a^3 +/- b^3 = (a +/- b)(a^2 -/+ ab + b^2)
  • 共通因数の抽出:例 x³ + 2x² = x²(x + 2)

アルゴリズムの複雑度:

  • 有理根探索:O(d·n)、d は可能な根の数、n は多項式の次数
  • 総合除法:O(n) 1回の除算あたり
  • 数値求根:O(k·n)、k は反復回数

注意事項:

  • 整数係数の多項式のみ対応
  • 高次多項式(5次以上)は有理根に完全分解できない場合があります
  • 数値解には丸め誤差が生じる可能性があり、近似値として表示
  • 複素根は a + bi 形式で表示
  • 既約多項式は元の式のまま表示