Closed JonasKoziorek closed 1 week ago
cc also @rveltz : if you know this algorithm, let's make sure that we aren't duplicating effort. If something like this is in BFKit, or parts of the code have been tried in BFKit, let's reuse the knowledge.
@JonasKoziorek can you please write a brief summary of the status of this PR? Does the algorithm work, does it not? If not, when does it not work?
@JonasKoziorek can you please write a brief summary of the status of this PR? Does the algorithm work, does it not? If not, when does it not work?
The algorithm works. I have found several UPOs of Lorenz and Roessler systems. One example can be seen in the docs. These are the issues before finishing the PR:
x,y,z...
, period T
and parameters of the ds p
.
This residual can be changed to achieve different goals.
One form of the residual is looking for optimal values of x,y,z...
and T
with p
fixed. (we have this right now)
Other form of the residual would be to look for optimal p
but leave x,y,z...
and T
fixed.
This would allow the user to find the parameters p
which have a PO of period T
going through point x,y,z...
.
In principle any of the quantities can be fixed and the others left for optimization.Everything works as we discussed today. true
in step was causing those problems.
perfect!
I tried to make it faster but with no success. Even though I reduced allocations almost in half, the runtime wasn't faster. Let's try profiling together next time then!
The minimal_period
was messing up one of the tests so I disabled it for now. I will allow passing kwargs to minimal_period
in a different PR to be able to affect the precision.
I suddenly can't build the docs. I attach the stacktrace.txt here. It originates in build_docs_with_style.jl
line 30. Commenting this line solves the problem. Could you help me with this @datseris?
docbuild problem comes from Documenter.jl. We can't resolve it :( :( :( cc @Tortar , I searched throught the JuliaDynamics/doctheme repo, we don't have $todo
anywhere. It has to be from Documenter.jl.
I implemented recent paper that searches for UPOs via optimization (link). The paper also includes python implementation in the appendix.
My implementation has a few potential problems, that should be addressed:
ds
in every iteration https://github.com/JuliaDynamics/PeriodicOrbits.jl/blob/507234f624f09fd77be675f4baed4541bd6d3dff/src/algorithms/optimized_shooting.jl#L94-L95 This should be possible by simply not integrating from 0 to 1 but from 0 to T. However I couldn't make it to work for some reason.RKO65
https://github.com/JuliaDynamics/PeriodicOrbits.jl/blob/507234f624f09fd77be675f4baed4541bd6d3dff/src/algorithms/optimized_shooting.jl#L50-L51 but all other solvers I tried simply weren't working. In the paper they use simple explicit 5-th order runge kutta. I think that choice of solver might be the cause of problems in Saiki too.DynamicalSystemsBase.jl
hasOrdinaryDiffEq.jl
as a dependency but the docs here say that to access the solvers, it has to be imported by the user. I wanted to change the default solver so I added theOrdinaryDiffEq.jl
as a dependency again. I don't know if this is optimal. Is there a way to access the various solvers internally throughDynamicalSystemsBase.jl
?