"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)
我正在使用 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)