restart; read("Jets.s"); SUtKRVRTfk5ld35DQ35mb3J+TWFwbGV+MTN+YXN+b2Z+MDV+T2N0fjIwMTBHNiI= `Blimit = 25000 ressize = 1000 putsize = 200 maxsize = 100`
<Text-field style="Heading 1" layout="Heading 1">Variables</Text-field> coordinates([t,x], [u], 5); NjZJJXVfNXRHNiJJJ3VfNHRfeEdGJEkodV90dHR4eEdGJEkodV90dHh4eEdGJEkndV90XzR4R0YkSSV1XzV4R0YkSSV1XzR0R0YkSSd1X3R0dHhHRiRJJ3VfdHR4eEdGJEkndV90eHh4R0YkSSV1XzR4R0YkSSZ1X3R0dEdGJEkmdV90dHhHRiRJJnVfdHh4R0YkSSZ1X3h4eEdGJEkldV90dEdGJEkldV90eEdGJEkldV94eEdGJEkkdV90R0YkSSR1X3hHRiQ= jet(u,t); SSR1X3RHNiI= jet(u,x^3*t); SSd1X3R4eHhHNiI= jet(u,x^4*t); SSd1X3RfNHhHNiI= jet(u,x^7); LUkkamV0RzYiNiRJInVHRiQqJEkieEdGJCIiKA== jet(u,x*t)-jet(u,t*x); IiIh u_xt-u_tx; LCZJJXVfeHRHNiIiIiJJJXVfdHhHRiQhIiI= seq(jet(u,x^i), i=1..5); NidJJHVfeEc2IkkldV94eEdGJEkmdV94eHhHRiRJJXVfNHhHRiRJJXVfNXhHRiQ=
<Text-field style="Heading 1" layout="Heading 1">Total and partial derivatives</Text-field>
<Text-field style="Heading 2" layout="Heading 2">Total derivatives: <Font foreground="[255,0,0]">TD</Font></Text-field> TD(f,x), TD(f,x^3*t); NiQtSSNUREc2IjYkSSJmR0YlSSJ4R0YlLUYkNiRGJyomSSJ0R0YlIiIiRigiIiQ= Total derivatives TD are true di\357\254\200erentiations and accept any algebraic expression as the \357\254\201rst argument. They are linear, and satisfy the Leibniz rule as well as the chain rule: TD(f + g, x); TD(f*g, x); TD(sin(f), x); LCYtSSNUREc2IjYkSSJmR0YlSSJ4R0YlIiIiLUYkNiRJImdHRiVGKEYp LCYqJi1JI1RERzYiNiRJImZHRiZJInhHRiYiIiJJImdHRiZGKkYqKiZGKEYqLUYlNiRGK0YpRipGKg== KiYtSSRjb3NHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2I0kiZkdGKCIiIi1JI1RER0YoNiRGKkkieEdGKEYr Jets does not automatically evaluate total derivatives of functions, the evaluation of total derivatives can be forced: dependence(f(t,x,u,u_x)); L0kiZkc2IjwmSSJ0R0YkSSJ1R0YkSSJ4R0YkSSR1X3hHRiQ= TD(f,x); LUkjVERHNiI2JEkiZkdGJEkieEdGJA== evalTD(TD(f,x)); LCgqJi1JI3BkRzYiNiRJImZHRiZJInVHRiYiIiJJJHVfeEdGJkYqRiotRiU2JEYoSSJ4R0YmRioqJi1GJTYkRihGK0YqSSV1X3h4R0YmRipGKg==
<Text-field style="Heading 2" layout="Heading 2">Partial derivatives: <Font foreground="[255,0,0]">pd</Font></Text-field> pd(g,x*u_x^2); LUkjcGRHNiI2JEkiZ0dGJComSSJ4R0YkIiIiSSR1X3hHRiQiIiM=
<Text-field style="Heading 2" layout="Heading 2">Partial derivatives of total derivatives</Text-field> pd(TD(f,x),u_xx); LUkjcGRHNiI2JEkiZkdGJEkkdV94R0Yk pd(TD(f,x),u_x); LCYtSSNUREc2IjYkLUkjcGRHRiU2JEkiZkdGJUkkdV94R0YlSSJ4R0YlIiIiLUYoNiRGKkkidUdGJUYt pd(TD(f,x^2),u_xx); LCYtSSNUREc2IjYkLUkjcGRHRiU2JEkiZkdGJUkkdV94R0YlSSJ4R0YlIiIjLUYoNiRGKkkidUdGJSIiIg==
<Text-field style="Heading 1" layout="Heading 1">Conversions</Text-field>
<Text-field style="Heading 2" layout="Heading 2">TD</Text-field> Let us verify that a := 2*k*(sech((k)^(1/2)*(x + 4*k*t)))^2; LCQqJkkia0c2IiIiIi1JJXNlY2hHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHRiU2IyomRiQjRiYiIiMsJkkieEdGJUYmKiZGJEYmSSJ0R0YlRiYiIiVGJkYvRi8= is a solution of the KdV equation KdV := -u_t + u_xxx + 6*u*u_x; LChJJHVfdEc2IiEiIkkmdV94eHhHRiQiIiIqJkkidUdGJEYnSSR1X3hHRiRGJyIiJw== subs(u = a, KdV); LCgtSSRqZXRHNiI2JCwkKiZJImtHRiUiIiItSSVzZWNoRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiMqJkYpI0YqIiIjLCZJInhHRiVGKiomRilGKkkidEdGJUYqIiIlRipGM0YzRjchIiItRiQ2JEYnKiRGNSIiJEYqKihGKUYqRitGMy1GJDYkRidGNUYqIiM3 dependence(k()); NiQvSSJmRzYiPCZJInRHRiVJInVHRiVJInhHRiVJJHVfeEdGJS9JImtHRiU8Ig== subs(u = a, KdV); LCgtSSRqZXRHNiI2JCwkKiZJImtHRiUiIiItSSVzZWNoRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiMqJkYpI0YqIiIjLCZJInhHRiVGKiomRilGKkkidEdGJUYqIiIlRipGM0YzRjchIiItRiQ2JEYnKiRGNSIiJEYqKihGKUYqRitGMy1GJDYkRidGNUYqIiM3 Problem: The procedure jet requires its \357\254\201rst argument to be a \357\254\201bre variable! Solution: The procedure convert(expression, TD )e\357\254\200ectively replaces u with a, jet(u,x) with TD(a,x), etc: convert(KdV, TD, u = a); LCwqKkkia0c2IiMiIiYiIiMtSSVzZWNoRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliR0YlNiMqJkYkIyIiIkYoLCZJInhHRiVGMSomRiRGMUkidEdGJUYxIiIlRjFGMS1JJXNpbmhHRitGLkYxLUklY29zaEdGK0YuISIjIiNPKihGN0YxRjkhIiRGJEYmIiM3KihGNyIiJEYkRiZGOSEiJiEjQyoqRilGMUY3RkFGJEYmRjkhIiVGQyoqRiRGJkYpRkFGN0YxRjlGOyEjWw== simpl(%); LCQqKi1JJXNpbmhHNiQlKnByb3RlY3RlZEdJKF9zeXNsaWJHNiI2IyomSSJrR0YpIyIiIiIiIywmSSJ4R0YpRi4qJkYsRi5JInRHRilGLiIiJUYuRi5GLCMiIiZGLywsKiYtSSVzZWNoR0YmRipGLi1JJWNvc2hHRiZGKiIiJCEiJCokRjtGLyEiIiokRiRGL0YvKihGOUYuRiRGL0Y7Ri5GLyomRjlGPUY7Rj1GNEYuRjshIiYhIzc= simplify(%); IiIh
<Text-field style="Heading 2" layout="Heading 2">pd</Text-field> E := evalTD(TD(f,x)); F := convert(E, diff, u_x=u1, u_xx=u2); lprint(F); pdsolve(F); The additional arguments indicate a substitution to be applied to jet variables (recall that jet variables are unevaluated function calls while diff requires the indeterminates to be names). G := convert(E, diff); lprint(G); pdsolve(G); lprint(convert(E, diff)); Diff(a,u_x,u_x,u_xx) - pd(a, u_x^2*u_xx);