# Items tagged with differentialdifferential Tagged Items Feed

### PDE solutions: when are they "general"?...

June 27 2016 Maple
2
0

Hi,
The latest update to the differential equations Maple libraries (this week, can be downloaded from the Maplesoft R&D webpage for Differential Equations and Mathematical functions) includes new functionality in pdsolve, regarding whether the solution for a PDE or PDE system is or not a general solution.

In brief, a general solution of a PDE in 1 unknown, that has differential order N, and where the unknown depends on M independent variables, involves N arbitrary functions of M-1 arguments. It is not entirely evident how to extend this definition in the case of a coupled, possibly nonlinear PDE system. However, using differential algebra techniques (automatically used by pdsolve when tackling a PDE system), that extension to define a general solution for a DE system is possible, and also when the system involves ODEs and PDEs, and/or algebraic (that is, non-differential) equations, and/or inequations of the form  involving the unknowns, and all of this in the presence of mathematical functions (based on the use of Maple's PDEtools:-dpolyform). This is a very nice case were many different advanced developments come together to naturally solve a problem that otherwise would be rather difficult.

The issues at the center of this Maple development/post are then:

a) How do you know whether a PDE or PDE system solution returned is a general solution?

b) How could you indicate to pdsolve that you are only interested in a general PDE or PDE system solution?

The answer to a) is now always present in the last line of the userinfo. So input infolevel[pdsolve] := 3 before calling pdsolve, and check what the last line of the userinfo displayed tells.

The answer to b) is a new option, generalsolution, implemented in pdsolve so that it either returns a general solution or otherwise it returns NULL. If you do not use this new option, then pdsolve works as always: first it tries to compute a general solution and if it fails in doing that it tries to compute a particular solution by separating the variables in different ways, or computing a traveling wave solution or etc. (a number of other well known methods).

The examples that follow are from the help page pdsolve,system, and show both the new userinfo telling whether the solution returned is a general one and the option generalsolution at work.The examples are all of differential equation systems but the same userinfos and generalsolution option work as well in the case of a single PDE.

Example 1.

Solve the determining PDE system for the infinitesimals of the symmetry generator of example 11 from Kamke's book . Tell whether the solution computed is or not a general solution.

 >
 (1.1)

The PDE system satisfied by the symmetries of Kamke's ODE example number 11 is

 >

This is a second order linear PDE system, with two unknowns  and four equations. Its general solution is given by the following, where we now can tell that the solution is a general one by reading the last line of the userinfo. Note that because the system is overdetermined, a general solution in this case does not involve any arbitrary function

 >
 -> Solving ordering for the dependent variables of the PDE system: [xi(x,y), eta(x,y)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, y] tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) <- Returning a *general* solution
 (1.2)

