0

私はCが初めてです。

C から optim 関数を使用しようとしています。「R 拡張機能の記述」セクション 5.8 によると、Nelder Mead メソッドには 16 個の引数が必要です。

void nmmin(int n, double *xin, double *x, double *Fmin, optimfn fn,
           int *fail, double abstol, double intol, void *ex,
           double alpha, double beta, double gamma, int trace,
           int *fncount, int maxit);

私の理解では、関数の引数でデフォルト値を受け入れる R とは異なり、C では関数のユーザーがすべての引数を提供する必要があります。私は最適な hep ページを読みましたが、これらの引数のいくつかの意味を理解するのにまだ問題があります。

  • 不合格
  • イントール
  • fncount

すべての引数の説明がどこにあるかを誰かに教えてもらえれば、非常に感謝しています。

ps

以下は、それらが何であるかを理解するための引数です。

  • n: パラメータの数
  • xin: パラメータの初期値
  • x: 終了時の最終パラメータのストレージ、fi 付き
  • Fmin: 目的関数の最終値
  • fn: 目的関数
  • abstol: 絶対許容度
  • maxit: 最大反復回数
  • trace: 非負の整数。正の場合、最適化の進行状況に関するトレース情報が生成されます。

以下は、Nelder Mead メソッドに固有のいくつかの引数です。

  • alpha: R optim 関数の使用 = 1

  • ベータ: R optim 関数の使用 = 0.5

  • ガンマ: R 最適関数の使用 = 2 (最適関数コードを読み取って、これらの既定値を見つけました)

4

1 に答える 1

2

fail - 関数が失敗した場合は true を受け取ります

intl - ユーザーが初期化した変換の許容範囲

ex - 最適化関数に渡すデータ (fn)

alpha - 反射係数

ベータ - 収縮および縮小係数

ガンマ - 拡張係数

fncount - 反復ループで最適化関数が呼び出された回数を受け取ります

これらのパラメーターがどのように使用されているかは、次の場所で確認できます。

http://fossies.org/dox/R-2.15.1/optim_8c_source.html#l00674

たとえば、 intl は次のように使用されます。

convtol = intol * (fabs(f) + intol);
if (trace) Rprintf("  Scaled convergence tolerance is %g\n", convtol);

Nelder-Mead アルゴリズムの詳細については、Pascal コードを使用して以下に示します。

http://books.google.com/books?id=M9hTn3UAheQC&pg=PA173

(Compact Numerical Methods for Computers: Linear Algebra and Function Minimization by John C. Nash)

于 2012-10-07T01:35:54.383 に答える