"scalar-valued" Mathematica 最大化错误

"scalar-valued" Mathematica maximization error

我正在使用 Mathematica 对 objective 函数“f”进行最大化处理

Maximize[{f, x1 > 0, y1 > 0, (x2 - x1) < l, (x2 - x1) > 0, (y2 - y1) < b, (y2 - y1) > 0, \k<= 0.3}, {x1, x2, y1, y2, k}, Reals]

它给我“objective 函数应该是标量值”。 有人遇到过这个问题吗?可能是什么错误?

如果objective函数(f)是2个或多个矩阵乘法过程的乘积 例如:

A.B

其中 A 是 (1x4) 矩阵,B 是 (4x1) 矩阵。 那么乘积( objective 函数)应该只是具有未知参数的标量值表达式,需要最大化。出现问题是因为 Mathematica 认为矩阵乘积的结果是另一个矩阵,即使它只是一个数字(它被认为是 (1x1) 矩阵)。然后当我试图最大化它时,这个过程不是程序的逻辑,因为不可能最大化矩阵。所以,它给了我那个错误

 "The objective function should be scalar-valued"

解决,首先重新定义objective函数如下:

F=f[[1,1]];

然后最大化 (F)