bifurcationkit / bifurcationinference.jl Goto Github PK
View Code? Open in Web Editor NEWlearning state-space targets in dynamical systems
Home Page: https://github.com/gszep/BifurcationFit.jl/blob/master/docs/article.pdf
License: MIT License
learning state-space targets in dynamical systems
Home Page: https://github.com/gszep/BifurcationFit.jl/blob/master/docs/article.pdf
License: MIT License
use complex terms in eigenvalues to encourage hopf bifurcations but not saddles/pitchforks
the hope is that smoothing out the target distribution so that values are continuous between 0 and 1 will smoothen the cost landscape
this would help us determine the sloppy parameter directions as well as the equally valid hypothesis regions. Dimensionality reduced plots of these regions will help determine regions of qualitatively distinct behaviours.
Currently we are using Mathematica scripts to evaluate the determinant of jacobian, its curvature and the integration region velocity, then copying the code to Julia. More complex models yield symbolic complexity where it is no longer feasible to do so.
We would like an autodiff way - ideally using Zygote.jl
of computing the following
we would like to test a model that has the ability to reproduce multiple bifurcation types and plot a dimensionally reduced parameter regions that reproduce each behaviour.
The implicit layers approach to calculating gradients requires solving a linear system with A::Matrix \ x::Vector
where A
is the Jacobian dG/d(u,p)
where G = [ F, det(J) ]
. Let's make a plot of the percentage error between finite difference and autodiff as the condition number for A
is increased. @rveltz I use the same linear solvers as you, do you know what happens when your matrix J = dF/du
is ill-conditioned?
adding any kwarg into Cont.continuation
- in the below example verbosity=0
function continuation( f, u₀,p₀ ; kwargs...)
u₀, _, stable = Cont.newton( u -> f(u,p₀), u₀, Cont.NewtonPar(verbose=false) )
branch, _, _ = Cont.continuation( f, u₀,p₀,
ContinuationPar{eltype(u₀),AbstractLinearSolver,EigenSolver}(
pMin=kwargs[:pMin],pMax=kwargs[:pMax],ds=kwargs[:ds],
maxSteps=kwargs[:maxSteps]) ; verbosity=0
)
return Tracker.data.(u₀), unpack(branch)...
end
crashes julia when running main.jl
with the following output
Unreachable reached at 0x7f64eea046ac
signal (4): Illegal instruction
in expression starting at /home/gszep/Documents/code/fold-inference/main.jl:14
#infer#21 at /home/gszep/Documents/code/fold-inference/inference.jl:15
unknown function (ip: 0x7f64eea046eb)
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1842
jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2348
#infer at ./none:0
unknown function (ip: 0x7f64eea044a1)
jl_fptr_trampoline at /buildworker/worker/package_linux64/build/src/gf.c:1842
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
do_call at /buildworker/worker/package_linux64/build/src/interpreter.c:323
eval_value at /buildworker/worker/package_linux64/build/src/interpreter.c:411
eval_stmt_value at /buildworker/worker/package_linux64/build/src/interpreter.c:362 [inlined]
eval_body at /buildworker/worker/package_linux64/build/src/interpreter.c:773
jl_interpret_toplevel_thunk_callback at /buildworker/worker/package_linux64/build/src/interpreter.c:885
unknown function (ip: 0xfffffffffffffffe)
unknown function (ip: 0x7f64e182ba7f)
unknown function (ip: 0xc)
jl_interpret_toplevel_thunk at /buildworker/worker/package_linux64/build/src/interpreter.c:894
jl_toplevel_eval_flex at /buildworker/worker/package_linux64/build/src/toplevel.c:764
jl_parse_eval_all at /buildworker/worker/package_linux64/build/src/ast.c:883
include_string at ./loading.jl:1008
include_string at /home/gszep/.julia/packages/CodeTools/xGemk/src/eval.jl:30
unknown function (ip: 0x7f64eea011f3)
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
#127 at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:94
withpath at /home/gszep/.julia/packages/CodeTools/xGemk/src/utils.jl:30
jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2332
withpath at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:47 [inlined]
#126 at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:93 [inlined]
with_logstate at ./logging.jl:395
with_logger at ./logging.jl:491 [inlined]
#125 at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:92 [inlined]
hideprompt at /home/gszep/.julia/packages/Atom/X8fAI/src/repl.jl:85
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
macro expansion at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:91 [inlined]
macro expansion at /home/gszep/.julia/packages/Media/ItEPc/src/dynamic.jl:24 [inlined]
#124 at /home/gszep/.julia/packages/Atom/X8fAI/src/eval.jl:86
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
handlemsg at /home/gszep/.julia/packages/Atom/X8fAI/src/comm.jl:164
unknown function (ip: 0x7f650f29d7ec)
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1571 [inlined]
jl_f__apply at /buildworker/worker/package_linux64/build/src/builtins.c:556
#19 at ./task.jl:259
unknown function (ip: 0x7f650f2e4ca4)
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2197
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1571 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:572
unknown function (ip: 0xffffffffffffffff)
Allocations: 389195905 (Pool: 389146779; Big: 49126); GC: 724
Julia has exited. Press Enter to start a new session.
This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml
to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix
on this issue.
I'll open a PR within a few hours, please be patient!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.