Я пытаюсь написать общий решатель для линейной системы в 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.