2016-10-04 4 views
0

У меня проблема с кленом, кто-то может мне помочь.Как создать общую функцию обобщения

Я хочу написать обобщение функции обобщения в клене. Например, я

п: = а (ак + Ьк + C) + Ь (Bk + ск + а) + C (Ak + ск + B)

Слово gcollect (F, A^2 + Ь^2 + с^2), то мы получим

к (а^2 + Ь^2 + C^2) + АБК + ACK + Bck + АВ + АС + ВС,

или gcollect (f, a^2 + b^2), то получим

k (a^2 + b^2) + kc^2 + abk + ack + bck + ab + ac + bc.

спасибо.

ответ

2

Вот кое-что, чтобы начать с ..

restart: 

gcollect:=(expr,t)-> 
      thaw(collect(algsubs(t=freeze(t), 
         expand(expr)),freeze(t),_rest)): 

f := a*(a*k+b*k+c)+b*(b*k+c*k+a)+c*(a*k+c*k+b): 

gcollect(f, a^2+b^2+c^2); 

gcollect(f, a^2+b^2+c^2, expand); 

gcollect(f, a^2+b^2); 

gcollect(f, a^2+b^2, expand); 
+0

Я попытаюсь. Большое вам спасибо. – Fzen