How to realize Matrix Symmetry Orthogonalization in C++
This article introduces the relevant knowledge of "how to achieve matrix symmetry and orthogonalization in C++". In the operation of actual cases, many people will encounter such a dilemma, so let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!
1.python code
Import numpy as npimport pandas as pddf=pd.DataFrame () df ['fac_01'] = (34, 45, 65) df [' fac_02'] = (56, 25, 94) print (df) print Df)) # find the eigenvalues D, and Eigenvectors Uprint of matrices (DQuery U Sep='\ n') print ('\ n-diagonal matrix--') print (np.diag * (- 0.5)) print ('\ n-symmetric orthogonal matrix- -') S = np.dot (np.dot (U Np.diag (df * (- 0.5)), U.T) # find the transition matrix S = U * DEx * U'F_hat = np.dot (df, S) # find the symmetric orthogonal matrix print (F_hat)
2. The implementation of Eigen library of Clipper +.
# include "Eigen/Dense" using namespace Eigen;int main () {/ / initialize MatrixXf A (3,2); A (0meme0) = 34th A (0meme1) = 56; A (1meme 0) = 45ten A (1p1) = 25; A (2mem0) = 65ten A (2jin1) = 94; / / generate orthogonal matrix MatrixXf AEx = A.transpose () * A; int nRowSize = AEx.rows (); int nColSize = AEx.cols () / / find eigenvalue, eigenvector SelfAdjointEigenSolver eigensolver (AEx); MatrixXf D = eigensolver.eigenvalues (); MatrixXf U = eigensolver.eigenvectors (); std::cout