0
私はだから私は、次のMATLABコード(nlp.m
)書くMatlab:関数定義でワークスペース変数にアクセスできますか?
を最小限定数A1、B1を見つけたい:
function NLP
x0 = ones(2, 1);
[a1b1, sum1] = fmincon(@objfun, x0, [], [], [], [], [], [], [])
function sum1 = objfun(a1b1)
sum1 = sum(abs(a1b1(1) * x + a1b1(2) - y));
ワークスペース
で作成x
と
y
のn-ベクトルとを
しかし、nlp.m
を実行すると、次のエラーが表示されます。
>> nlp
Undefined function or variable 'x'.
...
私はworkspaceで定義された変数にアクセスできないようです。では、どうすれば を処理できますか?
最良の方法は、引数として 'X'を取るobjfun' '' objfun'に 'X'を通過し、そうさせることです。 – edwinksl
'fmincon'とすべての種類の反復メソッドを必要とせずに、最小二乗適合を使用するだけではどうですか?私は彼らにとって同じ結果を期待していますか?私。 | r | | r |^2と同じ最小値を持ち、したがってr^2、rは残差である。 – Bernhard
@edwinkslちょっとした例であなたのコメントを答えにしてみませんか? – Bernhard