UDE Example

Applying Universal differential equation for discovering infectious disease model

Binder

The result is also display at tutorial page

SciML software provides functionality to mix physical laws and machine learning model. This approach integrate the two long separated fields: physical modeling and machine learning, and leverage the strengths from both sides.

Specifically, the universal differential equation (UDE) is a unifying framework connecting physical modeling and data-driven approach, and SciML software provides state-of-art implementation and high-performance computing with Julia.

In this session, we are going to investigate an infectious disease model, SIR model, as a demonstration of applying UDE approach. This method can be divided by three parts:

Part I: Data acquisition with ground truth model

  • Use DifferentialEquation.jl to implement SIR model
  • Use ODE solver to get solution
  • Apply noise

Part II: Model Surrogation

  • Assume SIR model is partly known, and use convolution neural network (CNN) as universal approximator to surrogate the unknown process.
  • The UDE model is a combination of ODE and CNN frameworks
  • Use Automatic Differentiation to achieve gradient descent

Part III: Model discovery

  • Use symbolic regression to recover the original model.
Model Description
sir_ode Ground truth model
sir_ude1 UDE with correct functional structure
sir_ude2 UDE with multilayer CNN

References

This notebook is modified from 1. https://github.com/epirecipes/sir-julia/blob/master/notebook/ude/ude.ipynb 2. https://github.com/ChrisRackauckas/universal_differential_equations/blob/master/LotkaVolterra/scenario_1.jl

The original UDE paper: Rackauckas, Christopher, et al. “Universal differential equations for scientific machine learning.” arXiv preprint arXiv:2001.04385 (2020).

Activate Environment

using Pkg
Pkg.activate("ude")
Pkg.instantiate()
  Activating project at `~/Documents/GitHub/Julia-for-SciML/hands-on/ude`

Libraries

using OrdinaryDiffEq
using Distributions
using DataDrivenDiffEq
using ModelingToolkit
using DiffEqFlux, Lux
using Optimization
using OptimizationPolyalgorithms
using Random
using ComponentArrays
using Statistics
using Plots;
# Random seeds
rng = Random.default_rng()
Random.seed!(123);

SIR model for spread of disease

\[\begin{align} \frac{dS}{dt} &= -\beta S(t)I(t)\\ \frac{dI}{dt} &= \beta S(t)I(t)-\gamma I(t)\\ \frac{dR}{dt} &= \beta S(t)I(t) \end{align}\]

  • \(S\): Susceptible individuals
  • \(I\): Infected individauls
  • \(R\): Recovered individuals
  • \(\beta\): Infectious rate
  • \(\gamma\): Recovery rate
function sir_ode(u,p,t)
    (S,I,R) = u
    (β,γ) = p
    dS = -β*S*I
    dI = β*S*I - γ*I
    dR = β*S*I
    [dS,dI,dR]
end;

ODE solver

  • more solvers can be found at here.
solver = RadauIIA3(); # Fully-Implicit Runge-Kutta Methods
N = 1000.0
p = [0.5,0.25]
u0 = [0.99, 0.01, 0.0]
tspan = (0., 40.)
δt = 1;
sir_prob = ODEProblem(sir_ode, u0, tspan, p)
sir_sol = solve(sir_prob, solver, saveat = δt);
plot(sir_sol,
     xlabel = "Time",
     ylabel = "Proportion",
     labels = ["S" "I" "R"])

Generating the measurement

  • The time series data is processed with Poisson noise
train_time = 30.0
tsdata = Array(sir_sol(0:δt:train_time))
cdata = diff(tsdata[3,:])
noisy_data = rand.(Poisson.(N .* cdata));
plot(1:δt:train_time, N .* cdata,
     xlabel = "Time",
     ylabel = "New cases per day",
     label = "True value")
scatter!(1:δt:train_time, noisy_data, label="Data")

Create neural network to approximate unknown mechanism

\[\begin{align} \frac{dS}{dt} &= -\lambda_{NN}(I(t), \beta, \gamma) S(t)\\ \frac{dI}{dt} &= \lambda_{NN}(I(t), \beta, \gamma) S(t)-\gamma I(t)\\ \frac{dR}{dt} &= \lambda_{NN}(I(t), \beta, \gamma)S(t) \end{align}\]

foi1 = Lux.Dense(1, 1, relu, bias=false)
p1_, st1 = Lux.setup(rng, foi1)
p1_, length(p1_)
((weight = Float32[1.5860611;;],), 1)

Build universal differential equation with partly known SIR mechanism

