一个 100% 本地运行 的开源小工具,帮你在学线性代数时"不仅算出结果,还能看懂过程"。
所有矩阵运算使用 SymPy 精确有理数,所以 1/3 永远不会变成 0.333。
三个版本共用同一个 core/ 引擎,结果完全一致,按你的使用场景挑一个就行:
| 版本 | 适合场景 | 怎么用 |
|---|---|---|
| 🖥 桌面版 | 平时写作业,想双击就开 | 下载 Releases 里的安装包,免装 Python、免联网 |
| 🌐 网页版 | 已经装着 Python,想改代码 | python web/app.py,自动开浏览器 |
| ☁️ 在线预览版 | 想在同学电脑 / 手机上演示 | 打开 https://27f263035b214ac598c05e6f0dc76cff.app.workbuddy.host,浏览器里跑真 Python |
- 矩阵输入 / 展示、转置、加减、标量乘
- 矩阵乘法(自动维度校验,输入上限 16×16)
- 方阵求逆(Gauss-Jordan,带步骤)
- 左逆 / 右逆(满列秩 / 满行秩时给出;不满秩时说明原因)
- Moore-Penrose 伪逆(通用)
- LU 分解(含部分主元,PA = LU,带步骤)
- 增广矩阵求解([A|b] → RREF,判定唯一解 / 无解 / 无穷多解 + 零空间基)
- 行列式、秩、RREF
- 特征值 / 特征向量(小矩阵精确;≥5×5 自动切数值解,避免
CRootOf与长时间卡顿) - 所有运算可开关"显示步骤"、可切换小数显示
下面这套界面是网页版 / 在线预览版的。桌面版目前只有「操作下拉框」那一种方式, 引擎完全相同(都走
engine.dispatch),只是还没有表达式输入框。
① 操作下拉框(主路径,三端都有)——选「操作 + 左操作数 + 右操作数」,点计算。
② 表达式快捷键(网页版 / 在线预览版)——一行写完,回车即算:
inv(A) * B - C det(A * B) 3 * inv(A) A^2 A^-1
点开界面里的「快捷键指南」有完整对照表(每一行都标了它对应的下拉框操作)。
支持 + - *、/ 标量、^n、inv det rank rref T/transpose pinv
lu solve eigen(后三个结果不止一项,只能单独使用)。
表达式不是另写一套算法:两条路都经
engine.dispatch走同一个底层实现, 所以结果连计算步骤都逐字节相同。
| 能力 | 网页版 / 在线预览版 | 桌面版 |
|---|---|---|
| 改行列不丢数据 | ✅ | ✅ |
| 命名矩阵库(增删改名) | ✅ | — |
| 表达式快捷键 | ✅ | — |
| 旁边的小字预览 | ✅ | — |
| 粘贴识别(一长串数字自动成矩阵) | ✅ | — |
单格快速改错(聚焦全选 / Esc 撤销) |
✅ | — |
- 命名矩阵:默认 A、B、C、D 四个空槽,可新增 / 改名 / 删除, 算式里直接用名字调用。
- 改行列不丢数据:把 3×3 改成 3×4,已填的 9 个数字原样保留(多出的格留空,少掉的丢弃)。
- 粘贴导入:从 Excel 或任何文本里直接
Ctrl+V。- 带换行的表格 → 按它的原始形状导入;
- 一串空格分隔的数字 → 按你已经设好的「行」数自动换算出列数(3 行 + 12 个数 → 3×4);
- 单个数字 → 只填当前这一格。
- 旁边的小字预览同步显示引擎实际会用到的数字,空格自动补的
0用灰字标出, 一眼能看出哪些格子还没填。 - 单格快速改错:点进格子自动全选,直接输入即替换;按
Esc撤销这一格的改动。 回车 / 方向键在格间按行优先移动。 - 单元格留空按 0 计算。
原生窗口程序,不开浏览器、不连网、不需要装 Python。
到 Releases 页面下载对应你系统的压缩包:
| 你的系统 | 文件 | 首次打开 |
|---|---|---|
| macOS(Apple 芯片 / M 系列) | LA-Helper-macOS-arm64.zip |
解压后右键 → 打开(安装包未做签名,直接双击会被 Gatekeeper 拦) |
| Windows 10 / 11(64 位) | LA-Helper-Windows-x64.zip |
解压后双击 LA Helper.exe;SmartScreen 提示时点「更多信息 → 仍要运行」 |
Intel 芯片的 Mac 用户请直接用下面的「从源码运行」,或自行执行
bash desktop/build_mac.sh。
pip install sympy
python desktop/app.pybash desktop/build_mac.sh # macOS → dist/LA Helper.app
.\desktop\build_win.ps1 # Windows (PowerShell) → dist\LA Helper\LA Helper.exeWindows 的 .exe 无法在 macOS 上交叉编译,必须在一台 Windows 上执行脚本。
如果你没有 Windows 机器,直接推一个 v* 标签,本仓库的
Release 流水线 会在 GitHub 上自动构建两个平台的安装包。
pip install -r requirements.txt
python web/app.py # 自动打开浏览器到 http://127.0.0.1:8000无需联网、无需账号。可选参数:--port 8123、--no-browser、--verbose。
端口被占用时会自动顺延到下一个可用端口。
单元格只接受整数、小数、分数(1/3、-2、0.5、1e-3)。
不认识的字符会直接报错提示,不会静默当变量处理,也不会执行任何表达式
(例如 9**9**9 这类会让服务卡死的输入会被拒绝)。
la-helper/
├── core/ # 纯算法层(精确有理数,零 GUI / Web 依赖,全可单测)
│ # engine.py 是唯一分发入口;expr.py 是表达式解析器
├── web/ # 网页版:app.py 起服务 + index.html / app.js
├── desktop/ # 桌面版:tkinter GUI + 两个平台的打包脚本
├── tools/ # build_preview.py:把 core/ 打包成 Pyodide 静态预览
└── tests/ # pytest,TDD 红绿重构
- 算法与界面解耦:
core只算,web/desktop只展示。 - 数值默认精确分数,勾选"小数显示"可切换为 4 位小数近似。
pip install -r requirements-dev.txt
pytest覆盖:core 各模块、core.engine 契约、core.expr 表达式(含与下拉框路径的等价性断言、
以及 9**9**9 这类输入的拒绝用例)、输入安全 / 奇异矩阵 / 符号矩阵 / 大矩阵等回归用例。
网页版只监听 127.0.0.1,不是面向公网的服务:不要把它暴露到局域网或反向代理之后。
桌面版与在线预览版全部计算在本地进程 / 浏览器沙箱内完成,不发送任何数据。
- 更多分解(QR / SVD)、Gram-Schmidt、最小二乘
- 步骤结构化(每步带矩阵快照与当前主元,支持单步播放 / 高亮)
- 矩阵粘贴导入 / 导出(文本与图片)
- RREF 可选"部分主元"策略,默认贴近课本演示