Next we indicate to pdsolve that  and  are parameters of the problem, and that we want a solution for , making more difficult to identify by eye whether the solution returned is or not a general one. Again the last line of the userinfo tells that pdsolve's solution is indeed a general one

 >
 (1.3)
 >
 -> Solving ordering for the dependent variables of the PDE system: [r, n, xi(x,y), eta(x,y)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, y] tackling triangularized subsystem with respect to r tackling triangularized subsystem with respect to n tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) tackling triangularized subsystem with respect to r tackling triangularized subsystem with respect to n tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) tackling triangularized subsystem with respect to r tackling triangularized subsystem with respect to n tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) tackling triangularized subsystem with respect to n tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) tackling triangularized subsystem with respect to n tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) tackling triangularized subsystem with respect to xi(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to eta(x,y) <- Returning a *general* solution
 (1.4)
 >
 (1.5)

Example 2.

Compute the solution of the following (linear) overdetermined system involving two PDEs, three unknown functions, one of which depends on 2 variables and the other two depend on only 1 variable.

 >

The solution for the unknowns G, H, is given by the following expression, were again determining whether this solution, that depends on 3 arbitrary functions, , is or not a general solution, is non-obvious.

 >
 -> Solving ordering for the dependent variables of the PDE system: [F(r,s), H(r), G(s)] -> Solving ordering for the independent variables (can be changed using the ivars option): [r, s] tackling triangularized subsystem with respect to F(r,s) First set of solution methods (general or quasi general solution) Trying differential factorization for linear PDEs ... differential factorization successful. First set of solution methods successful tackling triangularized subsystem with respect to H(r) tackling triangularized subsystem with respect to G(s) <- Returning a *general* solution
 (1.6)
 >
 (1.7)

Example 3.

Compute the solution of the following nonlinear system, consisting of Burger's equation and a possible potential.

 >

We see that in this case the solution returned is not a general solution but two particular ones; again the information is in the last line of the userinfo displayed

 >
 -> Solving ordering for the dependent variables of the PDE system: [v(x,t), u(x,t)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, t] tackling triangularized subsystem with respect to v(x,t) tackling triangularized subsystem with respect to u(x,t) First set of solution methods (general or quasi general solution) Second set of solution methods (complete solutions) Trying methods for second order PDEs Third set of solution methods (simple HINTs for separating variables) PDE linear in highest derivatives - trying a separation of variables by * HINT = * Fourth set of solution methods Trying methods for second order linear PDEs Preparing a solution HINT ... Trying HINT = _F1(x)*_F2(t) Fourth set of solution methods Preparing a solution HINT ... Trying HINT = _F1(x)+_F2(t) Trying travelling wave solutions as power series in tanh ... * Using tau = tanh(t*C[2]+x*C[1]+C[0]) * Equivalent ODE system: {C[1]^2*(tau^2-1)^2*diff(diff(u(tau),tau),tau)+(2*C[1]^2*(tau^2-1)*tau+2*u(tau)*C[1]*(tau^2-1)+C[2]*(tau^2-1))*diff(u(tau),tau)} * Ordering for functions: [u(tau)] * Cases for the upper bounds: [[n[1] = 1]] * Power series solution [1]: {u(tau) = tau*A[1,1]+A[1,0]} * Solution [1] for {A[i, j], C[k]}: [[A[1,1] = 0], [A[1,0] = -1/2*C[2]/C[1], A[1,1] = -C[1]]] travelling wave solutions successful. tackling triangularized subsystem with respect to v(x,t) First set of solution methods (general or quasi general solution) Trying differential factorization for linear PDEs ... Trying methods for PDEs "missing the dependent variable" ... Second set of solution methods (complete solutions) Trying methods for second order PDEs Third set of solution methods (simple HINTs for separating variables) PDE linear in highest derivatives - trying a separation of variables by * HINT = * Fourth set of solution methods Trying methods for second order linear PDEs Preparing a solution HINT ... Trying HINT = _F1(x)*_F2(t) Third set of solution methods successful tackling triangularized subsystem with respect to u(x,t) <- Returning a solution that *is not the most general one*
 (1.8)
 >
 (1.9)

This example is also good for illustrating the other related new feature: one can now request to pdsolve to only compute a general solution (it will return NULL if it cannot achieve that). Turn OFF userinfos and try with this example

 >

This returns NULL:

 >

Example 4.

Another where the solution returned is particular, this time for a linear system, conformed by 38 PDEs, also from differential equation symmetry analysis

 >

There are 38 coupled equations

 >
 (1.10)

When requesting a general solution pdsolve returns NULL:

 >

A solution that is not a general one, is however computed by default if calling pdsolve without the generalsolution option. In this case again the last line of the userinfo tells that the solution returned is not a general solution

 >
 (1.11)
 >
 -> Solving ordering for the dependent variables of the PDE system: [eta[1](x,y,z,t,u), xi[1](x,y,z,t,u), xi[2](x,y,z,t,u), xi[3](x,y,z,t,u), xi[4](x,y,z,t,u)] -> Solving ordering for the independent variables (can be changed using the ivars option): [t, x, y, z, u] tackling triangularized subsystem with respect to eta[1](x,y,z,t,u) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F1(x,y,z,t), _F2(x,y,z,t)] -> Solving ordering for the independent variables (can be changed using the ivars option): [t, x, y, z, u] tackling triangularized subsystem with respect to _F1(x,y,z,t) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F3(x,y,z), _F4(x,y,z)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, y, z, t] tackling triangularized subsystem with respect to _F3(x,y,z) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to _F4(x,y,z) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F5(y,z), _F6(y,z)] -> Solving ordering for the independent variables (can be changed using the ivars option): [y, z, x] tackling triangularized subsystem with respect to _F5(y,z) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to _F6(y,z) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F7(z), _F8(z)] -> Solving ordering for the independent variables (can be changed using the ivars option): [z, y] tackling triangularized subsystem with respect to _F7(z) tackling triangularized subsystem with respect to _F8(z) tackling triangularized subsystem with respect to _F2(x,y,z,t) First set of solution methods (general or quasi general solution) Trying differential factorization for linear PDEs ... Trying methods for PDEs "missing the dependent variable" ... Second set of solution methods (complete solutions) Third set of solution methods (simple HINTs for separating variables) PDE linear in highest derivatives - trying a separation of variables by * HINT = * Fourth set of solution methods Preparing a solution HINT ... Trying HINT = _F3(x)*_F4(y)*_F5(z)*_F6(t) Third set of solution methods successful tackling triangularized subsystem with respect to xi[1](x,y,z,t,u) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F1(x,z,t), _F2(x,z,t)] -> Solving ordering for the independent variables (can be changed using the ivars option): [t, x, z, y] tackling triangularized subsystem with respect to _F1(x,z,t) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to _F2(x,z,t) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F3(x,t), _F4(x,t)] -> Solving ordering for the independent variables (can be changed using the ivars option): [t, x, z] tackling triangularized subsystem with respect to _F3(x,t) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to _F4(x,t) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F5(x), _F6(x)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, t] tackling triangularized subsystem with respect to _F5(x) tackling triangularized subsystem with respect to _F6(x) tackling triangularized subsystem with respect to xi[2](x,y,z,t,u) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful -> Solving ordering for the dependent variables of the PDE system: [_F1(t), _F2(t)] -> Solving ordering for the independent variables (can be changed using the ivars option): [t, z] tackling triangularized subsystem with respect to _F1(t) tackling triangularized subsystem with respect to _F2(t) tackling triangularized subsystem with respect to xi[3](x,y,z,t,u) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful tackling triangularized subsystem with respect to xi[4](x,y,z,t,u) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. First set of solution methods successful <- Returning a solution that *is not the most general one*
 (1.12)
 >
 (1.13)

