1

MATLAB の関数 fmincon で最小二乗二次誤差を最小にしながら、3 つのパラメーターを推定したいと考えています。私の目的関数は次のようになります。

f = @(a,b,c) sum(sum(sum((M - a - b - c).^2)));

ここ Mで、 は次元 20x7x16 の 3D 配列であり、推定されたパラメーターa, b, cはそれぞれ次元 20x1、7x1、および 16x1 のベクトルです。それを推定するために、ベクトルaを配列 20x7x16 に繰り返して 3D にも「作成」し、 と についても同じことをb行いcます。ベクトルの要素の合計を線形制約として 1aにする必要があります。b私の問題は2つあります:

  1. Aeq が 2D 行列で、beq がベクトルの場合、線形制約を指定するにはどうすればよいですか?
  2. a,b,cの開始点を設定して、それらの推定値がこの 3D 配列で繰り返されるベクトルであることを MATLAB が認識 できるようにするにはどうすればよいですか?

M3D 配列を 2D マトリックスに展開してパラメーターを調整したかったa,b,cのですが、マトリックスではなくベクトルとして定義する必要があるため、開始点の問題はまだ残っています。

アイデアや提案をいただければ幸いです。おそらく私は複雑に考えていて、それを行う別の方法があります。

前もって感謝します。

4

1 に答える 1