Posté le 19/10/2021 16:40
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 211 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 25/03/2022 00:50 | #
I know it's been a while
Congrats for your exam !
You remember I said that, perhaps, I would write a prog to compute all eigenvalues of a given matrix ?
I was quite busy (well, seems like it's always the case, so surely my time management is slammed to the ground - french expression haha).
So during my playtime I managed to write a "beta" prog, using the QR algorithm explained previously.
The algorithm I wrote works really well, and computes all eigenvalues (real and complex) of (almost) any real matrix. I'm not currently sharing it, since there is one problem : "orthogonal-like" matrices make that the QR algorithm does not converge (see my thread at math.stackexchange).
Well, if anyone want it already (don't hesitate to ask !), I can of course publish it (I'm trying to not upload as many updates as my prog "Calcul Limites" ). But the fact is QR algorithm is therefore not the way to go (probably). I'll dig in another iterative algorithms, but the number of papers we can found online is absolutly pharaonic
Stay tuned !
Citer : Posté le 25/03/2022 09:11 | #
Just a quick pointer: have you looked at this program by Alex_1186?
Citer : Posté le 25/03/2022 10:24 | #
Yes LephénixNoir, I have already looked at it
The program you linked (to diagonalize the matrix) is quite simple : it uses SolveN(), and using the results contruct the diagonal on which element are the eigenvalues.
The problem already mentionned is that SolveN() :
- can not compute complex eigenvalues
- can only compute a maximum of 10 eigenvalues
- can "forgot" an eigenvalue if it is far away from the others.
SolveN() is therefore not the way to go. The program that I wrote can already compute more than 40 (real and complex) eigenvalues (for a 40x40 matrix and bigger - but we are limited in memory...), the only problem is the "orthogonal-like" matrices. These matrices can also have complex eigenvalues.
What I could do is to add a pre-test to know if the matrix is an orthogonal-like one, but I don't know any alternative - for the moment.