В качестве дополнения.
Команда dchange обеспечивает замену переменных в "стандартных" ситуациях, т.е. при заменах зависимых и независимых переменных какими-то функциями. Часто, однако, требуется заменить некое выражение, тогда указанные выше команды не работают.
Вот простейший пример такого рода.
В выражении
> z := Expression=diff(f(x,y),x,y) + diff(f(x,y),x) + f(x,y):
требуется произвести следующую подстановку
> Z :=diff(f(x,y),y)=g(x,y):
Здесь ни subs, ни dchange не срабатывают.
В таких случаях наиболее эффективным является следующий прием (замечу попутно, что команда casesplit помогает
упростить многие системы уравнений)
> with(PDETools):
> casesplit({z,Z},Expression);

,
Первое выражение в результате и есть требуемая подстановка.