如何用"fmincon"求解矩阵最小化
How to use "fmincon" to solve matrix minimization
问题:如何用"fmincon"求解下面的最小化矩阵问题?
我正在尝试找到
a * ( b – ( inv(a) * inv(inv(a) + transpose(c)*inv(f)*c) * (inv(a)*d + transpose(c) * inv (f) * e) ) )^2
根据以下条件最小化:
f > 0
++++变量:
- a 是已知的 (8x8) 矩阵。
- b 是已知的 (8x1) 列向量。
- c 是已知的 (1x8) 列向量。
- d 是已知的 (8x1) 标量。
- e 是已知的 (1x1) 标量。
和
- f 是标量且未知。
感谢 @m7913d,我通过 Isqnonlin 解决了代码:
clc;
clear all;
% random inputs A, B, C, D and E
a = rand(8,8)'*rand(8,8);
b = 2*rand(8,1) - 1;
c = 2*rand(1,8) - 1;
d = 2*rand(8,1) - 1;
e = 2*rand(1,1) - 1;
% minimization term
fun = @(f) a * ( b - ( inv(a) * inv(inv(a)+c'*inv(f)*c) * (inv(a)*d+c' * inv(f) * e) ) );
f = lsqnonlin(fun,0.1,0,+inf)
问题:如何用"fmincon"求解下面的最小化矩阵问题?
我正在尝试找到
a * ( b – ( inv(a) * inv(inv(a) + transpose(c)*inv(f)*c) * (inv(a)*d + transpose(c) * inv (f) * e) ) )^2
根据以下条件最小化:
f > 0
++++变量:
- a 是已知的 (8x8) 矩阵。
- b 是已知的 (8x1) 列向量。
- c 是已知的 (1x8) 列向量。
- d 是已知的 (8x1) 标量。
- e 是已知的 (1x1) 标量。 和
- f 是标量且未知。
感谢 @m7913d,我通过 Isqnonlin 解决了代码:
clc;
clear all;
% random inputs A, B, C, D and E
a = rand(8,8)'*rand(8,8);
b = 2*rand(8,1) - 1;
c = 2*rand(1,8) - 1;
d = 2*rand(8,1) - 1;
e = 2*rand(1,1) - 1;
% minimization term
fun = @(f) a * ( b - ( inv(a) * inv(inv(a)+c'*inv(f)*c) * (inv(a)*d+c' * inv(f) * e) ) );
f = lsqnonlin(fun,0.1,0,+inf)