Antonio Pino

Joined 25 March 2015
add more bibliography
(Add information about the mftoolbox)
(add more bibliography)
Line 77: Line 77:
== Y: Your task ==
== Y: Your task ==


The project I intend to do is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Improve_logm.2C_sqrtm.2C_funm Improve logm, sqrtm, funm]; its aim is to improve the existing implementations of [https://en.wikipedia.org/wiki/Matrix_function Matrix Functions] in octave based on the algorithms developed by [http://www.maths.manchester.ac.uk/~higham/NAMF/#People a team lead by Prof. Higham] at the University of Manchester. At this point in time, in Octave there are the following: [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] makes use of Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/logm.m logm] uses a Schur-Parlett algorithm, and [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/libinterp/corefcn/sqrtm.cc sqrtm] using a variant of the algorithm in A New sqrtm for MATLAB[1]. On the other hand, in Octave-Forge there are [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/funm.m funm] and [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/thfm.m trigonometric and hyperbolic matrix functions].
The project I intend to do is [http://wiki.octave.org/Summer_of_Code_Project_Ideas#Improve_logm.2C_sqrtm.2C_funm Improve logm, sqrtm, funm]; its aim is to improve the existing implementations of [https://en.wikipedia.org/wiki/Matrix_function Matrix Functions] in Octave based on the algorithms developed by [http://www.maths.manchester.ac.uk/~higham/NAMF/#People a team lead by Prof. Higham] (project entitled Numerical Analysis of Matrix Functions, NAMF) at the University of Manchester. At this point in time, in Octave there are the following: [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/expm.m expm] makes use of Padé approximant, [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/scripts/linear-algebra/logm.m logm] uses a Schur-Parlett algorithm, and [http://hg.savannah.gnu.org/hgweb/octave/file/9a8be23d2c05/libinterp/corefcn/sqrtm.cc sqrtm] using a variant of the algorithm in A New sqrtm for MATLAB.{{ref label|1|1}}. On the other hand, in Octave-Forge there are [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/funm.m funm] and [http://sourceforge.net/p/octave/linear-algebra/ci/default/tree/inst/thfm.m trigonometric and hyperbolic matrix functions]. For a general survey-introduction to matrix functions (or matrix computation in general) refer to Golub & Van Loan[2].


I believe this is of interest to Gnu Octave first, due to the goal of overall MATLAB compatibility and second, because more and more systems are being described by a matrix equation lately.
I believe this is of interest to Gnu Octave first, due to the goal of overall MATLAB compatibility and second, because more and more systems are being described by a matrix equation lately.
Line 83: Line 83:
Upon completion Gnu Octave should have a working funm based on the Schur-Parlett algorithms by Higham et al., that calls to specific matrix functions if these have an instance of their own: expm, logm, sqrtm etc.
Upon completion Gnu Octave should have a working funm based on the Schur-Parlett algorithms by Higham et al., that calls to specific matrix functions if these have an instance of their own: expm, logm, sqrtm etc.


Part of the work is already done by Prof. N.J. Higham and is available under a GPLv3+ license: [http://www.ma.man.ac.uk/~higham/mftoolbox/ The Matrix Function Toolbox][2] which is closely related to the book by the same author[3].  
'''Update'''
Part of the work is already done by Prof. N.J. Higham and is available under a GPLv3+ license: [http://www.ma.man.ac.uk/~higham/mftoolbox/ The Matrix Function Toolbox][3] which is closely related to the book by the same author[4]. A [http://www.ma.man.ac.uk/~higham/mctoolbox toolbox for matrix computations][4] (The Matrix Computation Toolbox) is also provided by the same author, under the same license. Finally, a funm function is provided in the page of the NAMF project under GPLv3+.


<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
'''TENTATIVE TIMELINE'''(previous)
'''TENTATIVE TIMELINE'''(previous)
<div class="mw-collapsible-content">'''Introductio
<div class="mw-collapsible-content">'''Introduction'''
It appears to me that the natural task division for this project is to first improve and test funm (this shoud be ready by the mid-term), and then get to the rest, picking logm first.
It appears to me that the natural task division for this project is to first improve and test funm (this shoud be ready by the mid-term), and then get to the rest, picking logm first.
'''weeks 1-2'''
'''weeks 1-2'''
Line 118: Line 119:




[1] N.J. Higham. A New sqrtm for MATLAB.  Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999.
:{{ref label|1|1}} N.J. Higham. A New sqrtm for MATLAB.  Numerical Analysis Report No. 336, Manchester Centre for Computational Mathematics, Manchester, England, January 1999.
[2] N. J. Higham. The Matrix Function Toolbox. http://www.ma.man.ac.uk/~higham/mftoolbox
[3] Nicholas J. Higham, Functions of Matrices: Theory and Computation, Society for Industrial and Applied Mathematics, Philadelphia, USA, 2008.


[2] G.H. Golub and C.F. Van Loan. Matrix Computations, 4th Edition. The Johns Hopkins University Press, Baltimore, USA, 2013.
[3] N. J. Higham. The Matrix Function Toolbox. http://www.ma.man.ac.uk/~higham/mftoolbox
[4] Nicholas J. Higham, Functions of Matrices: Theory and Computation, Society for Industrial and Applied Mathematics, Philadelphia, USA, 2008.
[5] N. J. Higham. The Matrix Computation Toolbox. http://www.ma.man.ac.uk/~higham/mctoolbox
-------
-------


107

edits