使用 SAGEMATH 查找多变量生成函数中的系数

问题描述 投票:0回答:1

我想求$[a^3b^3c^3]$在$$ igg[1- igg( rac{a+a^2}{1-(a+a^2 )}+ rac{b+b^2}{1-(b+b^2)}+ rac{c+c^2}{1-(c+c^2)} igg) igg]^( -1)$$

我在互联网上研究了这个多变量生成函数的系数,但找不到有价值的东西。你能帮我用 Sagemath 计算系数吗?

注意=我不明白为什么 mathjax 语法在这里不起作用

python math sage
1个回答
0
投票

你可能可以这样做:

R.<a, b, c> = LazyPowerSeriesRing(ZZ)
f = lambda x: (x + x**2)/(1 - (x + x**2))
g = 1/(1 - (f(a) + f(b) + f(c)))
p = g.coefficient(9)
p.coefficient([3, 3, 3])
# Prints 36138, see below for data type discussion.

我用

LazyPowerSeriesRing
来描述生成函数。使用
f
作为帮助程序来节省一些输入,我将
g
定义为您的问题的生成函数(除非我犯了错误)。如果您在问题中为该函数提供了一些实际的 Sage 代码,将会有所帮助。

本系列的

coefficient
方法采用单个整数参数。对于多元序列,该整数是“总”度数。因此,对于 a3b3c3 来说,这将是 9。该调用的结果是一个多项式,其中每个单项式的次数为 9。然后,我从该多项式中提取该特定次数组合的系数。 请注意,

p.coefficient

返回的不是整数(如您所期望的),而是同一多元环的常数多项式。由于某种原因,

monomial_coefficient
似乎没有将学位列表作为参数。另请注意,多项式不定式在技术上与系列中的不定式不同,即使它们都打印为
a
b
c
。所以你不能写
p.monomial_coefficient(a**3 * b**3 * c**3)
。您可以采取以下方法之一:
aa, bb, cc = p.parent().gens()
p.coefficient(aa**3 * bb**3 * cc**3)             # Same as above, for comparison.
p.monomial_coefficient(aa**3 * bb**3 * cc**3)    # An integer.
p.coefficient([3, 3, 3]).constant_coefficient()  # Again an integer.

您还可以编写自己的便利助手:

def series_coeff(series, monomial): p = monomial.polynomial() return series.coefficient(p.degree()).monomial_coefficient(p) series_coeff(g, a**3 * b**3 * c**3)

参考链接:

    LazyPower系列戒指
  • 幂级数
  • 系数
  • 多项式的系数
  • 单项系数
  • 常数系数
© www.soinside.com 2019 - 2024. All rights reserved.