| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1954 人关注过本帖
标题:cvxpy 关于x*log(x/y)问题出现must be real number, not AddExpression
只看楼主 加入收藏
jiangxiao12
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-12-29
收藏
 问题点数:0 回复次数:1 
cvxpy 关于x*log(x/y)问题出现must be real number, not AddExpression
对于凸优化有专门的编程规则,x 和 y 是要优化的变量,在 matlab 中对于出现 xlog (x/y) 函数可以用 rel_entr (x/y) 来代替,这样才符合凸优化的编程规则,但是在 python 中没有类似的函数,我该怎么去表达关于 xlog (x/y) 的表达式。以下是关于这部分我测试的代码。

%%
import math
import cvxpy as cp
import numpy as np
import matplotlib.pyplot as plt

%%
x = np.linspace(0, 10)
y = np.linspace(0, 10)
plt.plot([np.sqrt(y) / np.exp(y) for y in np.linspace(0, 10)])
plt.show()

%%
Create two scalar optimization variables.
在 CVXPY 中变量有标量 (只有数值大小),向量,矩阵。
在 CVXPY 中有常量 (见下文的 Parameter)
alpha1 = 0.5
alpha2 = 0.5
beta1 = 0.8
beta2 = 0.8
h1 = 4
h2 = 2
g1 = 4
g2 = 2
n = 8
sigma = 1
alpha1 = cp.Variable () # 定义变量 x, 定义变量 y。两个都是标量
alpha2 = cp.Variable()
alpha3 = cp.Variable()
constraints = [#alpha1<=1,

           #alpha1>=0,
           alpha2<=1,
           alpha2>=0,
           alpha3<=1,
           alpha3>=0,
           alpha2+alpha3 == 1,
           #alpha1*math.log2(1+((beta1*(abs(h1))**2*(abs(g1))**2)/sigma**2))>=2,
           alpha2*math.log2(1+((beta2*(abs(h2))**2*(abs(g2))**2)/sigma**2))>=2]
obj = cp.Maximize(alpha3*math.log2(1+(alpha2/alpha3)))
prob = cp.Problem(obj, constraints)
prob.solve() # Returns the optimal value.
print(“status:”, prob.status)
print (“optimal value”, prob.value) # 最优值
print (“optimal var”, alpha1.value, alpha2.value, alpha3.value) # x 与 y 的解

————————————————
原文作者:jiangxiao123
转自链接:https://
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
搜索更多相关主题的帖子: 作者 出现 abs import value 
2020-12-29 14:35
april999
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2023-4-15
收藏
得分:0 
可以问下楼主之后是怎么解决这个问题的嘛?
2023-04-15 23:15
快速回复:cvxpy 关于x*log(x/y)问题出现must be real number, not AddExpressio ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023780 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved