2017-02-08 3 views
0

J'ai une équation récursive pour les quantités w1 [k, n], w2 [k, n] où k est un entier positif ou négatif, et n est un entier positif . L'équation est la suivante:Maxima CAS - comment régler quelque chose (à zéro)

eq1_1 : w1[ K, N ] + R*sum(sum(w1[ K-k, N-n ]*'diff(w2[ k, n-1 ], R) + w2[ K-k, N-n ]*'diff(w2[ k, n-1 ], z) + %i*k*(w1[ K-k, N-n ]*w2[ k, n ]*'diff(S, R) + w2[ K-k, N-n ]*w2[ k, n ]*'diff(S, z)) , k, -n-1, n+1), n, 0, N) = 0; 

J'écris une règle

rule0: [N=0, K=0] 

pour écrire le premier terme. Je veux juste l'écrire, pas le résoudre. Je remplace cette règle, mis

simpsum:true 

et je reçois en sortie une équation (suis désolé mais je ne suis pas en mesure de le copier ici) avec des termes comme w1 [-1, -1] qui devrait être égal à zéro parce que n est positif. J'ai essayé de le mettre à zéro avec subst, ratsubst et tellsimp mais aucun d'entre eux travaillé (peut-être que j'utilisais la mauvaise syntaxe). Existe-t-il un moyen de mettre ces termes à zéro, ou même de dire à maxima de ne pas les écrire avant même d'avoir effectué un calcul?

+0

Quelle est la définition de 'w1 [k, n]' et 'w2 [k, n]'? –

Répondre

0
w2[-1,0] : 0$ /* repeat as needed for other specific elements */ 
subst(rule0,eq1_1); 
ev(%); 

ou, ce qui revient,

w2[-1,0] : 0$ 
subst(rule0,eq1_1),eval;