我有以下向量/矩阵:
a --> nx1
b --> nx1
C --> nxn
鉴于我知道 a 和 C,我想通过改变向量 b 在 Matlab 中最大化以下内容:
S = a(1)*log(sum(b.*C(:,1),1))+...+a(n)*log(sum(b.*C(:,n),1))
因此,要最大化的总和 S 的每个元素由下式构成:
- 向量 a 的第 i 个元素乘以 (2)
- (3) 的自然对数
- (4)中获得的元素总和
- 向量 b 的元素与矩阵 C 的第 i 列的元素的逐元素相乘
该问题的约束条件是 b 的每个元素必须 >=0 且 <=1,并且它们的总和必须为 1。
我假设我必须使用 fmincon 函数和 minimze -S 但不确定如何设置函数 S。