求解方程时出错:TypeError:ufunc 循环不支持没有可调用 sqrt 方法的 Add 类型的参数 0

问题描述

我想用 sympy 解方程,但我失败了。

代码的一般语法以前有效,只是在这个等式中失败了。方程 Av_pv 只定义在 0 到 1 之间,但所有给定的变量都保持在这个区间内。

代码

def Av_pv(pv):
    fac1 = 2 / (kappa - 1)
    fac2 = ((kappa + 1) / 2) ** ((kappa + 1) / (kappa - 1))
    return np.sqrt((fac1 * pv ** (2 / kappa) - fac1 * pv ** ((kappa + 1) / kappa)) * fac2)

x = sp.Symbol('x')
eq = Av_pv(x) - Av_e_2
pv2 = sp.solve(eq,x)
pv2 = float(pv2[1])
print('pv2:'
      '\t =',round(pv2,2))

完整日志:

AttributeError: 'Add' object has no attribute 'sqrt'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "xxx",line 14,in <module>
    eq = Av_pv(x) - Av_e_2
  File "xxx",line 10,in Av_pv
    return np.sqrt((fac1 * pv ** (2 / kappa) - fac1 * pv ** ((kappa + 1) / kappa)) * fac2)
TypeError: loop of ufunc does not support argument 0 of type Add which has no callable sqrt method

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)