Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Working with the tangential space of a manifold #16

Open
volkerkarle opened this issue Aug 15, 2022 · 5 comments
Open

Working with the tangential space of a manifold #16

volkerkarle opened this issue Aug 15, 2022 · 5 comments
Labels
discussion The right solution is not yet clear

Comments

@volkerkarle
Copy link

Hi there, thanks for your amazing work!

I was wondering if I could use this approach to iteratively work out the tangential space of the manifold defined by f(x)=0, with x ∈ ℝⁿ, f ∈ℝᵈ. Right now I'm using the implicit function theorem to calculate the tangential vectors. However, with the naive implementation (using DiffOpt.jl) the accuracy is very low compared to the tangential vectors I get by sampling over points and taking x-x'/|x-x'| for x-x'->0. I do not know about the concrete details of your implementation, but I have the impression that it is superior to my naive Ansatz.

Further, do you think it could be possible to calculate the curvature tensor (and henceforth, the parallel transport) of the manifold at each point? In the end I'm interested in singularities (i.e. bifurcations) and for this I need to be able to calculate derivatives up to high precision.

Best,

v.

@volkerkarle volkerkarle changed the title Working with the tangential space a manifold Working with the tangential space of a manifold Aug 15, 2022
@gdalle
Copy link
Collaborator

gdalle commented Aug 16, 2022

Hi @volkerkarle! I'm not an expert on Manifolds, but I imagine you've already looked at Manifolds.jl without success?

@gdalle
Copy link
Collaborator

gdalle commented Aug 16, 2022

From what I can tell, if you use implicit differentiation on $f(x) = 0$, you will get a tangent vector, the direction of which is determined by the AD internals. I'm not sure how to get several

@gdalle gdalle added help wanted discussion The right solution is not yet clear labels Aug 16, 2022
@volkerkarle
Copy link
Author

Hi Guillaume,

So manifold.jl if you are working with already well defined manifolds. I did not see how one can apply it for a implicitly defined manifolds, but it's not an issue. As soon as the tangential space is (up to some precision) well defined, curvature etc. follows straightforwardly.
To get all (i.e. several) directions is also not an issue, it's sufficient to just get all derivatives and then compute a minimal basis for the tangent space (for instance, by SVD). My main concern is the accuracy of the derivatives. I cannot try it out now, but later in the month I'll give your package a try and see how it performs!

@gdalle
Copy link
Collaborator

gdalle commented Aug 16, 2022

As far as I know, implicit differentiation is exact, up to the precision of the linear solver.

@gdalle
Copy link
Collaborator

gdalle commented May 30, 2023

Hey @volkerkarle, did you end up succeeding in your endeavors?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion The right solution is not yet clear
Projects
None yet
Development

No branches or pull requests

2 participants