kdv := proc(u,v,c)
begin
  e   := exp(c*u - c^3*v);
  f   := 1 + e;
  fx  := c*e;
  fxx := c*fx;
  3*(fxx*f-fx^2)/(f^2):
end_proc:


plot3d(Axes = None, 
       Title = "Soliton of the Korteweg-de Vries Equation",
       TitlePosition = Below,
       [Mode = Surface,
        [u, v, hold(20*kdv(u,v,3/5))],
        u = [-10, 10], v = [-10, 10],
        Grid = [40, 30], Style = [ColorPatches, AndVLine]]);
