I have an $n \times n$ integer Hankel matrix $A$ that is defined via
$$A_{i,j} = \left(i+j\right)!$$
where $0!=1$ as is standard and both indices $i$ and $j$ start at $0$. Is there an analytic way to determine the eigenvectors for this Hankel matrix?
The context is that this is relevant to a function approximation problem I'm working on. I wish to use the analytic result so that I can determine an appropriate value of some exponentials in the next step to counterbalance the very large value that will appear, and in doing so make this useful.
Edit: The underlying problem was solved, so this specific problem does not need to be solved. Here's the code updated with the polynomials Jair provided:
import numpy as np
def basis_generator(t,order):
"""
Generate a basis valid over [0,inf), evaluated at points t
Parameters
----------
t : array_like
Set of positive real points the basis will be generated at.
order : int
The maximal order of polynomial to be used in the basis.
Returns
-------
y : array_like
Orthonormal basis over the points t.
"""
y = np.zeros(shape=(len(t),order+1))
y[:,0] = np.exp(-t/2)
y[:,1] = (1-t)*np.exp(-t/2)
dy = -t*np.exp(-t/2)
for k in range(1,order):
dy -= dy/(k+1)
dy -= (t*(y[:,k])/(k+1))
y[:,k+1] = y[:,k]+dy
return y
#Example 1:
dt = 0.00001
t = np.arange(dt,50,dt)
y = basis_generator(t,8)
print('Condition number: ', np.linalg.cond(y))
print('Inner products: ', dt*(y.T @ y))
#Example 2:
dt = 0.0001
t = np.arange(dt,50,dt)
y = basis_generator(t,100)
f = np.sin(t/5)
b = y.T @ f * dt
print('Relative squared error: ', (np.linalg.norm(f-(y@b))2)/(np.linalg.norm(f)2))