27.6.7 方程式の解法に関するガイドライン

式 0 = f(x) の解が判然とせず、基本的な手法ではこれを解くことができない場合があります。このような場合、解の位置を推定するもっとも簡単な方法を以下に示します:

  1. Plot Equations ダイアログボックスを使用して、関数方程式 y = f(x) のグラフを作成する。

  2. 作成したグラフを見て x 軸と交差する点を調べる。

    このテクニックは、Function Solver (Plot Equation ダイアログボックスの Solve タブ) にある独立変数 x の上限および下限の範囲を決定するのに利用することができます。

    指定した範囲に比べて方程式の2つの解の幅が狭い場合、Function Solver は両方の解を返さないことがあります。解の分解能は、範囲サイズより約2ケタ小さくなります。分解能を高くしたければ、上限および下限の範囲を調整し、範囲サイズを狭くします。

    グラフ y = f(x) が X 軸とは交差せず、X 軸の上か下の一方に接しているような点における 0 = f(x) の解の決定において、 丸め誤差 (roundoff error) による特異な困難があります。

    例えば、x = 0 における y = x^3+x^2 のグラフがこのような場合です。多くの場合、上記の方程式と同様、Function Solver は、解を出力しますが、Results ボックスに解が見つからないと出力されるケースがあります。

    Function Solver で解が見つからないのはそのような特殊な解があるためであると考えられる場合、以下のテクニックを試して解を近似してください:

  3. 方程式の左辺の値を少刻みに変更する。

  4. 方程式をもう一度解く。

    これは、この方程式のグラフが軸の上下両側にかかるまで少しずつ上下にシフトさせるのと同じことです。一般的に、Results 編集ボックスは非常に接近した2つの解をレポートします。方程式の左辺を小さな値を使って調整するほど、この2つの解は1つに収束していくように見えます。

    例えば、区間 x = 1 から x = 2 における方程式 0 = sin(2*x)*cos(3*x) の解を求めてみましょう。Function Solver には No Solutions (解なし) と表示されるはずです。上記のテクニックを使えば、真の解 PI/2 に近い解を得られるでしょう。

    疑似解 (Spurious Solutions)
    まれに疑似解があらわれる問題があります。x=a における式 f(x) の値が、x = a が 0 = f(x) の真の解でないにもかかわらず、浮動小数点数の限界により、ゼロが算出されるような場合です。このような状況は、一般に y = f(x) のグラフが X 軸と交差する点の付近で非常に "flat (平坦) " になっている場合に生じます。

    例えば、方程式 0 = x^201 を考えてみましょう。この方程式を区間 X=0 と x=1 の間で解くと、真の解は x=0 であるにもかかわらず、Function Solver は 13個 の解を返します。これは、201乗した13の解それぞれがマシンの浮動小数点表記におけるゼロと同じであるためです。