You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中分步展示线性方程的化简与求解过程?

如何在Python中分步展示线性方程的化简与求解过程?

嗨,这个需求太贴合学习场景啦!其实不用找额外的库,SymPy本身就能帮我们实现这种「像在笔记本上一步步推导」的效果,完全模拟课堂上的化简步骤。下面我就用你的方程做一个极简示例,咱们一步步来~

前置准备

如果还没装SymPy,先在终端跑这条命令安装:

pip install sympy

分步推导代码(带课堂式解释)

from sympy import symbols, expand, collect, Eq, pprint, init_printing

# 初始化打印格式,让输出更贴近手写笔记风格
init_printing(use_latex=False)

# 1. 定义所有符号变量(就像我们在笔记本上先写清楚未知数和参数)
x, a, b, c, d, e, f, g = symbols('x a b c d e f g')

# 2. 写出原始方程
original_eq = Eq( ((x + b)*a)/(c*d) + ((x - b)*e)/(f*g), 0 )
print("=== 原始方程 ===")
pprint(original_eq)

# 第一步:消去分母(两边同乘分母的乘积c*d*f*g)
print("\n=== 第一步:消去分母 ===")
step1 = Eq( original_eq.lhs * c*d*f*g, original_eq.rhs * c*d*f*g )
pprint(step1)
# 就像手动解方程时,两边同时乘所有分母的乘积,把分数方程转成整式方程,方便后续计算

# 第二步:展开所有括号
print("\n=== 第二步:展开括号 ===")
step2 = Eq( expand(step1.lhs), step1.rhs )
pprint(step2)
# 把每一项的括号都展开,这样就能清晰区分含x的项和常数项了

# 第三步:合并同类项(把所有含x的项、常数项分别合并)
print("\n=== 第三步:合并同类项 ===")
collected_terms = collect(step2.lhs, x)
step3 = Eq( collected_terms, 0 )
pprint(step3)
# 把含x的项的系数合并到一起,常数项也合并,方程就变成了标准的「(x系数)*x + 常数项 = 0」形式

# 第四步:移项求解x
print("\n=== 第四步:移项求解 ===")
# 先拆分出x的系数和常数项
x_coeff = collected_terms.coeff(x)
constant_part = collected_terms.subs(x, 0)
# 移项后得到 x_coeff * x = -constant_part
step4 = Eq( x_coeff * x, -constant_part )
pprint(step4)

# 最终解出x
final_solution = -constant_part / x_coeff
print("\n=== 最终结果 ===")
pprint(f"x = {final_solution}")

额外小提示

如果你的环境支持LaTeX,可以把init_printing(use_latex=False)改成init_printing(use_latex=True),输出的公式会更接近课本上的印刷格式;如果喜欢纯文本的手写感,保持默认的use_latex=False就好。

你看,整个过程完全还原了课堂上的推导逻辑,每一步的操作和结果都清晰可见,比直接调用solve()得到结果更适合理解方程的化简过程。如果是其他线性方程,只需要修改原始方程的定义,剩下的步骤逻辑基本可以复用哦~

火山引擎 最新活动