Example 5.

Finally, the new userinfos also tell whether a solution is or not a general solution when working with PDEs that involve anticommutative variables  set using the Physics  package

 >
 (1.14)

Set first  and  as suffixes for variables of type/anticommutative  (see Setup )

 >
 (1.15)

A PDE system example with two unknown anticommutative functions 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 let's use PDEtools:-diff_table   PDEtools:-declare

 >
 (1.16)
 >
 (1.17)

Consider the system formed by these two PDEs (because of the q diff_table just defined, we can enter derivatives directly using the function's name indexed by the differentiation variables)

 >
 (1.18)
 >
 (1.19)

The solution returned for this system is indeed a general solution

 >
 -> Solving ordering for the dependent variables of the PDE system: [_F4(x,y), _F2(x,y), _F3(x,y)] -> Solving ordering for the independent variables (can be changed using the ivars option): [x, y] tackling triangularized subsystem with respect to _F4(x,y) tackling triangularized subsystem with respect to _F2(x,y) tackling triangularized subsystem with respect to _F3(x,y) First set of solution methods (general or quasi general solution) Trying simple case of a single derivative. HINT = _F6(x)+_F5(y) Trying HINT = _F6(x)+_F5(y) HINT is successful First set of solution methods successful <- Returning a *general* solution
 (1.20)
 >

This solution involves an anticommutative constant , analogous to the commutative constants  where n is an integer.

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

### How can I apply this differential in Maple?...

June 19 2016
0 1

hi

how i can apply this differential in maple?

thabks...

### Fractional differential equation...

June 03 2016
1 5

Hi!

I am simulate the code for fractional differential equation. But the out put is not wright...
sir_(2).mw

 >
 (1)
 >
 (2)
 >
 (3)
 >
 (4)
 >
 (5)
 >
 (6)
 >
 (7)
 >
 (8)
 >
 >
 >
 (9)
 >

### Problem with differential operator...

April 27 2016
0 11

hi.please see attached file below and help me.one problem is apply differential operator on matrix and then caclute 3D integral?

maple2.mw

 (1)

 (2)

 (3)

 (4)

 (5)

 (6)

 (7)

 (8)

 (9)

### Optimal Lie Algebra? ...

March 14 2016
0 3

Dear All

Is there anybody who is working on contruction of optimal Lie algebra using Maple packages like DifferentialGeometry and LieAlgebra, I tried to find commands for constructing algebra in these packages but could not find such commands. I am sure these are only package that might help me. Following is Lie algebra whose optimal system is required:

 >
 >
 (1)
 >
 (2)
 >

 >
 (2)

Regards

### Collect wrt to fraction...

February 29 2016
1 3

Dear All

How can we collect coefficient wrt certain differential ration in an expression?

See for detail:

 >
 >
 (1)
 >
 (2)
 >
 (3)

How ca extract coefficients of fraction  in (3) ????

Regards

### Characteristic polynomial from solution...

February 28 2016
0 1

solution of system of differential equations

is {a(t) = 1, b(t) = exp(t), c(t) = 0}

1 = exp(t), since t = 0, is characteristic equation = (y-0)?
0 = exp(t), how to find this characteristic equation when division is zero?
exp(t) = exp(t), is characteristic equation = (y-t)?

### Collecting coefficients in differential expression...

February 17 2016
0 0

Dear all

I have problem related to collection of coefficient of differtials in differential expression containing multiple dependent variables and we want to collect coefficient wrt to selected dependent variables. Please see attached Maple file for details.

 >
 >
 (1)
 >
 (2)

Suppose we differential expression like:

 >
 (3)

We can collect coefficients of differential like in following manner:

 The Procedure

Now how can we collect coefficents with respect to so that differential expression (3) appear as

 >

Regards

### Coefficients in differential expression...

January 19 2016
0 3

Dear Friends

In differential expressions(See Maple file) how to find coefficiets of dependent variable "u(x,t)" and "v(x,t)" and of their differentials ? There is command "dcoeffs(function)", but that work for single dependent variable only but in our case there are two dependent variables in consideration. There are other options like "indets", "specindex" but those do not work.

 >
 >
 (1)
 >
 (2)
 >
 (3)

In above differential expressions how to find coefficiets of dependent variable "u(x,t)" and "v(x,t)" and of their differentials ? There is command "dcoeffs(expr,u(x,t))", but that work for single dependent variable only but in our case there are two dependent variables in consideration. There are other options like "indets", "specindex" but those do not work.

 >

### What is short form of derivative? ...

December 08 2015
0 2

mydoubt-to-mapleprime.mw
an any one help me understand and correct the following errors in maple document. Thanks.

Ramakrishnan V

rukmini_ramki@hotmail.com

### Coefficients of differential polynomial...

November 27 2015
2 9

Hello everyone,

I am trying to extract the coefficients from a differential poynomial. In general, this poynomial is in two variables, say u and v along with their differentials, i.e D(u) or D@@2(u) or so on.

Coefficients of this polynomials are rational funcitons.

For instance- consider the following example:

a(x)*v*u+v*D(u)-D(v)*u

then output should be [a(x), 1, -1].

### Solve and plot differential equations...

October 09 2015
0 5

I want to solve these two differential equations. I have the initial conditions:
x(0)=0
y(0)=0
x'(0)=5.7
t'(0)=8.1
What am I doing wrong?

### New: Factorizing with non-commutative variables...

September 25 2015
7
0

One of the interesting things about the Physics package is that it was designed from scratch to extend the domain of operations of the Maple system from commutative variables to one that includes commutative, anticommutative and nonocommutative variables, as well as abstract vectors and related (nabla) differential operators. In this line we have, among others, the following Physics commands working with this extended domain: `*` , `.` , `^` , diff , Expand , Normal , Simplify , Gtaylor , and Coefficients .

More recently, Pascal Szriftgiser (from Laboratoire PhLAM, Université Lille 1, France), suggested a similar approach to factorize expressions involving noncommutative variables. This is a pretty complicated problem though. Pascal's suggestion, however, spinned around an idea beautiful for its simplicity, similar to what is done in the experimental Physics command, PerformOnAnticommutativeSystem , that is, to transform the problem into one that can be treated with the command that works only with commutative variables and from there extract the result for noncommutative ones.The approach has limitations but it is surprising how far one can go using imaginative algebraic manipulations to extend these commands that otherwise only work with commutative variables.

In brief, we now have a new command, Physics:-Factor, with already powerful performance for factorizing algebraic expressions that involve commutative, noncommutative and anticommutative variables, making Maple's mathematical capabilities more advanced in very interesting directions. This command is in fact useful not just in advanced theoretical physics, but for instance also when working with noncommutative symbols representing abstract matrices (that can have dependency, and so they can be differentiated before saying anything about their components, multiplied, and be present int  expressions that in turn can be expanded, simplified and now also factorized), and also useful with expressions that include differential operators, now that within Physics you can compute with the the covariant and noncovariant derivatives D_  and d_ algebraically. For instance, how about solving differential equations using Physics:-Factor (reducing their order by means of factoring the involved differential operators) ? :)

What follows are some basic algebraic examples illustrating the novelty, and as usual to reproduce the results in this worksheet you need to update your Physics library with the one available in the Maplesoft R&D Physics webpage.

 >
 (1)
 >
 (2)

First example, because of using mathematical notation, noncommutative variables are displayed in different color (olive)

 >
 (3)
 >
 (4)

A more involved example from a physics problem, illustrating that the factorization is also happening within function's arguments, as well as that we can also correctly expand mathematical expressions involving noncommutative variables

 >
 (5)
 >
 (6)

So first expand ...

 >
 (7)

Now retrieve the original expression by recursing over the arguments and so factoring the integrand

 >
 (8)

This following one looks simpler but it is actually more complicated:

 >
 (9)
 >
 (10)

The complication consists of the fact that the standard factor  command, that assumes products are commutative, can never deal with factors like  because if products were commutative these factors are equal to 0. Of course we not just us factor but include a number of algebraic manipulations before using it, so that the approach handles these cases nicely anyway

 >
 (11)

This other one is more complicated:

 >
 (12)

When you expand,

 >
 (13)

you see that there are various terms involving the same noncommutative operands, just multiplied in different order. Generally speaking the limitation (n this moment) of the approach is: "there cannot be more than 2 terms in the expanded form containing the same operands" . For instance in (13) the 1st and 4th terms have the same operands, that are actually also present in the 5th term but there you also have  and for that reason (involving some additional manipulations) it can be handled:

 >
 (14)

Recalling, in all these examples, the task is actually accomplished by the standard factor  command, and the manipulations consist of ingeniously rewriting the given problem as one that involves only commutative variables, and from extract the correct result for non commutative variables.

To conclude, here is an example where the approach implemented does not work (yet) because of the limitation mentioned in the previous paragraph:

 >
 (15)
 >
 (16)

In this expression, the 1st, 2nd, 4th and 5th terms have the same operands  and then there are four terms containing the operands . We do have an idea of how this could be done too ... :) To be there in one of the next Physics updates.

 >

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft

