首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gurobi QuadExpr :我应该如何将<gurobi.Var y(1.0) (值17.0)>更改为y.value

Gurobi QuadExpr :我应该如何将<gurobi.Var y(1.0) (值17.0)>更改为y.value
EN

Stack Overflow用户
提问于 2021-09-28 05:01:38
回答 1查看 34关注 0票数 0
代码语言:javascript
复制
for i in P:
    S=(y[i]-R*p[i])*(y[i]-R*p[i])/(p[i]*p[i])
    print(S)

当我运行上面的程序时,输出如下。我该怎么改呢?我想输出y (i)来计算值。

代码语言:javascript
复制
<gurobi.QuadExpr: 0.6894031221303948 + -0.04151515151515151 y(1.0) + -0.04151515151515151 y(1.0) + [ 0.0025 y(1.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.04151515151515151 y(2.0) + -0.04151515151515151 y(2.0) + [ 0.0025 y(2.0) ^ 2 ]>
<gurobi.QuadExpr: 0.689403122130395 + -0.0172979797979798 y(3.0) + -0.0172979797979798 y(3.0) + [ 0.00043402777777777775 y(3.0) ^ 2 ]>
<gurobi.QuadExpr: 0.689403122130395 + -0.027676767676767678 y(4.0) + -0.027676767676767678 y(4.0) + [ 0.0011111111111111111 y(4.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.04612794612794612 y(5.0) + -0.04612794612794612 y(5.0) + [ 0.0030864197530864196 y(5.0) ^ 2 ]>
<gurobi.QuadExpr: 0.6894031221303948 + -0.028631138975966558 y(6.0) + -0.028631138975966558 y(6.0) + [ 0.0011890606420927466 y(6.0) ^ 2 ]>
代码语言:javascript
复制
for i in y:
    print(y[i])

上述输出如下所示。

代码语言:javascript
复制
<gurobi.Var y(1.0) (value 3.0)>
<gurobi.Var y(2.0) (value 4.0)>
<gurobi.Var y(3.0) (value 4.0)>
<gurobi.Var y(4.0) (value 5.0)>
<gurobi.Var y(5.0) (value 6.0)>
<gurobi.Var y(6.0) (value 8.0)>
EN

回答 1

Stack Overflow用户

发布于 2021-09-28 08:32:52

假设您已经解决了优化问题,您可以通过.X属性访问变量的值来计算您的表达式:

代码语言:javascript
复制
for i in P:
    S = (y[i].X-R*p[i].X)*(y[i].X-R*p[i].X)/(p[i].X * p[i].X)
    print(S)

或者,您可以通过getValue()方法使用当前解决方案计算表达式的值:

代码语言:javascript
复制
for i in P:
    S = (y[i]-R*p[i])*(y[i]-R*p[i])/(p[i]*p[i])
    print(S.getValue())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69356050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档