### 6.42.38 Appliquer une fonction de plusieurs variables à un polynôme donné au format interne :map

Le polynôme x2+2xy+y2 s’écrit au format interne :
% % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % }
On peut transformer x2+2xy+y2 au format interne avec la commande symb2poly (voir 6.28.6). Par exemple p:=symb2poly((x+y)`^`2,[x,y]) renvoie % % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % }
Pour un polynôme de n variables, f va agir sur les coefficients de chaque monôme du polynôme.
Pour agir sur un monôme de n variables, f doit être une fonction de n+1 variables, on considère que ces variables représentent le coefficient, l’exposant de la première variable,...,l’exposant de la n-ième variable et f transforme le coefficient de ce monôme.
Par exemple, si le monôme est 5x2y3, au format interne il s’écrit : % % % {5,[2,3]% % % }
et si f est dédfinie par :
f(a,b,c):=a*(2*b+3*c)
alors
map(% % % {5,[2,3]% % % },f) renvoie le monôme f(5,2,3)x2y3=65x2y3 écrit au format interne, c’est à dire % % % {65,[2,3]% % % }
On tape :
map(% % % {5,[2,3]% % % },(a,b,c)->a*(2b+3c))
On obtient :
% % % {65,[2,3]% % % }
On tape :
map(% % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % },(a,b,c)->a*(b+2c))
On obtient :
% % % {2,[2,0]% % % }+% % % {6,[1,1]% % % }+% % % {4,[0,2]% % % } car si f est la fonction (a,b,c)−>a*(b+2c) alors f(1,2,0)=2,f(2,1,1)=6, f(1,0,2)=4