with(PDEtools): with(plots):diffusion:=diff(u(t,x),t)=2*diff(u(t,x),x,x);
pdsolve(diffusion, u(t,x));
pdsolve(diffusion, u(t,x), HINT=X(x)*T(t));
pdsolve(diffusion, u(t,x), HINT=X(x)*T(t), 'build');
PDE1:=diff(u(t,x),t)+2*diff(u(t,x),x)=-3*u(t,x);
pdsolve(PDE1, u(t,x));
IBC1:={u(0,x)=sin(Pi*x)}; pdsolve(PDE1, IBC1, u(t,x));
IBC2:={u(0,x)=sin(Pi*x), u(t,0)=1}; pds:=pdsolve(PDE1, IBC2, u(t,x), time=t, range=0..1, numeric, spacestep=1/40);
pds:-animate(t=0..0.2,frames=100);
animate(exp(-3*t)/(1+(x-2*t)^2), x=0..1, t=0..0.2,frames=100);
PDE2:=diff(u(t,x),t)+diff(u(t,x),x)=(u(t,x))^2;
JSFH
pdsolve(PDE2, u(t,x));
animate(sin(x-t)/(1-t*sin(x-t)), x=0..Pi, t=0..0.5,frames=100);
plot3d(sin(x-t)/(1-t*sin(x-t)), x=0..Pi, t=0..0.9, grid=[50,100], axes=boxed);
JSFH
fisher:=diff(u(t,x),t)=diff(u(t,x),x,x)+5*u(t,x)*(1-u(t,x));
IBC:={u(0,x)=sin(Pi*x), u(t,1)=0, u(t,0)=0};
pds1:=pdsolve(fisher, IBC, u(t,x), numeric, spacestep=1/40);
pds1:-animate(t=0..0.2,frames=100);
IBC3:={u(0,x)=sin(Pi*x), diff(u(t,0),x)-u(t,0)=0, diff(u(t,1),x)+u(t,1)=0};
pds2:=pdsolve(fisher, IBC, u(t,x), numeric, spacestep=1/40);
pds2:-animate(t=0..0.2,frames=100);
JSFH