1

を使用して方程式に 2 つのパラメーターを当てはめたいと思いますfmincon。でそれを行いましlsqnonlinたが、 の不等式制約を利用したいと思いますfmincon

問題は、測定データの 2 つのベクトルを、たとえばy(x)で行ったのと同じ方法で関数に渡すことができないことですlsqnonlin

どうすればいいですか?

estim = lsqnonlin(@fit_simp,X0,lb,ub,options,X,Y) %X,Y are the measured data in vectors, y(x)

estim = fmincon(@fit_simp,X0,[],[],[],[],[],[],nonlcon,options); 

測定されたベクトルをどのように渡すのですか?

4

1 に答える 1

1

次のような無名関数を使用します。

estim = fmincon(@(y)fit_simp(y),X0,[],[],[],[],[],[],nonlcon,options); 

明らかに、パラメータを受け入れるために目的関数を調整する必要がありますfit_simpfit_simp(y)

これはドキュメントから直接のものです。このページでanonymousを検索してください。

http://www.mathworks.com/help/optim/ug/fmincon.htmlおよびhttp://www.mathworks.com/help/optim/pass-extra-parameters.html

コードで、XとYの2つの追加パラメーターをpasしたいのを見ました。無名関数の単一の変数にこれらをカプセル化する必要があるかもしれません(ただし、両方を送信できるかどうかはわかりません)。

試す

options.Y = Y;
options.X = X;

その後、@(options)fit_simp(options)

于 2013-01-25T11:52:15.693 に答える