给定递归关系,根据初始元素查找序列中的项

Find the terms in a sequence in terms of the initial elements given the recurrence relation

总结:我有一个 k 阶递归关系,我需要根据 a[0], a[1], ..., a[k-1]

找到项 a[n]

考虑这个递归关系:

2*(n+2)*(n+1)*a[n+2] + 3*(n+1)*a[n+1] + (n+3)*a[n] = 0

由于这是一个二阶齐次线性递推关系,所以每个a[n]都可以表示为a[0]a[1]的线性组合:

a[n] = c0[n] * a[0] + c1[n] * a[1]

其中 c0[n]c1[n] 是一些常量。我试图在上面的表格中找到 a[n](序列中只有 a[0]a[1])。


这就是我在 Maxima 中定义循环的方式:

rec: 2*(n+2)*(n+1)*a[n+2] + 3*(n+1)*a[n+1] + (n+3)*a[n] = 0;

eqns: makelist(''rec, n, 0, 6);

我目前的方法是将 a[0] 设置为 0 并将 a[1] 设置为 1 以找到 a[1] 的系数,反之亦然:

c0 = solve(append(eqns, [a[0] = 1, a[1] = 0]));

c1 = solve(append(eqns, [a[0] = 0, a[1] = 1]));

这很好用,我得到了系数。但我想知道如何告诉 Maxima a[0]a[1] 是未知数,它应该找到,例如a[2],根据 a[0]a[1].

告诉 Maxima 你想解决 a[2], a[3], ..., a[n]:

eqns: makelist(''rec, n, 0, 6);

unknowns: makelist(a[i], i, 2, 8);

solve(eqns, unknowns);