### How to solve this BVP problem?...

September 14 2015
4 10

Hi everyone,

I'm kinda new here, and I really hope you guys can help me through this.

I'm doing a term project and I need to solve this differential equation. I tried to make it work, but since I'm new with maple I couldn't get to any result. So I really appreciate if you can help me solve the problem, since I am eally stuck here and all other results sort of depend on this equation.

here is the equation:

diff(y(x), x, x) = -(8*omega*(1-exp(-8*x))*exp(-8*x)/(2*x^2)-pi^2/(32*x))*y(x)

with following boundary conditions:

y(0)=0,

y(1/2)=0 ,

y'(0)=1.

thanks again.

### PDEs and Boundary Conditions - new developments...

September 03 2015 Maple
7
1

The PDE & BC project , a very nice and challenging one, also one where Maple is pioneer in all computer algebra systems, has restarted, including now also the collaboration of Katherina von Bülow.

Recapping, the PDE & BC project started 5 years ago implementing some of the basic methods found in textbooks to match arbitrary functions and constants to given PDE boundary conditions of different kinds. At this point we aim to fill gaps, and the first one we tackled is the case of 1st order PDE that can be solved without boundary conditions in terms of an arbitrary function, and where a single boundary condition (BC) is given for the PDE unknown function, and this BC does not depend on the independent variables of the problem. It looks simple ... It can be rather tricky though. The method we implemented is a simple however ingenious use of differential invariants  to match the boundary condition.

