基于 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);
}
| 方法 |
说明 |
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。