Skip to content

SiriLee/Matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matrix — C++ 矩阵运算库

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

特性

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

编译与运行

# 配置
cmake -B build -G "MinGW Makefiles"

# 编译
cmake --build build

# 运行测试
./build/MatrixTest.exe

快速开始

#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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages