如何在CVX里面表示log(1+1/x)

如何在CVX里面表示log(1+1/x)


y log ⁡ ( y x ) y\log(\frac{y}{x}) ylog(xy)是一个凸函数,具体可查看凸优化书本的关于透视函数这一章节。
这个函数在CVX里面有专门的函数表达,即 rel_entr ( y , x ) \text{rel\_entr}(y,x) rel_entr(y,x).

因此,我们展示使用 rel_entr ( ) \text{rel\_entr}() rel_entr()函数来表示 log ⁡ ( 1 + 1 / x ) \log(1+1/x) log(1+1/x)
(1)对于通式 y log ⁡ ( 1 + y x ) y\log(1+\frac{y}{x}) ylog(1+xy)的变换
y log ⁡ ( 1 + y x ) = y log ⁡ ( x + y x ) = ( x + y ) log ⁡ ( x + y x ) − x log ⁡ ( x + y x ) (a) y\log(1+\frac{y}{x}) = y\log(\frac{x+y}{x}) = (x+y)\log(\frac{x+y}{x})-x\log(\frac{x+y}{x}) \tag{a} ylog(1+xy)=ylog(xx+y)=(x+y)log(xx+y)xlog(xx+y)(a)
对于 − x log ⁡ ( x + y x ) -x\log(\frac{x+y}{x}) xlog(xx+y), 有
− x log ⁡ ( x + y x ) = x log ⁡ ( ( x + y x ) − 1 ) = x log ⁡ ( x x + y ) (b) -x\log(\frac{x+y}{x}) = x\log \Big((\frac{x+y}{x})^{-1}\Big) = x \log(\frac{x}{x+y}) \tag{b} xlog(xx+y)=xlog((xx+y)1)=xlog(x+yx)(b)
将公式(b)代入公式(a),得到:
y log ⁡ ( 1 + y x ) = y log ⁡ ( x + y x ) = ( x + y ) log ⁡ ( x + y x ) + x log ⁡ ( x x + y ) (c) y\log(1+\frac{y}{x}) = y\log(\frac{x+y}{x}) = (x+y)\log(\frac{x+y}{x}) + x \log(\frac{x}{x+y}) \tag{c} ylog(1+xy)=ylog(xx+y)=(x+y)log(xx+y)+xlog(x+yx)(c)
所以, y log ⁡ ( 1 + y x ) y\log(1+\frac{y}{x}) ylog(1+xy)在CVX里面可以表达为 rel_entr ( x + y , x ) + rel_entr ( x , x + y ) \text{rel\_entr}(x+y,x)+\text{rel\_entr}(x,x+y) rel_entr(x+y,x)+rel_entr(x,x+y)

(2)公式 log ⁡ ( 1 + 1 / x ) \log(1+1/x) log(1+1/x)的表达:
y = 1 y=1 y=1,所以我们可以得到,
log ⁡ ( 1 + 1 / x ) → rel_entr ( x + 1 , x ) + rel_entr ( x , x + 1 ) \log(1+1/x) \rightarrow \text{rel\_entr}(x+1,x)+\text{rel\_entr}(x,x+1) log(1+1/x)rel_entr(x+1,x)+rel_entr(x,x+1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值