The resulting new code, the portion already tested, is available for download in the Maplesoft R&D webpage for Differential Equations and Mathematical Functions (the development itself is bundled within the library that contains the new developments for the Physics package, in turn within the zip linked in the webpage).

The examples that can now be handled, although restricted in generality to "only one 1st order linear or nonlinear PDE and only one boundary condition for the unknown function itself", illustrate well how powerful it can be to use more advanced methods to tackle these tricky situations where we need to match an arbitrary function to a boundary condition.

To illustrate the idea, consider first a linear example, among the simplest one could imagine:

 >
 (1)
 >
 (2)

Input now a boundary condition (bc) for the unknown such that this bc does not depend on the independent variables ; this bc can however depend on arbitrary symbolic parameters, for instance

 >
 (3)

With the recent development, this kind of problem can now be solved in one go:

 >
 (4)

Nice! And how do you verify this result for correctness? With pdetest , which actually also tests the solution against the boundary conditions:

 >
 (5)

And what has been done to obtain the solution (4)? First the PDE was solved regardless of the boundary condition, so in general, obtaining:

 >
 (6)

In a second step, the arbitrary function  got determined such that the boundary condition  is matched. Concretely, the mapping _F1 is what got determined. You can see this mapping reversing the solving process in two steps. Start taking the difference between the general solution (6) and the solution (4) that matches the boundary condition

 >
 (7)

