📄 example4_10.m
字号:
%第一步:决定那个变量作为第一参数传递给函数quadprog。
%A或B作为第一自变量传给quadprog。此例中,我们选B作为第一自变量。于是A
%作为附加参数传给它。
quadprog(B,f,[],[],[],[],l,u,xstart,options,A)
%第二步:写一个计算海色矩阵乘积的函数。
%现在,定义一个使用A和B计算海色乘积的函数qpbox4mult。
W = qpbox4mult(Hinfo,Y,p1,p2...)
%qpbox4mult必须接受传给函数quadprog相同的第一自变量,即qpbox4mult
%需选B作为第一自变量。
%第二个自变量为矩阵Y,因为函数f quadprog使用参数Y去计算海色矩阵的乘积,
%Y是一个n行矩阵,n即为此问题的维数。Y的列数是可变的。最后,任何附加的
%参数都会传递给函数qpbox4mult,于是qpbox4mult接受了相同的附加参数例
%如矩阵A。
function W = qpbox4mult(B,Y,A);
W = B*Y + A*(A'*Y);
%第三步:使用二次规划函数quadprog解此问题。
%从文件qpbox4.mat中装入参数。使用optimset设置HessMult为函数
%qpbox4mult的局柄。B作为第一参数,而A作为附加参数。
load qpbox4 % Get xstart, u, l, B, A, f
mtxmpy = @qpbox4mult; % Function handle to function qpbox4mult
options = optimset('HessMult',mtxmpy);
[x,fval,exitflag,output] = quadprog(B,f,[],[],[],[],l,u, xstart,options,A);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -