【问题标题】:sympy error 'Symbol' object is not callablesympy 错误“符号”对象不可调用
【发布时间】:2026-01-03 14:35:02
【问题描述】:

当给定 x 和 y 的值时,我正在尝试求解 r 的方程。为此,我正在使用 sympy 的解决能力。我的代码是

import numpy as np
import matplotlib.pyplot as plt
from sympy import solve
from sympy import Symbol
from sympy import acos,sin

x=2
y=-2
r=Symbol("r",real=True)
solve(r(acos(1.0-(y/r)))-sin(acos(1.0-(y/r)))-x)

当我运行代码时,它给了我错误

'Symbol' object is not callable
line 10, in <module>
    solve(r(acos(1.0-(y/r)))-sin(acos(1.0-(y/r)))-x)

我导入 numpy 和 matplotlib 的原因是我稍后会在我的代码中使用它们。谢谢你的帮助。

【问题讨论】:

  • 如果要将 r 与括号中的部分相乘,请写 r*(...)
  • @Michael 你试过你的建议了吗?
  • @NicolasGervais 不,说实话。当然,第一个“acos(...)”表达式周围的括号也可以省略,但我认为这不会产生影响。
  • 它不适合我

标签: python symbols sympy solver


【解决方案1】:

该错误将您引导至要查找的内容:正在调用的符号。在 Python 语法中,这是一个符号,后跟一对括号,它们之间有一个或多个参数。您可能打算在表达式的第一个参数中乘以 r

>>> solve(r(acos(1.0-(y/r)))...
           ^__make that r*acos(1.0-(y/r))...

突出显示匹配括号的编辑器(如 repl.it 上的 Python 代码在线编辑器)在这些情况下会很有帮助。括号要么是分组,要么是跟在 Python 名称后面时,充当传递给函数的参数的分隔符。

【讨论】:

    最近更新 更多