and isolate here

 >
 (8)

So this is the value  that got determined. To see now the actual solving mapping _F1, that takes for arguments  and  and returns the right-hand side of (8), one can perform a change of variables introducing the two parameters  and  of the _F1 mapping:

 >
 (9)
 >
 (10)
 >
 (11)

So the solving mapping _F1 is

 >
 (12)

Wow! Although this pde & bc problem really look very simple, this solution (12) is highly non-obvious, as is the way to get it just from the boundary condition  and the solution (6) too. Let's first verify that this mapping is correct (even when we know, by construction, that it is correct). For that, apply (12) to the arguments of the arbitrary function and we should obtain (8)

 >
 (13)

Indeed this is equal to (8)

 >
 (14)

Skipping the technical details, the key observation to compute a solving mapping is that, given a 1st order PDE where the unknown depends on  independent variables, if the boundary condition depends on  arbitrary symbolic parameters , one can always seek a "relationship between these parameters and the differential invariants that enter as arguments in the arbitrary function _F1 of the solution", and get the form of the mapping _F1 from this relationship and the bc. The method works in general. Change for instance the bc (3) making its right-hand side be a sum instead of a product

 >
 (15)
 >
 (16)
 >
 (17)

An interesting case happens when the boundary condition depends on less than  parameters, for instance:

 >
 (18)
 >
 (19)

As we see in this result, the additional difficulty represented by having few parameters got tackled by introducing an arbitrary constant _C1 (this is likely to evolve into something more general...)

 >
 (20)

Finally, consider a nonlinear example

 >
 (21)
 >
 (22)

Here we have 2 independent variables, so for illustration purposes use a boundary condition that depends on only one arbitrary parameter

 >
 (23)

All looks OK, but we still have another problem: check the arbitrary function _F1 entering the general solution of pde when tackled without any boundary condition:

 >
 (24)

Remove this RootOf to see the underlying algebraic expression

 >
 (25)

So this is a pde where the general solution is implicit, actually depending on an arbitrary function of the unknown  The code handles this problem in the same way, just that in cases like this there may be more than one solution. For this very particular bc (23) there are actually three solutions:

 >
 (26)

Verify these three solutions against the pde and the boundary condition

 >
 (27)

:)