Marika писал(а):
Пусть
- полином (степени по
и
одинаковые). Можно ли как-то объявить deg(f(x,y)) := 3 (4, 5, ... - не важно), чтобы это еще учитывалось бы и при дифференцировании, то есть (условный код):
deg(f(x,y)) := 3;
g(x,y) := diff(f(x,y));
deg(g(x,y)) = ? --> Ответ: 2
Кроме того, выражения вроде
воспринимались бы как имеющие суммарно 3-ю степень для данного случая?
Совершенно не понятно, что Вы хотите сделать. Например, как может быть такое: степени
и
равны
, но
.
Попробую угадать.
Я привык, что не полиному присваивают степень, а создают полином заданной степени (либо усекают полином до заданной степени). Назовем функцию создать полином заданной степени CreatePoly:
Код:
> CreatePoly:= proc(n, p1, p2)
local i,j;
description "Create polinom ....";
unassign(a);
sum(sum(a[n-i,n-j]*p1^i*p2^j, j=0..n), i=0..n);
end proc:
Теперь можно создать многочлен
Код:
> f:= CreatePoly(3, x, y);
Его суммарная степень
Код:
> degree(f, {x,y});
будет равна 6.
Продифференцируем, умножим на y, и снова посмотрим степень
Код:
> f:= y*diff(f, x);
> degree(f, {x,y});
Она по-прежнему равна 6.