function sir_ude(u,p_,t,foi, st)
    S,I,R = u
    (β,γ) = p
    λ= foi([I], p_, st)[1][1]
    dS = -λ*S
    dI = λ*S - γ*I
    dR = λ*S
    [dS, dI, dR]
end;
tspan_train = (0,train_time)
sir_ude1 = (u,p_,t) -> sir_ude(u,p_,t,foi1, st1)
prob_ude1 = ODEProblem(sir_ude1,
                      u0,
                      tspan_train,
                      p1_);

To fit this model, we first need to define a function that predicts the outcome given a set of parameters.

function predict(θ, prob)
    Array(solve(prob,
                solver;
                u0 = u0,
                p = θ,
                saveat = δt,
                sensealg = InterpolatingAdjoint(autojacvec=ReverseDiffVJP())))
end;

Secondly, we define a loss function that uses this predict function to calculate the loss between the predicted data and the true data. We employ a Poisson loss, as we are comparing our model against counts of new cases.

function loss(θ, prob)
    pred = predict(θ, prob)
    cpred = abs.(N*diff(pred[3,:]))
    Flux.poisson_loss(cpred, float.(noisy_data)), cpred
end;

We run this function once to make sure it is precompiled.

loss(prob_ude1.p, prob_ude1);

To keep track of the running of the model, we store the losses in a Vector and use a callback to report on the model fit every 10 epochs.

const losses1 = []
callback1 = function (p, l, pred)
    push!(losses1, l)
    numloss = length(losses1)
    if numloss % 10 == 0
        display("Epoch: " * string(numloss) * " Loss: " * string(l))
    end
    return false
end;
adtype = Optimization.AutoZygote()
optf = Optimization.OptimizationFunction((x,p)->loss(x, prob_ude1), adtype)
optprob = Optimization.OptimizationProblem(optf, ComponentVector{Float64}(p1_))
res_ude1 = Optimization.solve(optprob, OptimizationPolyalgorithms.PolyOpt(), callback=callback1)
"Epoch: 620 Loss: 46.39434672449694"
"Epoch: 630 Loss: 36.43205697980578"
"Epoch: 640 Loss: 26.050977198038506"
"Epoch: 650 Loss: 15.114743579282198"
"Epoch: 660 Loss: 3.452580725344372"
"Epoch: 670 Loss: -8.98614732168986"
"Epoch: 680 Loss: -22.135178338988688"
"Epoch: 690 Loss: -35.43392650802868"
"Epoch: 700 Loss: -47.2600376516064"
"Epoch: 710 Loss: -54.69635846795701"
"Epoch: 720 Loss: -56.649457949317345"
"Epoch: 730 Loss: -56.45193738134048"
"Epoch: 740 Loss: -56.50212237569375"
"Epoch: 750 Loss: -56.63738424745975"
"Epoch: 760 Loss: -56.65655302525394"
"Epoch: 770 Loss: -56.65182872007104"
"Epoch: 780 Loss: -56.65572714612519"
"Epoch: 790 Loss: -56.657674602245805"
"Epoch: 800 Loss: -56.65750509696803"
"Epoch: 810 Loss: -56.65758482578167"
"Epoch: 820 Loss: -56.65768436524299"
"Epoch: 830 Loss: -56.657680560010775"
"Epoch: 840 Loss: -56.65768264189337"
"Epoch: 850 Loss: -56.65768700304816"
"Epoch: 860 Loss: -56.65768675117436"
"Epoch: 870 Loss: -56.65768689313232"
"Epoch: 880 Loss: -56.65768709669628"
"Epoch: 890 Loss: -56.65768708640462"
"Epoch: 900 Loss: -56.657687096188525"
"Epoch: 910 Loss: -56.657687098526715"
u: ComponentVector{Float64}(weight = [0.493602344646379;;])

The fitted parameter in this model corresponds to the infectivity parameter, β.

res_ude1.minimizer, losses1[end]
((weight = [0.493602344646379;;]), -56.65768709902595)

This model is fast to converge to an optimum due to the small number of trainable parameters.

prob_ude1_fit = ODEProblem(sir_ude1, u0, tspan, res_ude1.minimizer)
sol_ude1_fit = solve(prob_ude1_fit, solver, saveat = δt)
scatter(sir_sol, label=["True Susceptible" "True Infected" "True Recovered"],title="Fitted true model")
plot!(sol_ude1_fit, label=["Estimated Susceptible" "Estimated Infected" "Estimated Recovered"])

This plots the relationship between i and the force of infection, λ, which shows a good match.

