You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python求解多变量方程 推导各变量的等价表达式

推导正确性验证

你举的x = b/c的推导完全正确,默认排除分母为0的异常场景:

  • 求解b:两边同时乘c,可得b = x * c
  • 求解c:两边同时乘c再除以x(x≠0),可得c = b / x

Python实现方案

可以直接用Python的符号计算库SymPy实现这个需求,不需要手动开发代数推导逻辑,SymPy内置了成熟的方程求解能力。

实现步骤

  1. 先安装SymPy依赖:
pip install sympy
  1. 完整代码示例,以你给出的两个方程做测试:
from sympy import symbols, Eq, solve, parse_expr

def solve_all_vars(equation_str):
    # 拆分方程左右两部分
    left_part, right_part = equation_str.split('=')
    # 提取方程中所有字母作为符号变量
    var_names = set(char for char in equation_str if char.isalpha())
    var_objs = {name: symbols(name) for name in var_names}
    # 安全解析表达式构建方程
    left_expr = parse_expr(left_part.strip(), local_dict=var_objs)
    right_expr = parse_expr(right_part.strip(), local_dict=var_objs)
    eq = Eq(left_expr, right_expr)
    # 遍历每个变量单独求解
    solve_result = {}
    for var_name, var_obj in var_objs.items():
        solutions = solve(eq, var_obj)
        if solutions:
            # 线性方程一般只有唯一解,直接取第一个解即可
            solve_result[var_name] = solutions[0]
    return solve_result

# 测试1:简单方程 x = b/c
print("测试1 方程x = b/c的求解结果:")
res1 = solve_all_vars("x = b/c")
for k, v in res1.items():
    print(f"{k} = {v}")

# 测试2:复杂方程 x = 0.5*(b + c) - d
print("\n测试2 方程x = .5*(b + c) - d的求解结果:")
res2 = solve_all_vars("x = 0.5*(b + c) - d")
for k, v in res2.items():
    print(f"{k} = {v}")

运行输出

测试1结果和你的推导完全一致:

  • b = c*x
  • c = b/x
  • x = b/c

测试2输出结果:

  • b = 2.0*d + 2.0*x - c
  • c = 2.0*d + 2.0*x - b
  • d = 0.5*b + 0.5*c - x
  • x = 0.5*b + 0.5*c - d

注意:如果涉及高次方程、多解场景,可以调整solve的参数处理多解返回结果,上述示例默认只取第一个解适配常规线性方程场景。

内容的提问来源于stack exchange,提问作者divinelemon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:15:03