J'essaie d'écrire un solveur général pour un système linéaire dans Maxima en utilisant linsolve(eqlist, varlist)
, mais sans avoir à spécifier explicitement la dimension du problème.Résolution de systèmes linéaires dans Maxima
Cela fonctionne, mais fixe la dimension à 3:
linsolve([ eq[0],eq[1],eq[2] ], [ a[0],a[1],a[2] ])
Cela ne veut pas:
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)
)
Toute idée sur la façon d'obtenir ce travail?
arrière-plan derrière le problème: ce système linéaire se pose lors de la résolution la somme finie de puissances entières, à savoir la somme des carrés, finiment beaucoup de cubes, ou pouvoirs généraux
p
. Bien que la somme finie des carrés soit simple, la solution générale est étonnamment compliquée: une discussion peut être trouvée ici:
Finite Summation by Recurrence Relations, Part 2.