Imax = maximum(tsdata[2,:])
Igrid = 0:0.01:0.5
λ = [foi1([I],res_ude1.minimizer, st1)[1][1] for I in Igrid]
scatter(Igrid,λ,xlabel="Proportion of population infected, I",ylab="Force of infection, λ",label="Neural network prediction")
Plots.abline!(p[1],0,label="True value")
Plots.vline!([Imax],label="Upper bound of training data")

Multiple layer network

In the absence of prior knowledge, we use a neural network with multiple layers.

Random.seed!(1234)
nhidden = 4
foi2 = Lux.Chain(Lux.Dense(1, nhidden, relu, init_weight= Lux.glorot_uniform),
                     Lux.Dense(nhidden, nhidden, relu),
                     Lux.Dense(nhidden, 1, relu))
p2_, st2 = Lux.setup(rng, foi2)
((layer_1 = (weight = Float32[0.49557778; -0.38126603; -0.42284605; 0.107465595;;], bias = Float32[0.0; 0.0; 0.0; 0.0;;]), layer_2 = (weight = Float32[-0.15969938 -0.25347877 0.49135512 0.78781974; 0.8177637 0.035255868 0.58824235 -0.5106646; -0.6919587 -0.16589832 -0.77170587 0.78050417; -0.8402026 0.24172777 0.809115 0.047083568], bias = Float32[0.0; 0.0; 0.0; 0.0;;]), layer_3 = (weight = Float32[0.20837806 0.16283458 -0.48723406 0.38921136], bias = Float32[0.0;;])), (layer_1 = NamedTuple(), layer_2 = NamedTuple(), layer_3 = NamedTuple()))

We wrap this neural network in a new ODEProblem.

sir_ude2 = (u,p_,t) -> sir_ude(u,p_,t,foi2, st2)
prob_ude2 = ODEProblem(sir_ude2,
                      u0,
                      tspan_train,
                      p2_);

We define a new data structure to store the losses from the fitting of this more complex model.

const losses2 = []
callback2 = function (p, l, pred)
    push!(losses2, l)
    numloss = length(losses2)
    if numloss % 10 == 0
        display("Epoch: " * string(numloss) * " Loss: " * string(l))
    end
    return false
end;
WARNING: redefinition of constant losses2. This may fail, cause incorrect answers, or produce other errors.

Training UDE

Noted that UDE is a differntial equation, and unstability can occurs when the optimizer goes into the unstable region.

optf2 = Optimization.OptimizationFunction((x,p)->loss(x, prob_ude2), adtype)
optprob2 = Optimization.OptimizationProblem(optf2, ComponentVector{Float64}(p2_))
res_ude2 = Optimization.solve(optprob2, OptimizationPolyalgorithms.PolyOpt(), callback=callback2)
"Epoch: 10 Loss: -46.79926037468308"
"Epoch: 20 Loss: -51.4220018913606"
"Epoch: 30 Loss: -52.332849893124255"
"Epoch: 40 Loss: -52.681711889183276"
"Epoch: 50 Loss: -53.46893725489178"
"Epoch: 60 Loss: -54.76561455435265"
"Epoch: 70 Loss: -56.45966754507883"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 80 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 90 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 100 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 110 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 120 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 130 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 140 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 150 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 160 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 170 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 180 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 190 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 200 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 210 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 220 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 230 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 240 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 250 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 260 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 270 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 280 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 290 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 300 Loss: Inf"
┌ Warning: Automatic dt set the starting dt as NaN, causing instability. Exiting.
└ @ OrdinaryDiffEq /Users/stevenchiu/.julia/packages/OrdinaryDiffEq/4qO6L/src/solve.jl:548
┌ Warning: NaN dt detected. Likely a NaN value in the state, parameters, or derivative value caused this outcome.
└ @ SciMLBase /Users/stevenchiu/.julia/packages/SciMLBase/y9NOj/src/integrator_interface.jl:496
"Epoch: 310 Loss: -56.66513928900252"
"Epoch: 320 Loss: -56.66513929888274"
"Epoch: 330 Loss: -56.66513920833483"
u: ComponentVector{Float64}(layer_1 = (weight = [0.6991807797399039; -0.3812660276889801; -0.4228460490703583; -0.027000490333794425;;], bias = [0.05949681531213866; 0.0; 0.0; 0.060437624698914345;;]), layer_2 = (weight = [-0.10428855101675928 -0.2534787654876709 0.49135512113571167 0.7944243178790527; 0.8983483498141173 0.03525586798787117 0.5882423520088196 -0.4997345599895566; -0.738569450994832 -0.16589832305908203 -0.7717058658599854 0.8559028021833632; -0.8402026295661926 0.2417277693748474 0.8091149926185608 0.04708356782793999], bias = [0.05984993092264943; 0.05985722498659796; 0.12671031375124223; 0.0;;]), layer_3 = (weight = [0.09030682314780224 0.24263830743106182 -0.6599796052511395 0.38921135663986206], bias = [0.0591222441143055;;]))

