矩阵计算器的抽象基类,为各种矩阵运算提供统一的框架和基础功能。它封装了矩阵输入解析、步骤记录、结果显示等通用操作,简化了具体矩阵计算器的开发。
注意: 出现的所有图中,箭头的方向无实际意义,上面的文字所指可能是前对后,也可能是后对前
CommonMatrixCalculator 为矩阵计算提供了一套完整的基础设施:
它与其它类的关系如下:
嵌套列表格式: [[1, 2], [3, 4]] - 2×2 矩阵
逗号隔开的多列表格式: [1, 2], [3, 4] - 2×2 矩阵
列向量格式: [[1], [2], [3]] - 标准列向量格式
行向量格式: [1, 2, 3] - 程序将自动转换为列向量
| 属性名 | 类型 | 描述 | 访问级别 |
|---|---|---|---|
| step_generator | MatrixStepGenerator | 矩阵步骤生成器实例,负责管理计算步骤的记录和格式化输出 | 公共 |
设计说明: step_generator 使用专门的 MatrixStepGenerator 类来处理矩阵计算特有的步骤显示需求。与 BaseStepGenerator 相比, 主要差在矩阵计算不需要以连等式形式输出过程,且每步表达式与解释文本也不在同一行出现。
初始化矩阵计算器实例,创建 MatrixStepGenerator 用于步骤管理。
执行效果: 创建 self.step_generator 实例
向计算过程添加步骤标题,用于组织和描述计算流程。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| title | str | 步骤的标题文本,将显示在计算过程中 | 必需 |
向步骤管理器中添加矩阵及其标识符。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| matrix | Matrix | 要显示的 SymPy 矩阵对象 | 必需 |
| name | str | 矩阵的标识符名称 | "A" |
向步骤管理器中添加向量及其标识符。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| vector | Matrix | 要显示的 SymPy 向量(列矩阵) | 必需 |
| name | str | 向量的标识符名称 | "x" |
向步骤管理器中添加方程或 LaTeX 文本。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| equation | str | 方程的 LaTeX 表示形式 | 必需 |
获取完整的计算步骤,以 LaTeX 格式返回。
返回值: str - 包含所有计算步骤的 LaTeX 代码
适用场景:
将矩阵字符串解析为 SymPy 的 Matrix 对象。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| matrix_input | str | 矩阵的字符串表示 | 必需 |
返回值: Matrix - 解析后的 SymPy 矩阵对象
异常: ValueError - 当输入字符串无法解析为有效矩阵时
注意: 此方法使用 SymPy 的 sympify 函数,支持所有 SymPy 认可的数字和符号表达式。
将向量字符串解析为 SymPy 的 Matrix 对象(列向量)。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| vector_input | str | 向量的字符串表示 | 必需 |
返回值: Matrix - 解析后的 SymPy 列向量
异常: ValueError - 当输入字符串无法解析为有效向量时
化简矩阵中的每个元素。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| matrix | Matrix | 需要简化的 SymPy 矩阵 | 必需 |
返回值: Matrix - 简化后的矩阵
特性:
1. 逻辑分组:使用 add_step() 将相关操作分组
2. 清晰标识:为矩阵和向量使用有意义的名称
3. 完整过程:记录从输入到输出的完整计算流程
4. 教学价值:添加解释性步骤帮助理解数学原理
1. 不可逆:始终处理矩阵不可逆的情况
2. 维度不匹配:检查矩阵维度兼容性
3. 输入格式有误:验证输入格式的有效性
4. 简化报错:处理符号表达式可能出现的简化问题