In late 2023 Optim.jl had a release that added an Adam algorithm, and to the dismay of everyone in the community, it used exactly the same name as the Optimisers.jl Adam algorithm. Both export Adam, so what you’re leaving off here is that you received a warning in your REPL that said you need to disambiguate which Adam you’re referring to.
In other words, you need to change:
result_neuralode = Optimization.solve(optprob,Adam(0.05),callback = callback,maxiters = 100)
to:
result_neuralode = Optimization.solve(optprob,OptimizationOptimisers.Adam(0.05),callback = callback,maxiters = 100)
to make it explicit.