Python 及 SymPy 插件存在的几点问题

标签: 问题反馈——使用问题 问题反馈——未支持的函数 问题反馈——未实现的功能

邱彼郑楠 2025-12-06 16:47:21

1. Python 中的复数如何和北太天元中的复数相互转化. 这一点在 MATLAB 中也是没有相应的函数将 Python 的复数转化为 MATLAB 函数的复数, MATLAB 的机制是只要对 Python 的复数做了运算, 就自动转化为 MATLAB 的复数, 如 py.complex(1, 1) + 0 得到的就是 MATLAB 中的复数 1.0 + 1.0i.

2. 创建复数符号变量, sym(1+i) 不可行, 可行的两种方式, 直接使用符号虚数单位 sp.I 如 1 + sp.I, 另一种使用简化函数 sp.simplify() 或者封装好的 symsimplify(), 如 symsimplify(1+i);

3. SymPy 插件创建的符号变量不支持绝对值函数 abs(sym('x')).

4. SymPy 插件在调用 lambdify 函数时报错, 'NoneType' object has no attribute 'f_locals'. 示例如下:

load_plugin SymPy
sp = sympy_sp;
x = sym('x');
y = sin(x);
f = sp.lambdify(x, y)


292 5 0 收藏 回复

回复

addis 2025-12-08 #1

感谢反馈,我们会在接下来的更新中完善复数和其他 bug

Rain1560 2025-12-09 #2

lambdify 不能这么使用,因为这个函数会调用eval函数。北太内没有在python内保存局部变量(变量在北太的工作区中),因此报错。

Rain1560 2025-12-09 #3

复数的情况,现在可以支持标量的互相转化。(frompy和topy)

邱彼郑楠 2025-12-10 #4
引用:lambdify 不能这么使用,因为这个函数会调用eval函数。北太内没有在python内保存局部变量(变量在北太的工作区中),因此报错。

那符号函数转化为可以计算的函数现在有什么办法吗?

邱彼郑楠 2025-12-10 #5
引用:复数的情况,现在可以支持标量的互相转化。(frompy和topy)

topy 是能用的,frompy 不起效果,得到的还是 PyObject

complex.png

回复

重置 提交