Go to the first, previous, next, last section, table of contents.


最小探索(Minimization)

a N (calc-find-minimum) [minimize] コマンドは、 式の最小値を見つけます。 この操作は a R (calc-find-root) と非常によく似ていて、 スタックに式と初期推定値を置き、プロンプトに答えて変数名を指定します。 初期推定値は求める最小付近の変数(座標)値でも良いし、 求める最小を含む区間でも構いません。 関数は、式を最小にする変数値とそれによる最小値からなるベクトルを返します。

このコマンドは局所的な極小を探すことに注意してください。 多くの関数は複数個の極小を持っていて、いくつかは x sin(x) のように無限に多くの極小を持っています。 実際、 x sin(x) の「グローバルな」最小値を定義するのは容易ではありませんが、 それでも Calc はどんなローカル極小でも発見できます。 基本的に Calc は初期推定値から坂を降って行き、 関数値がその左右両方向に大きくなる点を見つけるまで続けます。 最小探索において、Calc は微分を使いません。

もし初期推定が区間であり、かつ極小が区間の一端で起るように見える場合、 Calc はその端点が閉じられている場合に限りその端点を返します。そのため、 区間 [2..3] における 17 x の最小を探させると [2, 34] (訳注: 原文には [2, 38] となっているが間違いであろう。 実際には [2, 34.] を返す) を返しますが、 (2..3] で探すと見つかりません。一般に、 x のその範囲での文字通りの最小値を見つけるには閉区間を使うべきで、 その範囲に存在するかもしれない極小を見つけるには開区間を使うべきです。

たいていの関数は、その極小の近傍では滑らかで傾きがありません。 この平坦さのせいで、現在の精度が、例えば12桁である場合、 変数はおよそ 6桁の精度でしか決定されません。 そのため、必要とする精度の2倍の桁数に計算精度を設定すべきです。

H a N [wminimize] コマンドは、H a R と同様に、 与えた区間内に極小が存在することを求めるよりむしろ、 推定区間を拡大して極小を囲もうとします。

a X (calc-find-maximum) [maximize] および H a X [wmaximize] コマンドは、 与式を正負反転したものを最小探索(訳注: 実質的に最大探索)します。

区間内(初期推定が区間でなく数値の場合はその近傍)の全ての点で、 式は実数に評価されなければなりません。 もし初期推定値が複素数ならば、変数は複素数として極小が探され、 初期推定値が実数か区間であれば、実数領域で探されます。


Go to the first, previous, next, last section, table of contents.     利用度数