# Quadratic Expression

**URL:** <https://discourse.julialang.org/t/quadratic-expression/30337>\
**Category:** Optimization (Mathematical)\
**Tags:** question, jump\
**Created:** [October 26, 2019, 2:23pm UTC](https://discourse.julialang.org/t/quadratic-expression/30337 "2019-10-26T14:23:19Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nikos-Atzarakis](https://avatars.discourse-cdn.com/v4/letter/n/57b2e6/32.png) [@Nikos-Atzarakis](https://discourse.julialang.org/u/Nikos-Atzarakis)\
**Post date:** [October 26, 2019, 2:23pm UTC](https://discourse.julialang.org/t/quadratic-expression/30337/1 "2019-10-26T14:23:19Z")

</div>

Hi, I’m trying to create a quadratic expression using a variable attached in model m :

```julia
using JuMP
using Ipopt

m= Model(with_optimizer(Ipopt.Optimizer))

@variables m begin
   u[1:(time_lapses)*2,1:number_of_players]  
end

cf=@expression(m,[1:(time_lapses*2),1:number_of_players],0)

for i in 1:number_of_prosumers
   for j in 1:(time_lapses*2)
       cf[j,i]=u[j,i]*u[j,i]
   end
end

```

I get this error :

```julia
MethodError: Cannot `convert` an object of type GenericQuadExpr{Float64,VariableRef} to an object of type GenericAffExpr{Float64,VariableRef}

```

---

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [October 27, 2019, 11:52am UTC](https://discourse.julialang.org/t/quadratic-expression/30337/2 "2019-10-27T11:52:22Z")

</div>

The `@expression` macro creates a container of `JuMP.AffExpr` (it will create a container of Integer in JuMP master, see [https://github.com/JuliaOpt/JuMP.jl/pull/2070](https://github.com/JuliaOpt/JuMP.jl/pull/2070)).  
You can do

```julia
cf = Matrix{JuMP.QuadExpr}(undef, 2time_lapses, number_of_players)
for i in 1:2time_lapses
    for j in 1:number_of_players
        cf[i, j] = zero(JuMP.QuadExpr)
    end
end
for i in 1:number_of_prosumers
   for j in 1:(time_lapses*2)
       JuMP.add_to_expression(cf[j,i], u[j,i], u[j,i])
   end
end

```

but in JuMP master, you should be able to do

```julia
cf = @expression(m, [1:(time_lapses*2),1:number_of_players],
     sum(u[j,i]*u[j,i] for i in 1:number_of_prosumers, j in 1:(time_lapses*2)))

```

---

<div class="post-metadata">

**Author:** ![Nikos-Atzarakis](https://avatars.discourse-cdn.com/v4/letter/n/57b2e6/32.png) [@Nikos-Atzarakis](https://discourse.julialang.org/u/Nikos-Atzarakis)\
**Post date:** [October 27, 2019, 12:49pm UTC](https://discourse.julialang.org/t/quadratic-expression/30337/3 "2019-10-27T12:49:46Z")

</div>

Thanks for your help! It worked
