×

zbMATH — the first resource for mathematics

Efficient and accurate algorithms for computing matrix trigonometric functions. (English) Zbl 1416.65126
Summary: Trigonometric matrix functions play a fundamental role in second order differential equations. This work presents an algorithm based on Taylor series for computing the matrix cosine. It uses a backward error analysis with improved bounds. Numerical experiments show that MATLAB implementations of this algorithm has higher accuracy than other MATLAB implementations of the state of the art in the majority of tests. Furthermore, we have implemented the designed algorithm in language C for general purpose processors, and in CUDA for one and two NVIDIA GPUs. We obtained a very good performance from these implementations thanks to the high computational power of these hardware accelerators and our effort driven to avoid as much communications as possible. All the implemented programs are accessible through the MATLAB environment.

MSC:
65F60 Numerical computation of matrix exponential and similar matrix functions
15A16 Matrix exponential and similar functions of matrices
65Y05 Parallel numerical computation
PDF BibTeX XML Cite
Full Text: DOI
References:
[1] Higham, N. J., Functions of matrices: theory and computation, (2008), SIAM Philadelphia, PA, USA · Zbl 1167.15001
[2] Serbin, S., Rational approximations of trigonometric matrices with application to second-order systems of differential equations, Appl. Math. Comput., 5, 1, 75-92, (1979) · Zbl 0408.65047
[3] Moler, C. B.; Loan, C. V., Nineteen dubious ways to compute the exponential of a matrix, twenty-five years later*, SIAM Rev., 45, 3-49, (2003) · Zbl 1030.65029
[4] Serbin, S. M.; Blalock, S. A., An algorithm for computing the matrix cosine, IAM J. Sci. Statist. Comput., 1, 2, 198-204, (1980) · Zbl 0445.65023
[5] Sastre, J.; Ibáñez, J.; Ruiz, P.; Defez, E., Efficient computation of the matrix cosine, Appl. Math. Comput., 219, 7575-7585, (2013) · Zbl 1288.65059
[6] Al-Mohy, A. H.; Higham, N. J.; Relton, S. D., New algorithms for computing the matrix sine and cosine separately or simultaneously, SIAM J. Sci. Comput., 37, 1, A456-A487, (2015) · Zbl 1315.65045
[7] Paterson, M. S.; Stockmeyer, L. J., On the number of nonscalar multiplications necessary to evaluate polynomials, SIAM J. Comput., 2, 1, 60-66, (1973) · Zbl 0262.65033
[8] Sastre, J.; Ibáñez, J. J.; Defez, E.; Ruiz, P. A., Accurate matrix exponential computation to solve coupled differential models in engineering, Math. Comput. Modelling, 54, 1835-1840, (2011) · Zbl 1235.65042
[9] Sastre, J.; Ibáñez, J. J.; Defez, E.; Ruiz, P. A., Efficient orthogonal matrix polynomial based method for computing matrix exponential, Appl.Math. Comput., 217, 6451-6463, (2011) · Zbl 1211.65052
[10] Ruiz, P.; Sastre, J.; Ibáñez, J.; Defez, E., High perfomance computing of the matrix exponential, J. Comput. Appl. Math., 291, 370-379, (2016) · Zbl 1329.65092
[11] Mathworks, MATLAB MEX Files. http://www.mathworks.com/support/tech-notes/1600/1605.shtml#intro.
[12] NVIDIA, NVIDIA CUDA compute unified device architecture, 2009.
[13] NVIDIA, CUDA. CUBLAS library, 2009.
[14] Blackford, L. S.; Demmel, J.; Dongarra, J.; Duff, I.; Hammarling, S.; Henry, G.; Heroux, M.; Kaufman, L.; Lumsdaine, A.; Petitet, A.; Pozo, R.; Remington, K.; Whaley, R. C., An updated set of basic linear algebra subprograms (BLAS), ACM Trans. Math. Software, 28, 2, 135-151, (2002)
[15] O.A.R. Board, OpenMP Application Program Interface Version 3.1, July 2011.
[16] Higham, N. J., The test matrix toolbox for MATLAB, numerical analysis report no. 237, (1993), Manchester England
[17] T.G. Wright, Eigtool, version 2.1, 2009. URL: web.comlab.ox.ac.uk/pseudospectra/eigtool.
[18] Higham, N. J., Fortran codes for estimating the one-norm of a real or complex matrix, with applications to condition estimation, ACM Trans.Math. Softw., 14, 4, 381-396, (1988) · Zbl 0665.65043
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.