Main Content

fnmin

指定した区間での関数の最小値

説明

fnmin(f) は、f の基本区間における "スカラー値の一変量" スプラインの最小値を返します。

fnmin(f,interv) は、interv で指定される区間 [a..b] における f "スカラー値の一変量" スプラインの最小値を返します。

[minval,minsite] = fnmin(f,...) は、f の関数がその最小値 minval を取得する位置 minsite も返します。

すべて折りたたむ

この例では、関数 fnmin を使用して、f のスプラインの最大値と最小値を計算する方法を説明します。

最大値の計算

21 個のノットと 15 個のランダムな係数をもつスプライン f を作成し、プロットします。

f = spmak(1:21,rand(1,15)-.5);
fnplt(f)

-f の最小値の負の値として f の最大値を計算し、その後、計算された最大値の高さに水平線としてプロットします。

maxval = -fnmin(fncmb(f,-1));
hold on, plot(fnbrk(f,'interv'),maxval([1 1])), hold off

Figure contains an axes object. The axes object contains 2 objects of type line.

最小値の計算

関数 spmak を使用して、スプラインを作成し、プロットします。

f2 = spmak(1:5,-1);
fnplt(f2)

Figure contains an axes object. The axes object contains an object of type line.

f2 の最小値とスプラインがその最小値をとるサイトを計算します。

[y,x] = fnmin(spmak(1:5,-1))
y = 
-0.6667
x = 
3

入力引数

すべて折りたたむ

以下のフィールドをもつスプラインの構造体です。

スプラインの形式。char として返されます。

スプラインのノットの非減少シーケンス。ベクトルとして返されます。

スプラインの係数。スカラー、ベクトル、行列として返されます。

スプラインの区分数。スカラーとして返されます。

スプラインの次数。スカラーとして返されます。

スプラインの係数の次元。スカラーとして返されます。

関数が f の最小値を計算する値の範囲。ベクトルとして指定します。

データ型: single | double

出力引数

すべて折りたたむ

f におけるスカラー値の一変量スプラインの最小値。スカラーとして返されます。

f のスプラインが最小値 minval をとるサイト。スカラーとして返されます。

アルゴリズム

fnmin のアルゴリズムではまず、関数の基本区間を、指定された区間に変更します (ある場合)。次にこの区間において fnmin は、ジャンプ時の左右の極限および関数の 1 次導関数の零点に対し、関数のすべての局所的極値を見つけます。その後、これらの極値および区間の端点において関数の評価を行い、これらすべての値の最小値を判断します。

バージョン履歴

R2006b で導入