-
Notifications
You must be signed in to change notification settings - Fork 172
Description
As the title suggests symbolic_solve fails with an error if one tries to solve an algebraic equations involving time-dependent variables. An MWE is :
@variables t S(t) R(t)
expr=[S+R-2,2*S-3*R-6]
symbolic_solve(expr,[S,R])
which fails with
KeyError: key R not found
Stacktrace:
[1] getindex
@ ./iddict.jl:98 [inlined]
[2] linearity_1
@ ~/.julia/packages/Symbolics/rtkf9/src/linearity.jl:57 [inlined]
[3] mark_vars(expr::SymbolicUtils.BasicSymbolic{Real}, vars::OrderedCollections.OrderedSet{Vector{Num}})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:208
[4] (::Base.Fix2{typeof(Symbolics.mark_vars), OrderedCollections.OrderedSet{Vector{Num}}})(y::SymbolicUtils.BasicSymbolic{Real})
@ Base ./operators.jl:1144
[5] iterate
@ ./generator.jl:48 [inlined]
[6] collect_to!(dest::Vector{Symbolics.SemiMonomial}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(Symbolics.mark_vars), OrderedCollections.OrderedSet{Vector{Num}}}}, offs::Int64, st::Int64)
@ Base ./array.jl:838
[7] collect_to_with_first!
@ ./array.jl:816 [inlined]
[8] _collect(c::Vector{Any}, itr::Base.Generator{Vector{Any}, Base.Fix2{typeof(Symbolics.mark_vars), OrderedCollections.OrderedSet{Vector{Num}}}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
@ Base ./array.jl:810
[9] collect_similar
@ ./array.jl:709 [inlined]
[10] map
@ ./abstractarray.jl:3371 [inlined]
[11] mark_vars(expr::SymbolicUtils.BasicSymbolic{Real}, vars::OrderedCollections.OrderedSet{Vector{Num}})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:204
[12] mark_and_exponentiate(expr::SymbolicUtils.BasicSymbolic{Real}, vars::OrderedCollections.OrderedSet{Vector{Num}})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:144
[13] semipolyform_terms(expr::SymbolicUtils.BasicSymbolic{Real}, vars::OrderedCollections.OrderedSet{Vector{Num}})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:160[14] semipolynomial_form(expr::SymbolicUtils.BasicSymbolic{Real}, vars::Vector{Vector{Num}}, degree::Float64; consts::Bool)
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:264
[15] semipolynomial_form
@ ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:257 [inlined]
[16] polynomial_coeffs(expr::SymbolicUtils.BasicSymbolic{Real}, vars::Vector{Vector{Num}})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/semipoly.jl:301
[17] check_poly_inunivar(poly::Num, var::Vector{Num})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/solver/solve_helpers.jl:97
[18] symbolic_solve(expr::Vector{Num}, x::Vector{Num}; dropmultiplicity::Bool, warns::Bool)
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/solver/main.jl:168
[19] symbolic_solve(expr::Vector{Num}, x::Vector{Num})
@ Symbolics ~/.julia/packages/Symbolics/rtkf9/src/solver/main.jl:145
[20] top-level scope
@ In[18]:3