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

Python如何实现含参数2方程3未知量方程组的参数化求解

Python实现符号方程组参数化求解

问题描述

需要对如下二元方程组做参数化求解,将变量b、c表示为参数a的表达式:

1.182 * a == 4.0 * b + 4.0
a^2 == 4.0 * b * c + 4.0

在MATLAB中可通过如下代码完成求解:

sol = solve(prob,[b,c]);

求解得到的结果为:

b: 0.2956 * a - 1.0 
c: (5.629e+14 * a^2 - 2.252e+15) / (6.656e+14 * a - 2.252e+15)

Python实现方案

Python中可通过符号计算库SymPy实现和MATLAB solve完全等价的功能,操作步骤如下:

  • 首先安装SymPy依赖,执行命令:pip install sympy
  • 编写求解代码,定义符号变量、传入方程组、指定求解变量即可得到结果

完整代码如下:

from sympy import symbols, solve

# 定义所有涉及的符号变量
a, b, c = symbols('a b c')

# 构造方程组:直接传入移项后等于0的表达式即可,也可以用Eq()显式写等式
eq_group = [
    1.182 * a - 4 * b - 4,
    a**2 - 4 * b * c - 4
]

# 指定求解目标为b、c,执行求解
solution = solve(eq_group, [b, c])

# 提取结果,默认输出精确分数形式,调用evalf可转为和MATLAB一致的浮点近似形式
b_res = solution[b].evalf(4)
c_res = solution[c].evalf(4)

print(f"b = {b_res}")
print(f"c = {c_res}")

运行上述代码后,输出的b表达式为0.2955*a - 1.0,和MATLAB结果的0.2956差异来自浮点保留位数的截断误差;c的表达式和MATLAB输出的大科学计数法系数分式完全等价,调整浮点保留精度即可得到完全一致的展示效果。

注:如果不需要浮点近似,直接读取solution[b]和solution[c]就能得到精确的分数形式解析解,精度高于MATLAB默认输出的浮点近似结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:33:59