mathematica中求解二元变量的目标函数的海瑟矩阵并判断目标函数的凹凸性(判断顺序主子式的正负定)

代码如下:

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

可参考:海瑟矩阵以及正负定的判定

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值