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

Eigenvalue decomposition derivatives needed #291

Open
riclarsson opened this issue Jan 19, 2021 · 5 comments
Open

Eigenvalue decomposition derivatives needed #291

riclarsson opened this issue Jan 19, 2021 · 5 comments
Labels
enhancement Iterations on existing features help wanted Requires help by other developers

Comments

@riclarsson
Copy link
Contributor

Hi,

This is somewhat of an open issue. An eigenvalue decomposition is necessary for line mixing ECS computations to be effective. This is done. We also need partial derivatives w.r.t. user input to fit with the rest of ARTS. I would like these derivatives to be analytical but I do not know how to take the partial derivatives of an eigenvalue decomposition. I need help here.

The specific function has been marked "FIXME: (Added 2021-01-19; Richard Larsson)" and is located in linemixing.cc at lines 13-58 at the merging of #281 . I can add computations of dW, dpop, and ddip if someone knows how to perform the required computations.

@riclarsson riclarsson added enhancement Iterations on existing features help wanted Requires help by other developers labels Jan 19, 2021
@riclarsson
Copy link
Contributor Author

@nuitlejour Thank you for the suggestion! The answer pertains to real symmetrical matrices as far as I understand it. The matrix I need to compute is neither, so I do not believe it should apply. Sadly.

I am going to have a look through the suggested book, though this will take some time to dig through.

@nuitlejour
Copy link

use svd first, and the analytical derivatives on svd is quite simple, and does not require square or real matrix:
https://chat.openai.com/share/d76798ad-a00d-4e61-be19-c2905d20df90
and using the relationship between svd and eigenvalue decomposition:
https://en.wikipedia.org/wiki/Singular_value_decomposition
eigenvalue decomposition can be calculated.
snap1
snap2

@nuitlejour
Copy link

and also, I think in many cases, eigenvalue decomposition is not really needed, svd is more general.
maybe formulate 'line mixing ECS computations' with svd will be a better idea.

@dhjx1996
Copy link

dhjx1996 commented Dec 11, 2024

Hi @riclarsson, Dion here, I stumbled upon this and I wanted to add that matrix calculus is well-defined (https://en.wikipedia.org/wiki/Matrix_calculus). Moreover, I have experience with it, in particular I learnt it from my Numerical Analysis class from forever ago, and can help with this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Iterations on existing features help wanted Requires help by other developers
Projects
None yet
Development

No branches or pull requests

3 participants