SciML/SciMLSensitivity.jl

How to recitify the version compatibility error?

Spinachboul opened this issue · 1 comments

using SciMLSensitivity, OrdinaryDiffEq
using Pkg
using DiffEqBase
default()

function mass_spring_damper_ude!(du, u, p, t)
    m, b, k = p
    du .= [u[2], -b * u[2] - k * u[1] / m]
end

u0 = [1.0, 0.0]  # Initial displacement and velocity
tspan = (0.0, 10.0)
params = [1.0, 0.2, 1.0]  # Mass, damping coefficient, spring constant

prob_ude = ODEProblem(mass_spring_damper_ude!, u0, tspan, params)
sol_ude = solve(prob_ude, Tsit5())

using Optimization, OptimizationPolyalgorithms

function loss(θ)
    sol = solve(prob_ude, Tsit5(), p = [θ[1], θ[2], 1.0])
    target = [0.0, -0.5]  # Replace with actual target data
    sum(abs2, sol[end] .- target)
end

loss([0.2, 1.0])
adtype = Optimization.AutoZygote()
optf = Optimization.OptimizationFunction((x, p) -> loss(x), adtype)
optprob = Optimization.OptimizationProblem(optf, [0.2, 1.0])
@time res = Optimization.solve(optprob, PolyOpt(), maxiters = 300)
@show res.u

This code gives me the following error logs:

LoadError: ArgumentError: Package DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.

Stacktrace:
 [1] _require(pkg::Base.PkgId, env::String)
   @ Base .\loading.jl:1774
 [2] _require_prelocked(uuidkey::Base.PkgId, env::String)
   @ Base .\loading.jl:1660
 [3] macro expansion
   @ .\loading.jl:1648 [inlined]
 [4] macro expansion
   @ .\lock.jl:267 [inlined]
 [5] require(into::Module, mod::Symbol)
   @ Base .\loading.jl:1611
 [6] include
   @ .\Base.jl:457 [inlined]
 [7] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
   @ Base .\loading.jl:2049
 [8] top-level scope
   @ stdin:3
in expression starting at c:\Users\mridu\Desktop\SciMLSensitivity.jl\src\SciMLSensitivity.jl:1
in expression starting at stdin:3
ERROR: LoadError: Failed to precompile SciMLSensitivity [1ed8b502-d754-442c-8d5d-10ac956f44a1] to "C:\\Users\\mridu\\.julia\\compiled\\v1.9\\SciMLSensitivity\\jl_8E04.tmp".        
Stacktrace:
 [1] error(s::String)
   @ Base .\error.jl:35
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
   @ Base .\loading.jl:2294
 [3] compilecache
   @ .\loading.jl:2167 [inlined]
 [4] _require(pkg::Base.PkgId, env::String)
   @ Base .\loading.jl:1805
 [5] _require_prelocked(uuidkey::Base.PkgId, env::String)
   @ Base .\loading.jl:1660
 [6] macro expansion
   @ .\loading.jl:1648 [inlined]
 [7] macro expansion
   @ .\lock.jl:267 [inlined]
 [8] require(into::Module, mod::Symbol)
   @ Base .\loading.jl:1611
in expression starting at c:\Users\mridu\Desktop\SciMLSensitivity.jl\sample.jl:1

Please help rectify this error!!

You just need to add DiffEqBase.