假设我有一些 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}}