[Maple] Sommare tutti gli indici tranne uno

dissonance
Ho bisogno di passare a Maple formule come questa:

[tex]\displaystyle \sum_\substack{j=1 \\ j\ne k}}^n (x-x_j)[/tex].

Come posso scrivere il range [tex]j=1..n,\,j \ne k[/tex]? In MATLAB si può risolvere con
j=[1:k-1 k+1:n]

qualcuno mi potrebbe suggerire un analogo Maple?

Risposte
apatriarca
Probabilmente c'è una soluzione migliore ma potresti spezzare la sommatoria in
[tex]\displaystyle \sum_{j=1}^{k-1}(x - x_j) + \sum_{j=k+1}^{n}(x - x_j)[/tex]

dissonance
Grazie, apatriarca. La tua è una soluzione; nel frattempo ho scoperto che il comando add, a differenza di sum, accetta come range anche degli array: per esempio
add(n, n=[\$1..3, \$5..7])
([size=75][\$1..3, \$5..7] è esattamente la stessa cosa che scrivere [1, 2, 3, 5, 6, 7][/size]) è accettato, mentre l'analoga scrittura con sum produce l'errore

Error, (in sum) second argument must be a name, name=a..b, name=RootOf, or name=value

Sospetto che sia proprio una limitazione del comando sum che non è stato progettato per gestire somme su insiemi arbitrari di indici, e che quindi l'unica soluzione sia quella da te prospettata. Ma non ho (purtroppo) il tempo di indagare ulteriormente, nel frattempo ho risolto per altra via.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.