User:Mfasi: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 65: Line 65:


== Your task ==
== Your task ==
The project I would like to work on is the one called '''Improve logm, sqrtm, funm'''. Basically, I would like to provide Octave with an (almost) state of the art library to compute the most diffused matrix functions in a robust way. Octave's standard library as well as the linear algebra package (Octave Forge) already implement some of these functions, notably funm (), expm (), logm() and sqrtm(). Some of these implementations are good, while others should be improved or, in some cases, completely rewritten.
I would like to improve the matrix functions '''logm, sqrtm''' and '''funm'''. Basically, I would like to provide Octave with an (almost) state of the art library to compute the most diffused matrix functions in a robust way. Octave's standard library as well as the linear algebra package (Octave Forge) already implement some of these functions, notably funm (), expm (), logm() and sqrtm(). Some of these implementations are good, while others should be improved or rethought.


One of the functions that should be completely reimplemented is probably funm (), that currently uses a simple but in some cases weak approach inspired by the definition of matrix function via the Jordan canonical form. This approach fails when the matrix is not diagonalizable and can be very inaccurate when the eigenvectors are ill-conditioned. To avoid these issues I would like to use the Schur-Parlett recurrence with block reordering, a well known algorithm that though having some issues that should be addressed, is theoretically robust. This implementation will require to:
One of the functions that should be completely reimplemented is probably funm (), that currently uses a simple but in some cases weak approach inspired by the definition of matrix function via the Jordan canonical form. This approach fails when the matrix is not diagonalizable and can be very inaccurate when the eigenvectors are ill-conditioned. To avoid these issues I would like to use the Schur-Parlett recurrence with block reordering, a well known algorithm that though having some issues that should be addressed, is theoretically robust. This implementation will require to: