有没有人知道是否有内置函数同意获得表单的多元系列扩展
f(x,y) = a + b*x + c*y + d*x**2 + e*x*y + f*y**2 + ...
即按所有变量的升序排列?
提前致谢.
最佳答案
简短的回答是,目前(sympy build 0.7.5),没有内置函数可以处理多变量序列扩展.
似乎只支持在一个变量中对多变量函数进行系列扩展.您可以在函数文档here中的_eval_nseries的docstring中看到这一点.如果这对您很重要,您可以对Issue Tracker发表评论或加入mailinglist.
所以,要清楚,这有效:
In [1]: import sympy as sp
In [2]: x,y = sp.symbols('x,y')
In [3]: g = sp.exp(-x*y)
In [4]: g
Out[4]: exp(-x*y)
In [5]: g.series(x,0)
Out[5]: 1 - x*y + x**2*y**2/2 - x**3*y**3/6 + x**4*y**4/24 - x**5*y**5/120 + O(x**6)
In [6]: g.series(y,0)
Out[6]: 1 - x*y + x**2*y**2/2 - x**3*y**3/6 + x**4*y**4/24 - x**5*y**5/120 + O(y**6)
但在以下任何一项中都没有您想要的功能:
In [7]: g.series((x,y),(0,0))
Out[7]: exp(-x*y)
In [8]: g.series((x,0),(y,0))
Out[8]: exp(-x*y)
In [9]: g.series(x,y,0)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
403 if len(dir) != 1 or dir not in '+-':
2404 raise ValueError("Dir must be '+' or '-'")
2405
TypeError: object of type 'int' has no len()
In [10]: g.series(x,0)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
403 if len(dir) != 1 or dir not in '+-':
2404 raise ValueError("Dir must be '+' or '-'")
2405
TypeError: object of type 'int' has no len()