I would like to use a series of Maple worksheets, written by Professors Malidi Ahamadi and Jean-Jacques Gervais, designed to compute the normal forms of ODEs and PDEs. The code was written for an earlier version of Maple (maybe version 7 or 8) and doesn't run anymore on Maple 13. I would like to make the necessary adaptations to the code to run it on Maple 13. Unfortunately, I am no Maple expert...

When I run the worksheet, the following error message shows:

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

I suspect that the following (and similar) line of code (edited) is the culprit:

sum('sum('cat(Phi,2*k+1,t)*x^(2*k+1)*mu^t',('k') = 0 .. 10)',t = 0 .. 10);

Any suggestions?

many thanks,

Patrick.

- The software archives, containing Maple and Matlab code, has been posted on Mapleprimes, with the generous consent of Professors Gervais and Ahamadi:

http://www.mapleprimes.com/9249_f_normales.zip
- The reference to the relevant article is the following:

@article{947796,

author = {Ahamadi, Malidi and Gervais, Jean-Jacques},

title = {Symbolic-numerical methods for the computation of normal forms of PDEs},

journal = {J. Comput. Appl. Math.},

volume = {158},

number = {2},

year = {2003},

issn = {0377-0427},

pages = {443--472},

doi = {http://dx.doi.org/10.1016/S0377-0427(03)00482-5},

publisher = {Elsevier Science Publishers B. V.},

address = {Amsterdam, The Netherlands, The Netherlands},

}

- The article is available online in pdf format:

http://www.maths.leeds.ac.uk/~malidi/PaperSysDyn.pdf

- For convenience, the procedure which I think contains outdated code (the full code is in the zipped file referenced above):

decomp_var_centrale := proc (symetrie_vc,i, degre)

local ppi, lpi;

if symetrie_vc=1 then

if i = 0 then ppi := sum('sum('cat(Phi,2*k+1,t)*x^(2*k+1)*mu^t',('k') = 0 .. degre)',t = 0 .. degre);

remove(has,nettoie_degre_steady(ppi,degre),Phi10) else

lpi := sum('sum('cat(Phi,i,2*k+1,t)*x^(2*k+1)*mu^t',('k') = 0 .. degre)',t = 0 .. degre); remove(has,nettoie_degre_steady(lpi,degre),Phi10);

end if;

else

if i = 0 then ppi := sum('cat(Phi0,j)*mu^j',j=1..degre)+ sum('sum('cat(Phi,k,t)*x^k*mu^t',('k') = 1 .. degre)',t = 0 .. degre);

remove(has,nettoie_degre_steady(ppi,degre),Phi10) else

lpi := sum('cat(Phi,i,'0',j)*mu^j',j=1..degre)+ sum('sum('cat(Phi,i,k,t)*x^k*mu^t',('k') = 1 .. degre)',t = 0 .. degre); remove(has,nettoie_degre_steady(lpi,degre),Phi10);

end if ;

end if

end proc: