Résolution de systèmes linéaires dans Maxima
-
22-09-2019 - |
Question
Je suis en train d'écrire un solveur général pour un système linéaire à l'aide Maxima linsolve(eqlist, varlist)
, mais sans avoir à spécifier explicitement la dimension du problème.
Cela fonctionne, mais fixe la dimension à 3:
linsolve( [ eq[0],eq[1],eq[2] ], [ a[0],a[1],a[2] ])
Cela ne:
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 que cela fonctionne?
Contexte 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 des pouvoirs généraux
p
. Bien que la somme finie de carrés est simple, la solution générale est étonnamment complexe: une discussion se trouve ici: sommation Finite par récurrence des relations, Partie 2 .
La solution
Apparemment, dans Maxima, les listes et les tableaux ne sont pas le même objet sous-jacent.
Les tableaux sont plus complexes et un peu de désordre à faire fonctionner (comme suggéré
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow