步骤生成器的抽象基类,负责记录、管理和格式化符号计算的逐步求解过程。它为数学表达式的分步计算提供了统一的输出框架。
注意: 出现的所有图中,箭头的方向无实际意义,上面的文字所指可能是前对后,也可能是后对前
BaseStepGenerator 是一个轻量级的步骤管理组件,主要功能包括:
它与其它类的关系如下:
| 属性名 | 类型 | 描述 | 访问级别 |
|---|---|---|---|
| steps | List[Expr] | 存储计算过程中每个步骤的 SymPy 表达式 | 公共 |
| _explanations | List[str] | 存储每个步骤对应的解释说明文本 | 受保护 |
注意: steps 和 _explanations 列表始终保持相同长度,每个步骤的表达式和解释通过索引对应。
初始化步骤生成器实例,创建空的步骤列表和解释列表。
执行效果:
self.steps 列表self._explanations 列表重置步骤生成器的内部状态,清除所有记录的步骤和解释,准备进行新的计算。
使用场景:
添加一个新的计算步骤及其可选的解释说明。
参数:
| 参数名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| expr | Expr | 当前步骤的 SymPy 表达式 | 必需 |
| explanation | str | 对当前步骤的文字说明(可选) | 空字符串 |
执行效果:
expr 添加到 self.steps 列表末尾explanation 添加到
self._explanations 列表末尾
获取所有记录的步骤和对应的解释说明。
返回值:
| 位置 | 类型 | 描述 |
|---|---|---|
| 0 | List[Expr] | 所有步骤的 SymPy 表达式列表 |
| 1 | List[str] | 所有步骤的解释说明字符串列表 |
适用场景: 需要程序化处理计算步骤的场景
将所有步骤格式化为 LaTeX 对齐环境字符串。
返回值: 完整的 LaTeX 代码字符串
输出格式(连等式形式):
align 环境进行数学对齐& 开头,后续行以 &= 开头\newline 分隔\quad \text{...} 格式添加搭配 Jupyter notebook: 可使用 display(Math(latex_str)) 渲染返回的 LaTeX
BaseStepGenerator 被 BaseCalculator 及其子类用作步骤记录组件
如果需要不同的输出格式,可以创建 BaseStepGenerator 的子类。比如 LimitStepGenerator、DetStepGenerator 和 RefStepGenerator 类。
最佳实践:
reset() 方法确保状态清洁get_steps(),展示用 to_latex())