To input PDE systems conveniently, avoiding redundant typing, and to display these systems compactly, without redundancies, use diff_table and declare
>
|
|
| (1) |
>
|
|
>
|
|
| (2) |
Consider now the PDE system
>
|
|
| (3) |
Reduce it using:
>
|
|
| (4) |
>
|
|
| (5) |
In some cases, as this example above, the same result can be obtained using dsubs in a less expensive computational way.
>
|
|
| (6) |
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)
>
|
|
| (7) |
A more involved example where, by construction, the reduced form is zero; use declare to display the equations compactly, without redundancies
>
|
|
| (8) |
>
|
|
>
|
|
| (9) |
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 of the same equation
>
|
|
| (10) |
By construction, thus, PDESYS_1 is completely reduced by PDESYS_2
>
|
|
| (11) |
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:
>
|
|
| (12) |
>
|
|
| (13) |
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)
>
|
|
| (14) |
>
|
|
| (15) |
Because the systems are inconsistent with each other, this value of y(x) solves neither ode[1] nor ode[2]:
>
|
|
| (16) |
So calling ReducedForm you would obtain the reduction obtained above using dsubs, which is of no use generally speaking.
>
|
|
| (17) |
>
|
|
| (18) |
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.
>
|
|
| (19) |
Set first and as suffixes for variables of type/anticommutative (see Setup)
>
|
|
| (20) |
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
>
|
|
| (21) |
>
|
|
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
>
|
|
| (22) |
>
|
|
| (23) |
By inspection, it is clear that pde[1] is reducible by pde[2]
>
|
|
| (24) |
One way of solving this PDE system is then to start solving this reduced equation
>
|
|
| (25) |
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.