This repository contains the final project for the course Programming concepts in scientific computing (MATH-458) of the EPFL. The project involves different methods for calculating the eigenvalue. Developed by Alberto Bonifazi and Salvatore D'Urso.
Recent Commits
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
a0a6218630c7 | durso | Correction two errors about the reading of the file, and the creation of the… | Dec 17 2017 | ||||
6c7fc60cae61 | AlbertoBonifazi | fixes and adjustments test and report | Dec 15 2017 | ||||
59223d2494bd | AlbertoBonifazi | fix print matrix | Dec 15 2017 | ||||
846c5a497eb3 | AlbertoBonifazi | new readme e report | Dec 15 2017 | ||||
ee1dfe745a45 | AlbertoBonifazi | new git ignore | Dec 15 2017 | ||||
34ae3eca2fe8 | AlbertoBonifazi | Doxy | Dec 15 2017 | ||||
ddc48ef4db72 | AlbertoBonifazi | adjustment report | Dec 15 2017 | ||||
ca08dcb04065 | AlbertoBonifazi | new README | Dec 15 2017 | ||||
ab13381c760c | AlbertoBonifazi | added menu, report, minor fixes, Doxygen | Dec 15 2017 | ||||
c485ae8f76a2 | AlbertoBonifazi | test+doxygen+fix | Dec 14 2017 | ||||
f81c162fe192 | AlbertoBonifazi | small fixes | Dec 14 2017 | ||||
86cc046de63a | durso | Implementation of the shift methods | Dec 11 2017 | ||||
1dd2ebd88062 | durso | Improved versione of power method | Dec 10 2017 | ||||
e76f1e54a04f | durso | Data acquisition and power method implementation + small test | Dec 7 2017 | ||||
f442586e6982 | AlbertoBonifazi | -modified readme - include how to git | Dec 3 2017 |
README.md
Eigenvalue problems
Programming Concepts in Scientific Programming EPFL, Master class
Prof. Guillaume Anciaux
TAs : A. Nielsen & L. Pegolotti
Students: Bonifazi Alberto & D’Urso Salvatore
The final aim of our program is to implement numerical methods for the calculation of the eigenvalues and eigenvectors of a matrix. In particular, the following methods have been applied:
- Power method;
- Inverse Power method;
- Power method with Shift;
- Inverse Power method with Shift;
The whole project has been developed using CLion. For this reason, we recommend running it on this convenient idle. It’s also possible to compile it with cmake, following these instructions, while in the folder. mkdir build cd build cmake make .. make ./Eigenvalue To clone the repository, you can run from the terminal git clone ssh://git@c4science.ch/source/eigpro.git
Program Usage
The functioning of the program is very simple. It has a menu with different options. It’s possible to load your own matrix and perform the different operations. If you are interested in finding all eigenvalues of a matrix, it is possible to proceed as follow: first call the power and inverse method to find the highest and lowest eigenvalue, then call the shift inverse function setting the shift between these two eigenvalues until you find all the remaining ones. In order to get an idea of the potential of the program it is possible to run some tests (select 3), and in automatic the program runs 2 different tests on 7 different matrices. The output of the operations is shown on the screen.
Load matrix
The matrixes are imported as text file and it must have the following formatting: 1. The first row indicates the size of the square matrix (Ex: 3 indicates a 3 x 3 matrix); 2. The following lines represent the content of the matrix, with the numbers separated by a space, and a return to go to the next row; 3. The final line: if it is 0, it indicates that we want to perform the numerical calculation with the Power method and/or Inverse Power method; if it is different from 0, it indicates that we want to perform the numerical calculation with the Power method with Shift and/or Inverse Power method with Shift. In this case, the final value represents the Shift amount.