To input PDE systems conveniently, avoiding redundant typing, and to display these systems compactly, without redundancies, use diff_table and declare
Consider now the PDE system
Reduce it using:
In some cases, as this example above, the same result can be obtained using dsubs in a less expensive computational way.
Note that the reduced forms returned by dsubs and ReducedForm do not include the reducing equation pde[2]. Consider the difference between these reductions and a casesplitting of the system conformed by both pde[1] and pde[2]: the output may be similar and may include pde[2] (or its differential consequences)
A more involved example where, by construction, the reduced form is zero; use declare to display the equations compactly, without redundancies
Construct now PDESYS_1 as a (possibly nonlinear) combination of lists constructed using PDESYS_2, for instance the derivative with respect to x of the square of each equation in PDESYS_2 minus the derivative with respect to y of the same equation
By construction, thus, PDESYS_1 is completely reduced by PDESYS_2
Consider two systems that are inconsistent with each other, that is: the solutions of one system can never be solutions of the other one, for example:
You can directly test the consistency of two equations using casesplit
Warning: System is inconsistent
| |
Nevertheless, if you substitute in ode[1] the value of y' from ode[2] you obtain an expression involving y(x)
Because the systems are inconsistent with each other, this value of y(x) solves neither ode[1] nor ode[2]:
So calling ReducedForm you would obtain the reduction obtained above using dsubs, which is of no use generally speaking.
The optional argument checkconsistency is of use in these situations, enforcing a check for consistency between the two systems, and when the systems are not consistent an error is returned
ReducedForm also works with anticommutative variables, using the approach explained in PerformOnAnticommutativeSystem.
Set first and as suffixes for variables of type/anticommutative (see Setup)
A PDE system example with one unknown anticommutative function of four variables, two commutative and two anticommutative; to avoid redundant typing in the input that follows and redundant display of information on the screen, use PDEtools:-declare, and PDEtools:-diff_table, that also handles anticommutative variables by automatically using Physics:-diff when Physics is loaded
Now we can enter derivatives directly as the function's name indexed by the differentiation variables and see the display the same way; two PDEs
By inspection, it is clear that pde[1] is reducible by pde[2]
One way of solving this PDE system is then to start solving this reduced equation
Substituting this result for back into pde[2], then multiplying by and subtracting from the above gives the PDE system solution, that in this case can also be obtained passing the whole system directly to pdsolve.