Я пытаюсь написать общий решатель для линейной системы в Maxima, используя linsolve(eqlist, varlist)
, но без необходимости явно указывать размер проблемы.
Это работает, но фиксирует размер 3:
linsolve( [ eq[0],eq[1],eq[2] ], [ a[0],a[1],a[2] ])
Это не:
solution(p):=(
array(eq,p+1), /* creating arrays of length p+1 */
array(a,p+1),
for i:0 thru p do (
eq[i]: sum(binom(j+1,i)*a[j],j,i,p) = binom(p,i)
),
linsolve(eq,a)
)
Есть идеи, как заставить это работать?
Предыстория проблемы : эта линейная система возникает при решении конечного суммирования целых степеней, то есть суммы конечного числа квадратов, кубов или общих степеней
p
. Хотя конечная сумма квадратов проста, общее решение удивительно сложно: обсуждение можно найти здесь:
Конечное суммирование по рекуррентным соотношениям, часть 2 .