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

如何用Python求解线性方程组计算电阻R3、R4?SymPy实现遇错

问题:SymPy求解电阻方程组结果异常

问题背景

我查阅了诸多类似场景的计算指南,选择使用SymPy库求解电阻R3和R4的方程组,但未能得到正确结果。

原始方程组

用于计算电阻R3和R4的方程组:

1/r3 + 1/r4 = 1/r_ref
Vneg * r3/(r3+r4) = Vbias

转换后的表达式

我将方程组进一步转换为:

r4 = r3 * r_ref / (r3 - r_ref)
r4 = (Vneg / Vbias) * r3 - r3

其中r_ref为可配置的已知电阻,Vneg和Vbias为已知电压。

错误代码及结果

我编写了如下代码,但无法得到正确结果:

from sympy import *

Vbias = -717.39
Vneg = -5000
r_ref = 43

y1 = (Vneg/Vbias) * x - x
y2 = x*r_ref / (x - r)
solve((y1,y2))

得到的结果为:

{x: 0.0}

问题修正

错误点分析

  1. 未定义符号变量:代码中使用的x和r没有通过SymPy的symbols()函数定义,SymPy无法识别这些变量为待求解的符号。
  2. 变量名拼写错误:第二个表达式中的r应为r_ref,与转换后的式子和已知变量名保持一致。

修正后的代码

from sympy import symbols, solve

# 定义待求解的符号变量r3
r3 = symbols('r3')
Vbias = -717.39
Vneg = -5000
r_ref = 43

# 根据转换后的表达式构建等式
eq1 = (Vneg / Vbias) * r3 - r3
eq2 = (r3 * r_ref) / (r3 - r_ref)

# 求解eq1等于eq2的方程
r3_solutions = solve(eq1 - eq2, r3)
# 计算对应的r4值
r4_solutions = [(Vneg / Vbias) * val - val for val in r3_solutions]

print("r3的解:", r3_solutions)
print("r4的解:", r4_solutions)

结果说明

运行修正后的代码会得到符合物理意义的电阻值,解决了原代码返回{x:0.0}的错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:35:20