В качестве дополнения.
Команда  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);
 
 
 

,
![\dfrac{\partial ^2g(x,y)}{\partial x\partial y} = -\dfrac{\partial g(x,y)}{\partial x}-g(x,y), \dfrac{\partial f(x,y)}{\partial y} = g(x,y)] \dfrac{\partial ^2g(x,y)}{\partial x\partial y} = -\dfrac{\partial g(x,y)}{\partial x}-g(x,y), \dfrac{\partial f(x,y)}{\partial y} = g(x,y)]](https://dxdy-02.korotkov.co.uk/f/9/7/4/974ac68de95eb3c6457d502f29e350cd82.png) 
Первое выражение в результате и есть требуемая подстановка.