2

魚への波面の入射角度に応じて魚の音響強度を計算する機能があります。また、音響強度の現場測定もいくつか行っています。私がやろうとしているのは、どの正規分布の角度が結果としてモデル データとその場のデータと最も密接に一致するかを把握することです。

これを行うには、Matlab 関数 fmincon を使用して次の関数を最小化しようとしています。

function f = myfun(x)

TS_krm = KRM(normrnd(x(1),x(2),100,1), L);
f = sum((TS_insitu - TS_krm).^2);

したがって、この関数が行うことは、最小化したい二乗残差の合計を計算することです。これを行うには、fmincon を使用してみます。

x = fmincon(@myfun, [65;8], [], [], [], [], [0;0], [90;20], [], options);

したがって、平均 65 度、標準偏差 8 の開始方向を使用しています。また、平均角度の範囲を 0 から 90 度に、標準偏差の範囲を 0 から 20 度に設定しています。 .

しかし、関数を最小化する平均角度と標準偏差角度を適切に見つけられていないようです。通常、N(65,8) 付近の何かを出力します。これは、開始点から遠く離れた他の多くの値を実際に試していないように見えます。

これを機能させるために何ができるかについてのアイデアはありますか? TolX と TolFun の設定を設定できることは知っていますが、それらが何を行い、どのような効果があるかはよくわかりません。それが役立つ場合、私が扱っている典型的な値は通常約 -45 dB です。

ありがとう!

4

1 に答える 1

1

異なる入力に対する f の値の大きさの順序を確認する必要があります。TolFun に入力する必要がある値 (f の変化に対する最小化アルゴリズムの許容範囲) に影響を与える可能性があります。たとえば、TolFun = 1e-6 で f(45) と f(64) の差が 1e-7 の場合、アルゴリズムは 65 で停止する可能性があります。また、使用しているアルゴリズムは、関数が微分可能であると想定していると思います(導関数を使用して「次に行く場所」を見つけます)、これがあなたの関数に当てはまるかどうかはわかりません。そうでない場合は、シンプレックスを使用して最小値を見つける必要があります。

于 2010-12-16T01:13:49.883 に答える