解决Python中向复数表达式中传入Symbol对象出现TypeError: can‘t convert expression to float

1.问题描述

在Python中利用Sympy求解定积分问题时,我首先定义一个Symbol对象,之后将Symbol对象传入复数形式的表达式中,结果计算时出现报错:

   q = complex(1,p**2)
   ...
   raise TypeError("can't convert expression to float")
TypeError: can't convert expression to float

代码:

# 声明变量p
p = symbols('p',real=True)
q = complex(1,p**2)

2.解决方案

经过网上查询,可能是因为使用complex()函数转换成复数会报错,如果对源代码仅修改成以下形式python仍无法辨别复数形式的定义。

# 声明变量p
p = symbols('p',real=True)
q = 1 + pj
   q = 1 + pj
NameError: name 'pj' is not defined

修改方案:在j前面乘以1即可解决

# 声明变量p
p = symbols('p',real=True)
q = 1 + p*1j

猜你喜欢

转载自blog.csdn.net/weixin_44547510/article/details/116863436