kill(all)$

maxima :intro how construct pde from arbitrary functions version1,part 4.
peter.vlasschaert@gmail.com,27/04/2021

ref :https://petervlaschemeng.weebly.com/
=================================
-----------------------------------------------------------------------------------------------------------------
maxima :intro how construct pde from geometrical shape (p,q),version1,part 1.
maxima :how construct pde(p,q) :eliminating arbitrary (a,b),version1,part 2.
maxima :intro how construct pde from geometrical shape (p,q,r,s,t),version1,part 3.
-----------------------------------------------------------------------------------------------------------------

load packages,option
-------------------------------

load(lrats)$  ratprint :false$

definitions :{p,q,r,s,t}
================

depends(z,[x,y]);

p2a:p = diff(z,x);
p2b:q = diff(z,y);
p2c:r = diff(z,x,2);
p2d:s = diff(z,x,1,y,1);
p2e:t = diff(z,y,2);

example 1:given :  z=f(x/y), find : pde

p3a1:z=f(x/y);

 1e)  step differentation  x and y
------------------------------

m1:x/y;

a) : differentation:  x 
---------------------------

chain rule : 'x'
-------------------

p3a21:diff(z,x)='diff(z,f)*'diff(f,x);

use :definition :p
----------------------

p3a22:subst([rhs(p2a)=lhs(p2a)],p3a21);

p3a23:'diff(f,x)=diff(m1,x);

p3a24:subst([p3a23],p3a22);

b) : differentation:  y 
---------------------------

chain rule : 'y'
-------------------
use : chain rule : 'x' → (x→y)

p3b21:subst([x=y],p3a21);

use :definition :q
--------------------

p3b22:subst([rhs(p2b)=lhs(p2b)],p3b21);

p3b23:'diff(f,y)=diff(m1,y);

p3b24:subst([p3b23],p3b22);

2e) final result
--------------------

p3c:p3a24/p3b24;

p3c1:p3c*q*x;

p3c2:lhs(p3c1)-rhs(p3c1)=0;

example 2:given :  z=f(x^2+y^2), find : pde

p4a1:z=f(x^2+y^2);

1e)  step differentation  x and y
------------------------------------------

m2:x^2+y^2;

a) : differentation:  x 
---------------------------
use :p3a22

p4a2:p3a22;

p4a21:'diff(f,x)=diff(m2,x);

p4a22:subst([p4a21],p4a2);

b) : differentation:  3
---------------------------
use :p3b22

p4b2:p3b22;

p4b21:'diff(f,y)=diff(m2,y);

p4b22:subst([p4b21],p4b2);

2e) final result
--------------------

p4c:p4a22/p4b22;

p4c1:p4c*q*y;

use : chain rule needed for : arbitrary functions.