This post is an article for December 11, 2019 in 2019 Numerical Calculation Advent Calendar, but it is almost poem ...
Let be a graded vector space ($ \ deg V_k = k $). At this time, ** Poincare series ** $ P (V; t) $ of $ V $ is the following formal power series.
Let $ V = \ mathbb {C} [x] $ (complex coefficient one-variable polynomial ring), and let $ V_k, \ (k = 0, 1, 2 ...) $ be the entire $ k $ homogeneous polynomial. Let's consider it as a vector space. Then $ \ mathbb {C} [x] $ can be regarded as a graded vector space, but since there is only one variable, the $ k $ homogeneous polynomial is $ a_k x ^ k, (a_k \ in \ mathbb {C} There is only one in the form of)
Now consider a two-variable polynomial ring $ V = \ mathbb {C} [x, y] $. The $ k $ homogeneous component $ V_k $ of $ V $ is the vector space of the entire $ k $ homogeneous polynomial as above. In this case, $ \ dim V_k $ changes depending on the value of $ k $. Looking from the smaller one
\begin{align}
V_0 &= \text{Span}\langle 1 \rangle, \\
V_1 &= \text{Span}\langle x, y\rangle, \\
V_2 &= \text{Span}\langle x^2, xy, y^2\rangle, \\
V_3 &= \text{Span}\langle x^3, x^2y, xy^2, y^3\rangle, \\
&...
\end{align}
And so on, you can see that $ \ dim V_k = k + 1
\begin{align}
P(\mathbb{C}[x, y]; t) &= \sum_{k = 0}^\infty \frac{d}{dt}t^{k + 1} \\
&= \frac{d}{dt} \left( t \sum_{k = 0} t^{k} \right) = \frac{d}{dt} \frac{t}{1 - t} = \frac{1}{(1 - t)^2}
\end{align}
You can write it in a closed form.
Similarly, what if $ V = \ mathbb {C} [x, y, z] $, $ V_k $ is a subspace spanning the entire $ k $ homogeneous polynomial? $ V_k $ is based on a homogeneous expression of the form $ x ^ p y ^ q z ^ r $, $ p + q + r = k $, but such a homogeneous expression is
\frac{(k + 2)!}{k!2!} = \dbinom{k + 2}{2}
You can see that there are different types
Now, I would like to actually calculate the first number term of the power series to confirm that this (★) formula really seems to hold. What should I do?
In this article, I'll try to calculate by programming with Python.
First, you should calculate the binomial coefficient on the right side. The Python library SciPy has a function comb
that calculates the binomial coefficient.
If you decide to use this to calculate up to the first 10 terms,
from scipy.special import comb
combinations = [comb(k + 2, k, exact=True) for k in range(10)]
print(combinations)
All you have to do is execute the program. Result is
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
have become.
Now, what about the left side?
General expression of Taylor expansion around $ t = 0 $
f(t) = f(0) + f'(0)t + \frac{1}{2!}f''(0)t^2 + \frac{1}{3!}f'''(0)t^3 + ... = \sum_{k=0}^\infty \frac{1}{k!} \frac{d^kf(0)}{dt^k}t^k
Recalling that, the coefficient is the $ k $ derivative at $ t = 0 $ on the left side divided by $ k! $. Let's calculate this by programming with Python. Such computer algebra calculations can be performed using a library called SymPy. Similarly, if you decide to calculate up to the first 10 terms, you will need to calculate the ** 10th derivative (!) **, which is very complicated by manual calculation, but you can easily find it by writing a program. I will.
The actual program is as follows. (I used scipy
to calculate the factorial.)
from sympy import *
from scipy.special import factorial
t = Symbol('t')
P = 1 / (1 - t) ** 3
coeffs = []
for k in range(10):
dk = diff(P, t, k).subs([(t, 0)])
coeff = dk / factorial(k, exact=True)
coeffs.append(coeff)
print(coeffs)
The execution result is still
[1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
It was confirmed that the coefficients on the left and right sides match up to the first 10 terms of the power series expansion.
I was vaguely thinking that I wanted to calculate such combinatorical things with a computer, so I wrote it though it is very simple.
-[Rhapsody of Polygon (Getting Started Mathematics)](https://www.amazon.co.jp/%E5%A4%9A%E9%A0%85%E5%BC%8F%E3%81%AE%E3 % 83% A9% E3% 83% 97% E3% 82% BD% E3% 83% 87% E3% 82% A3% E3% 83% BC-% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 82% 88% E3% 81% 86% E6% 95% B0% E5% AD% A6-% E8% A5% BF% E5% B1% B1-% E4% BA% AB / dp / 4535608415)
Recommended Posts