18 lines
635 B
C++
18 lines
635 B
C++
#include <armadillo>
|
|
#include <cmath>
|
|
|
|
arma::mat create_tridiagonal_matrix(int N, double h);
|
|
|
|
arma::mat create_dense_matrix(int N, double h);
|
|
|
|
void normalize_columns(arma::mat& A);
|
|
|
|
void analytical_solution(int N, double h, arma::vec& eigenvalues, arma::mat& eigenvectors);
|
|
|
|
double max_offdiag_symmetric(const arma::mat& A, int& k, int &l);
|
|
|
|
void jacobi_rotate(arma::mat& A, arma::mat& R, int k, int l);
|
|
|
|
void jacobi_eigensolver(const arma::mat& A, double eps, arma::vec& eigenvalues, arma::mat& eigenvectors, const int maxiter, int& iterations, bool& converged);
|
|
|
|
void sort_eigenpairs(arma::vec& eigenvalues, arma::mat& eigenvectors); |