I want to compute the level sets of a Nd scalar function. Furthermore, I would like to be able to access the list of values on the level set. I am looking for suggestions.
I know of the following possibilities:
Contour.jl but 2d
Meshing.jl but 3d
At first, I thought it would be possible to make such method using
Thank you for your help,
In general this is, of course, hard problem.
Given an initial Nd box X, IntervalConstraintProgramming.jl can give you a set of small boxes that rigorously enclose the part of a level set lying inside X.
I believe this can also be solved by a version of the “parameterization method” used to find stable ame unstable manifolds, in which you stitch together pieces of Taylor polynomials. Cc
Thank you for the pointers!
Can you tell how to plot the box in 3d please, the semantic has changed?
Oh good question, will have to check that.
I referenced your package in my
docs. If you can do better than what is linked, I am all ears!
Those are some pretty amazing and beautiful figures!
What is the exact mathematical problem that you want to solve?
Intersect polynomial submanifolds. As of now, it just remains to adapt the 3d part of your docs/code to the new syntax of Makie .
Can you provide an explicit example?
Can you for example update one of
those so the 3d plot works please?
Wow, those are super out of date – they were apparently made for Julia 0.5 or 0.6…
I’m trying to update them to use Makie, but it seems to be broken right now. Hopefully will be working soon!
Here is an updated example:
This file has been truncated.
using IntervalConstraintProgramming, IntervalArithmetic
## Constraint programming
solid_torus = @constraint (3 - sqrt(x^2 + y^2))^2 + z^2 <= 1
half_space = @constraint (x + y) + z <= 1
x = interval(-5, 5)
Y = IntervalBox(x, 3)
@time paving = pave(solid_torus ∩ half_space, Y, 0.1);
inner = paving.inner
boundary = paving.boundary;
## Makie plotting set-up
Please do let me know if I can help more. I am interested in playing with difficult examples that you have.
Here’s my attempt at drawing what I understand to be the set in your docs:
Unfortunately currently the mechanism for creating separators from functions is broken
But actually I’m not sure this is the right tool for the job, since as far as I can see this is just a union of 1D curves (?).
@Xing_Shi_Cai pointed me towards Cylindrical Algebraic Decomposition the other day. This can give you all the “pieces” of the solution.