PDEtools - Maple Programming Help

Home : Support : Online Help : Mathematics : Differential Equations : PDEtools : PDEtools/diff_table

PDEtools

 diff_table
 set up a convenient representation for a function or expression and its derivatives

 Calling Sequence diff_table(expr)

Parameters

 expr - any valid Maple expression of type algebraic, typically an unknown function - say u(t)

Description

 • The diff_table command is basically the inverse facility of PDEtools[declare]: it permits entering (input) expressions and their derivatives using compact mathematical notation without using macros or aliases. The notation implemented by diff_table is the jet notation also used by the DifferentialAlgebra package and represents a remarkable saving in redundant typing on input. diff_table also works with anticommutative variables set using the Physics package.

Examples

 > with(PDEtools, diff_table):

Let U and V be the "differentiation tables" of $u\left(x,y,t\right)$ and $v\left(x,y,t\right)$, that is, handy representations for these objects and their derivatives.

 > U := diff_table(u(x,y,t)):
 > V := diff_table(v(x,y,t)):

You can now input the functions $u\left(x,y,t\right)$ or $v\left(x,y,t\right)$ or any of its partial derivatives using mathematical notation directly, resulting in the expected expression on output.

 > e1 := U[y,t] + V[x,x] + U[x]*U[y] + U[]*U[x,y];
 ${\mathrm{e1}}{≔}{u}{}\left({x}{,}{y}{,}{t}\right){}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){+}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{t}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{v}{}\left({x}{,}{y}{,}{t}\right)$ (1)

diff_table can be used simultaneously with PDEtools[declare] so that both input and output are simplified while the actual contents of the expressions generated is the standard expected one. For example, calling declare with $u\left(x,y,t\right),v\left(x,y,t\right)$,

 > PDEtools[declare](u(x,y,t), v(x,y,t));
 ${u}{}\left({x}{,}{y}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{u}$
 ${v}{}\left({x}{,}{y}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{v}$ (2)

the output corresponding to input entered using $V,U$ is displayed using the same mathematical notation

 > e2 := V[t] + U[x] + U[x,x,y] + U[x]*V[] + U[]*V[x];
 ${\mathrm{e2}}{≔}{u}{}{{v}}_{{x}}{+}{{u}}_{{x}}{}{v}{+}{{u}}_{{x}}{+}{{u}}_{{x}{,}{x}{,}{y}}{+}{{v}}_{{t}}$ (3)

The actual contents of this expression is the expected one. (See lprint and show.)

 > lprint( (3) );
 u(x,y,t)*diff(v(x,y,t),x)+diff(u(x,y,t),x)*v(x,y,t)+diff(u(x,y,t),x)+diff(diff(diff(u(x,y,t),x),x),y)+diff(v(x,y,t),t)
 > show;
 ${u}{}\left({x}{,}{y}{,}{t}\right){}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{v}{}\left({x}{,}{y}{,}{t}\right)\right){+}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){}{v}{}\left({x}{,}{y}{,}{t}\right){+}\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right){+}\frac{{{\partial }}^{{3}}}{{\partial }{y}{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right){+}\frac{{\partial }}{{\partial }{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{v}{}\left({x}{,}{y}{,}{t}\right)$ (4)