1

いくつかのxの関数と配列変数があるとします。

A = Array[a, 2];
f[x_] := (x-.5)^2 + a[1]^2 + a[2]^2

ここで、両方を最小化したいと思います。これはエラーにつながります。

FindMinimum[f[x], {x, A}]

FindMinimum :: nrlnum:関数値{0.707107,1.41421 a [1。]}は、{x、A} = {1.、1。}で次元{2}の実数のリストではありません。>>

これをどのように書く必要がありますか?

対照的に、配列以外の変数では正常に機能します。

f[x_] := (x-.5)^2 + y^2 + z^2;
FindMinimum[f[x], {x, y, z}]
{0., {x -> 0.5, y -> 0., z -> 0.}}

そして、不思議なことに、配列変数しかない場合は問題なく動作します。

A = Array[a, 3]
f := (a[3] - .5)^2 + a[1]^2 + a[2]^2
FindMinimum[f, A]
{0., {a[1] -> 0., a[2] -> 0., a[3] -> 0.5}}
4

1 に答える 1

3

私がやる:

bigA = Array[a, 2];
f[x_] := (x - .5)^2 + Total[bigA^2]

FindMinimum[f[x], Flatten[{x, bigA}]]
(* {0., {x -> 0.5, a[1] -> 0., a[2] -> 0.}} *)
于 2013-01-16T15:38:58.290 に答える