为了账号安全,请及时绑定邮箱和手机立即绑定

Python 无法解决的数学问题 - 找不到正确的答案

Python 无法解决的数学问题 - 找不到正确的答案

月关宝盒 2023-08-15 18:36:26
我编写这段代码的目的是求解这个方程,其中我有 R3 (630) 和 Z (600) 的值。但我没能解出方程。在编写代码时,我收到了很多错误和一些错误的答案。k 的答案应该是 2.33333...import mathfrom sympy import symbols, Eq, solve# ATENUADOR PIR3 = 630Z = 600k = symbols('k')AdB = symbols('AdB')k = solve((R3 * (k ** 2 - 1) / 2 * Z))k = max(k)我使用的每个 k =solve(...) 收到的错误 k = solve((R3 * (k ** 2 - 1) / 2 * Z))k = 1k = solve(R2 * (k ** 2 - 1) / (2 * Z))类型错误: ** 或 pow() 不支持的操作数类型:“list”和“int”k = solve(R2=2 * Z * (k / k ** 2 - 1))类型错误: ** 或 pow() 不支持的操作数类型:“list”和“int”k = solve((R2 * k ** 2) - R2 - (2 * k * 2))类型错误: ** 或 pow() 不支持的操作数类型:“list”和“int”还有一个公式给了我 1 + sqrt(2) 的值,接近答案,但仍然不是考虑 R2 == R3
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

Solve 正在求解 0,所以你可以这样做


from sympy import symbols

R3 = 630

Z = 600

k = symbols("k")

k_ans = solve(2*Z*(k/(k*k-1))-R3)

print(k_ans)

这给出了[-3/7, 7/3]答案。


查看完整回答
反对 回复 2023-08-15
?
HUWWW

TA贡献1874条经验 获得超12个赞

您错误地定义了solve()函数的参数

正确的是:

res = solve((R3 * (k ** 2 - 1) - (2 * Z * k)))

您可以通过在纸上解这个方程来轻松检查它


查看完整回答
反对 回复 2023-08-15
?
浮云间

TA贡献1829条经验 获得超4个赞

630.Z² - 2.600.Z - 630 = 0  <-> Z = -3/7 or Z = 7/3.



查看完整回答
反对 回复 2023-08-15
  • 3 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信