C++ Eigen3 구현 예제
예제: Eigen을 사용한 행렬 노름 계산
#include <iostream>
#include <Eigen/Dense>
int main() {
// Eigen 라이브러리를 사용하는 간단한 예제
// 3x3 행렬 A를 정의한다.
Eigen::Matrix3d A;
A << 1, 2, 3,
4, 5, 6,
7, 8, 9;
// 1-노름 (열의 최대 절대값 합) 계산
double norm1 = A.colwise().lpNorm<1>().maxCoeff();
std::cout << "1-노름: " << norm1 << std::endl;
// ∞-노름 (행의 최대 절대값 합) 계산
double normInf = A.rowwise().lpNorm<1>().maxCoeff();
std::cout << "∞-노름: " << normInf << std::endl;
// Frobenius 노름 계산
double normFro = A.norm();
std::cout << "Frobenius 노름: " << normFro << std::endl;
// 스펙트럴 노름 (2-노름, 최대 특이값) 계산
double normSpectral = A.jacobiSvd().singularValues().maxCoeff();
std::cout << "스펙트럴 노름: " << normSpectral << std::endl;
return 0;
}코드 설명
컴파일 방법
Last updated