Compare two UDE models

  • First one is linear CNN; Second one is multilayer
  • Both of them have similar performance in training set
losses1[end],losses2[end]
(-56.65768709902595, -56.66513921104841)

Consistent with this, the multilayer model gives a good fit when plotted alongside the data.

prob_ude2_fit = ODEProblem(sir_ude2, u0, tspan, res_ude2.minimizer)
sol_fit = solve(prob_ude2_fit, solver)
sol_ude2_fit = sol_fit(tspan[1]:δt:tspan[2])
scatter(sir_sol, label=["True Susceptible" "True Infected" "True Recovered"],title="Fitted UDE model", dpi=300)
plot!(sol_ude2_fit, label=["Estimated Susceptible" "Estimated Infected" "Estimated Recovered"])

Extrapolation is errornous for trained neural network

To predict the future, the exptrapolation is needed. However, if the model is oversized, it may deviate from the truth model when exploring extrapolated data. On the other hand, neural network provides good interpolation in training set. The trained neural network can be a data generated model for model discovery.

λs = [foi2([I],res_ude2.minimizer, st2)[1][1] for I in Igrid]
scatter(Igrid, λs, xlabel="Proportion of population infected, i", ylab="Force of infection, λ", label="Neural network prediction", dpi=300)
Plots.abline!(p[1], 0,label="True value")
Plots.vline!([Imax], label="Upper bound of training data")

Model discovery via Symbolic Regression

Use sparse identification to identify the physical laws.

t_measure = tspan[1]:δt:tspan[2]
= Is = reshape(collect(Iterators.flatten(sol_fit(t_measure, idxs=[2]).u)), 1, length(t_measure))
1×41 Matrix{Float64}:
 0.01  0.0124666  0.0155792  0.0194809  …  0.0201414  0.0174064  0.0150216
= reshape([foi2([I],res_ude2.minimizer, st2)[1][1] for I in Is], 1, length(Is))
1×41 Matrix{Float64}:
 0.00473393  0.00597518  0.00754149  …  0.00983722  0.00846095  0.00726087

Setup basis of equations

# Create a Basis
@variables u[1:1]
# Generate the basis functions, multivariate polynomials up to deg 5
# and sine
b = [polynomial_basis(u, 5); sin.(u); cos.(u); exp.(u)]
basis = Basis(b,u);
basis

\[ \begin{align} \varphi_1 =& 1 \\ \varphi_2 =& u_1 \\ \varphi_3 =& u_1^{2} \\ \varphi_4 =& u_1^{3} \\ \varphi_5 =& u_1^{4} \\ \varphi_6 =& u_1^{5} \\ \varphi_7 =& \sin\left( u_1 \right) \\ \varphi_8 =& \cos\left( u_1 \right) \\ \varphi_9 =& e^{u_1} \end{align} \]

λ = exp10.(-3:0.01:5)
# Create an optimizer for the SINDy problem
opt = STLSQ(λ)
# Define different problems for the recovery
nn_problem = DirectDataDrivenProblem(X̂, Ŷ)
# Test on ideal derivative data for unknown function ( not available )
nn_res = solve(nn_problem, basis, opt, maxiter = 10000, progress = true)
Linear Solution
result(nn_res)

\[ \begin{align} \varphi_1 =& p_1 u_1 \end{align} \]

parameters(nn_res)
1-element Vector{Float64}:
 0.5

Recovered dynamics

scatter(Igrid, [nn_res([I], parameters(nn_res))[1] for I in Igrid], xlabel="Proportion of population infected, i", ylab="Force of infection, λ", label="Symbolic Regression")
Plots.abline!(p[1], 0,label="True value")
Plots.vline!([Imax], label="Upper bound of training data")

Remarks

SciML framework combines multiple individual packages. The UDE model is one of the example of the Scientific Machine Learning. Most of the scientic breakthrough comes from the novel integration between previously unrelated fields. Julia makes this integration possible for the following reasons:

  1. Just-In-Time compiler: This provides interactive platform to manipulate scripts, but still generate machine code for high performance computing
  2. Type inference: This untackle the two language problem. As a high-level language, Julia leverages type inference to generate strong type code with precise type allocation, and make code faster.
  3. Multiple dispatch: The powerhouse of the functional programming that makes packages extensible.

Advanced learning