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

如何求解线性方程?sympy求解出勤达标方程遇异常结果求助

问题分析与解决

核心问题

1. 公式书写错误

你推导的公式括号位置有误,原写法:

required_percentage=(attended+x/conducted+x)*100

会被解析为 attended + (x/conducted) + x,完全偏离出勤率的计算逻辑。正确的出勤率公式应该是:

required_percentage = ((attended + x) / (conducted + x)) * 100

其中:

  • attended:已参加课程数
  • conducted:已开设总课程数
  • x:需要额外参加的课程数

2. SymPy代码逻辑错误

你的代码没有构建正确的方程:

  • 你写的(({attended}+x)/({conducted}+x))*100/{required}只是一个表达式,而非等式(SymPy默认求解表达式等于0的情况,这就是你得到[-4]错误结果的原因)
  • 正确做法是构建等式:((attended + x)/(conducted + x)) * 100 == required_percentage

修正后的代码示例

假设你手动计算时使用的参数是:attended=30,conducted=50,required_percentage=75(代入后手动计算得x=30),修正后的代码如下:

import sympy
from sympy.abc import x

# 代入你的实际参数值
attended = 30
conducted = 50
required_percentage = 75

# 构建正确的方程
equation = sympy.Eq(((attended + x) / (conducted + x)) * 100, required_percentage)

# 求解x
result = sympy.solve(equation, x)
print(result)  # 输出: [30]

验证结果

将x=30代入公式:

((30+30)/(50+30))*100 = (60/80)*100 = 75%

和预期出勤率一致,结果正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:33:18