代码如下:
Clear["`*"]
Print["------(*目标函数为f(x,y),决策变量为x和y,同时做决策*)---------------------"]
f[x_, y_] :=
x (a - b x + c (u - x)) + y (a - b y + c (v - y) + d (x - y));
Print["------(*求解海瑟矩阵*)---------------------"]
H = MatrixForm[D[f[x, y], {{x, y}, 2}]]
(*or: MatrixForm[HessianH[f[x,y],{x,y}]]*)
Print["------(*海瑟矩阵的一阶顺序主子式*)---------------------"]
H11 = H[[1, 1, 1]](*判断:一阶顺序主子式<0*)
Print["------(*海瑟矩阵的二阶顺序主子式*)---------------------"]
H12 = Det[D[f[x, y], {{x, y}, 2}]](*判断:二阶顺序主子式>0*)
(*or: Det[(\[NoBreak]-2 b-2 c d
d -2 b-2 c-2 d
\[NoBreak])]*)
结果如下:
注意:凹函数满足的限制条件海瑟矩阵负定,海瑟矩阵负定即一阶顺序主子式<0,二阶顺序主子式>0
可参考:海瑟矩阵以及正负定的判定