Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matrix — C++ 矩阵运算库

基于 C++17 的线性代数矩阵库,提供矩阵基本运算、线性代数算法及多种属性检查。

特性

  • 运算符重载:+ - * += -= *= 直观的矩阵运算语法
  • 线性代数算法:行列式、伴随矩阵、逆矩阵、转置、秩、幂次、迹、内积
  • 矩阵变换:高斯消元化为行阶梯形 / 简化行阶梯形
  • 方程求解:齐次和非齐次线性方程组(支持无解/唯一解/无穷解)
  • 属性检查:对称、对角、正交、正定、上三角、奇异、满秩等 13 种
  • 异常安全:非法操作抛出明确异常

编译与运行

前置条件: CMake ≥ 3.10,支持 C++17 的编译器(GCC ≥ 8 / Clang ≥ 7 / MSVC ≥ 2017)。

# 配置(CMake 自动检测平台生成器)
cmake -B build

# 编译
cmake --build build

# 运行测试
./build/MatrixTest          # Linux / macOS
.\build\MatrixTest.exe      # Windows

快速开始

#include "Matrix.h"
#include <iostream>

int main() {
    // 创建 2x2 矩阵
    std::vector<std::vector<double>> values = {{1, 2}, {3, 4}};
    Matrix A{values};

    // 转置
    Matrix AT = A.transpose();

    // 行列式
    std::cout << "det(A) = " << A.determinant() << std::endl;

    // 求逆
    Matrix inv = A.inverse();

    // 解方程组 Ax = b
    Matrix b{2, 1, 1.0};
    Matrix x = A.solve(b);
}

API 概览

构造

方法 说明
Matrix() 空矩阵
Matrix(rows, cols) 指定大小,初始化为 0
Matrix(rows, cols, val) 指定大小和初始值
Matrix(2d-vector) 从二维 vector 构造

运算

方法 说明
transpose() 转置
determinant() 行列式
inverse() 逆矩阵
adjugate() 伴随矩阵
rank() 秩
pow(n) 方阵幂(支持负数)
trace() 迹
dotProduct(v) 内积
echelonForm() 行阶梯形
reducedEchelonForm() 简化行阶梯形
solve() 齐次方程组
solve(b) 非齐次方程组

静态方法

方法 说明
identity(n) 单位矩阵
zeros(r, c) 零矩阵
ones(r, c) 全 1 矩阵

项目结构

Matrix/
├── Matrix.h          # 头文件(类声明)
├── Matrix.cpp        # 实现
├── test.cpp          # 测试程序
├── Matrix.md         # 详细设计文档
├── CMakeLists.txt    # CMake 构建配置
└── .gitignore

详细设计文档见 Matrix.md。

About

基于 C++17 的线性代数矩阵库,提供矩阵基本运算、线性代数算法及多种属性检查。

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages