Efficient Fortran Subroutines for Matrix Diagonalisation: Small Matrices

  • Context: Undergrad 
  • Thread starter Thread starter Morberticus
  • Start date Start date
  • Tags Tags
    Matrix
Click For Summary
SUMMARY

This discussion focuses on the need for efficient Fortran subroutines for matrix diagonalization, specifically for small matrices up to 100x100 in size. Users express concerns that LAPACK/BLAS may be excessive for this task due to their complexity and size. The conversation highlights that LAPACK is designed for a wide range of matrix solutions, including handling banded and fully populated matrices, which are common in finite element and boundary element analyses. The importance of understanding the specific characteristics of the matrices being diagonalized is emphasized, particularly in relation to computational efficiency.

PREREQUISITES
  • Understanding of Fortran programming language
  • Familiarity with LAPACK and BLAS libraries
  • Knowledge of matrix types, including banded and fully populated matrices
  • Basic concepts of numerical methods for matrix diagonalization
NEXT STEPS
  • Explore LAPACK documentation for small matrix diagonalization techniques
  • Learn about Fortran subroutine compilation and usage
  • Research methods for handling banded matrices in numerical analysis
  • Investigate specialized routines for least squares regression matrix diagonalization
USEFUL FOR

Researchers, numerical analysts, and developers working with matrix computations in Fortran, particularly those focusing on small matrix diagonalization and optimization techniques.

Morberticus
Messages
82
Reaction score
0
Hi,

I'm looking for a matrix diagonalisation subroutine in fortran. Does anyone know of any online sources for such things? The matrices are small (The largest being 100x100) so LAPACK/BLAS seems like overkill.
 
Physics news on Phys.org
Why do you think LAPACK is "overkill"? The reason the code may look complicated is because it is carefully written to handle any numbers that are thrown at them, but it doesn't add anything significant to the computing time.

You don't need to understand what every line of the code is for. Just compile the libraries and use them.
 
LAPACK is large because it is designed to provide many different kinds of matrix solutions. You say your largest problem will be the diagonalization of a 100 x 100 matrix. How are these matrices obtained? For example, finite elements typically produce banded matrices, where zeros appear in a large number of the cells, and the remaining elements are symmetric about the main diagonal. Boundary elements typically produce fully populated matrices where zero elements are rare. Least squares regression analyses produce matrices which can be difficult to diagonalize unless you have access to special routines or have a machine capable of doing extra-long floating point precision. What's yer poison?
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 4 ·
Replies
4
Views
3K
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 18 ·
Replies
18
Views
7K
  • · Replies 12 ·
Replies
12
Views
8K