Items tagged with general

Feed

I'm back from presenting work in the "23rd Conference on Applications of Computer Algebra -2017" . It was a very interesting event. This fifth presentation, about "The Appell doubly hypergeometric functions", describes a very recent project I've been working at Maple, i.e. the very first complete computational implementation of the Appell doubly hypergeometric functions. This work appeared in Maple 2017. These functions have a tremendous potential in that, at the same time, they have a myriad of properties, and include as particular cases most of the existing mathematical language, and so they have obvious applications in integration, differential equations, and applied mathematics all around. I think these will be the functions of this XXI century, analogously to what happened with hypergeometric functions in the previous century.

At the end, there is a link to the presentation worksheet, with which one could open the sections and reproduce the presentation examples.
 

The four double-hypergeometric Appell functions,

a complete implementation in a computer algebra system

 

Edgardo S. Cheb-Terrab

Physics, Differential Equations and Mathematical Functions, Maplesoft

 

Abstract:
The four multi-parameter Appell functions, AppellF1 , AppellF2 , AppellF3  and AppellF4  are doubly hypergeometric functions that include as particular cases the 2F1 hypergeometric  and some cases of the MeijerG  function, and with them most of the known functions of mathematical physics. Appell functions have been popping up with increasing frequency in applications in quantum mechanics, molecular physics, and general relativity. In this talk, a full implementation of these functions in the Maple computer algebra system, including, for the first time, their numerical evaluation over the whole complex plane, is presented, with details about the symbolic and numerical strategies used.

Appell Functions (symbolic)

 

 

The main references:

• 

P. Appel, J.Kamke de Feriet, "Fonctions hypergeometriques et Hyperspheriques", 1926

• 

H. Srivastava, P.W. Karlsson, "Multiple Gaussian Hypergeometric Series", 1985

• 

24 papers in the literature, ranging from 1882 to 2015

 

Definition and Symmetries

   

Polynomial and Singular Cases

   

Single Power Series with Hypergeometric Coefficients

   

Analytic Extension from the Appell Series to the Appell Functions

   

Euler-Type and Contiguity Identities

   

Appell Differential Equations

   

Putting all together

   

Problem: some formulas in the literature are wrong or miss the conditions indicating when are they valid (exchange with the Mathematics director of the DLMF - NIST)

   

Appell Functions (numeric)

 

 

Goals

 

• 

Compute these Appell functions over the whole complex plane

• 

Considering that this is a research problem, implement different methods and flexible optional arguments to allow for:

a) comparison between methods (both performance and correctness),

b) investigation of a single method in different circumstances.

• 

Develop a computational structure that can be reused with other special functions (abstract code and provide the main options), and that could also be translated to C (so: only one numerical implementation, not 100 special function numerical implementations)

Limitation: the Maple original evalf command does not accept optional arguments

 

The cost of numerically evaluating an Appell function

 

• 

If it is a special hypergeometric case, then between 1 to 2 hypergeometric functions

• 

Next simplest case (series/recurrence below) 3 to 4 hypergeometric functions plus adding somewhat large formulas that involve only arithmetic operations up to 20,000 times (frequently less than 100 times)

• 

Next simplest case: the formulas themselves are power series with hypergeometric function coefficients; these cases frequently converge rapidly but may involve the numerical evaluation of up to hundreds of hypergeometric functions to get the value of a single Appell function.

 

Strategy for the numerical evaluation of Appell functions (or other functions ...)

 

 

The numerical evaluation flows orderly according to:

1) check whether it is a singular case

2) check whether it is a special value

3) compute the value using a series derived from a recurrence related to the underlying ODE

4) perform an sum using an infinite sum formula, checking for convergence

5) perform the numerical integration of the ODE underlying the given Appell function

6) perform a sequence of concatenated Taylor series expansions

Examples

   

Series/recurrence

   

Numerical integration of an underlying differential equation (ODEs and dsolve/numeric)

   

Concatenated Taylor series expansions covering the whole complex plane

   

Subproducts

 

Improvements in the numerical evaluation of hypergeometric functions

   

Evalf: an organized structure to implement the numerical evaluation of special functions in general

   

To be done

   


 

Download Appell_Functions.mw   
Download Appell_Functions.pdf

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

Is there anyone who has seen maple 2017 provide some details about what new features are being introduced. Is there a platform where we can suggest what features we would like to be added or enhanced?

I would like to see the list of metrics recognize by Maple with their acornym.  For example,:

>Setup(coordinates = spherical, metric = kerr)

Hello everybody,

In the linearised theory of gravity, I want to do some symbolic calculations.  First, I need to set that:

Then I want to see how the Christoffel symbols will change by putting the above in this:

Any hint someone?  I really appreciate the help for learning the Physics package.  Thank you in advance.

Mario

 

 

 

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 algebraic*expression <> 0 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.

infolevel[pdsolve] := 3

3

(1.1)

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

sys__1 := [diff(xi(x, y), y, y) = 0, diff(eta(x, y), y, y)-2*(diff(xi(x, y), y, x)) = 0, 3*x^r*y^n*(diff(xi(x, y), y))*a+2*(diff(eta(x, y), y, x))-(diff(xi(x, y), x, x)) = 0, 2*(diff(xi(x, y), x))*x^r*y^n*a-x^r*y^n*(diff(eta(x, y), y))*a+eta(x, y)*a*x^r*y^n*n/y+xi(x, y)*a*x^r*r*y^n/x+diff(eta(x, y), x, x) = 0]

This is a second order linear PDE system, with two unknowns {eta(x, y), xi(x, y)} 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

sol__1 := pdsolve(sys__1)

-> 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

 

{eta(x, y) = -_C1*y*(r+2)/(n-1), xi(x, y) = _C1*x}

(1.2)

Next we indicate to pdsolve that n and r are parameters of the problem, and that we want a solution for n <> 1, 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

`sys__1.1` := [op(sys__1), n <> 1]

[diff(diff(xi(x, y), y), y) = 0, diff(diff(eta(x, y), y), y)-2*(diff(diff(xi(x, y), x), y)) = 0, 3*x^r*y^n*(diff(xi(x, y), y))*a+2*(diff(diff(eta(x, y), x), y))-(diff(diff(xi(x, y), x), x)) = 0, 2*(diff(xi(x, y), x))*x^r*y^n*a-x^r*y^n*(diff(eta(x, y), y))*a+eta(x, y)*a*x^r*y^n*n/y+xi(x, y)*a*x^r*r*y^n/x+diff(diff(eta(x, y), x), x) = 0, n <> 1]

(1.3)

`sol__1.1` := pdsolve(`sys__1.1`, parameters = {n, r})

-> 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

 

{n = 2, r = -5, eta(x, y) = y*(_C1*x+3*_C2), xi(x, y) = x*(_C1*x+_C2)}, {n = 2, r = -20/7, eta(x, y) = -(2/343)*(-6*_C1*x^2-98*x^(8/7)*_C1*a*y-147*_C2*a*x*y)/(x*a), xi(x, y) = _C1*x^(8/7)+_C2*x}, {n = 2, r = -15/7, eta(x, y) = -(1/343)*(-49*_C2*a*x*y-147*x^(6/7)*_C1*a*y+12*_C1*x)/(x*a), xi(x, y) = _C1*x^(6/7)+_C2*x}, {n = 2, r = r, eta(x, y) = -_C1*y*(r+2), xi(x, y) = _C1*x}, {n = -r-3, r = r, eta(x, y) = ((_C1*x+_C2)*r+4*_C1*x+2*_C2)*y/(r+4), xi(x, y) = x*(_C1*x+_C2)}, {n = n, r = r, eta(x, y) = -_C1*y*(r+2)/(n-1), xi(x, y) = _C1*x}

(1.4)

map(pdetest, [`sol__1.1`], `sys__1.1`)

[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

(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.

sys__2 := [-(diff(F(r, s), r, r))+diff(F(r, s), s, s)+diff(H(r), r)+diff(G(s), s)+s = 0, diff(F(r, s), r, r)+2*(diff(F(r, s), r, s))+diff(F(r, s), s, s)-(diff(H(r), r))+diff(G(s), s)-r = 0]

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, _F1(s), _F2(r), _F3(s-r), is or not a general solution, is non-obvious.

sol__2 := pdsolve(sys__2)

-> 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

 

{F(r, s) = _F1(s)+_F2(r)+_F3(s-r)-(1/12)*r^2*(r-3*s), G(s) = -(diff(_F1(s), s))-(1/4)*s^2+_C2, H(r) = diff(_F2(r), r)-(1/4)*r^2+_C1}

(1.6)

pdetest(sol__2, sys__2)

[0, 0]

(1.7)

Example 3.

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

sys__3 := [diff(u(x, t), t)+2*u(x, t)*(diff(u(x, t), x))-(diff(u(x, t), x, x)) = 0, diff(v(x, t), t) = -v(x, t)*(diff(u(x, t), x))+v(x, t)*u(x, t)^2, diff(v(x, t), x) = -u(x, t)*v(x, t)]

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

sol__3 := pdsolve(sys__3, [u, v])

-> 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*

 

{u(x, t) = -_C2*tanh(_C2*x+_C3*t+_C1)-(1/2)*_C3/_C2, v(x, t) = 0}, {u(x, t) = -_c[1]^(1/2)*((exp(_c[1]^(1/2)*x))^2*_C1-_C2)/((exp(_c[1]^(1/2)*x))^2*_C1+_C2), v(x, t) = _C3*exp(_c[1]*t)*_C1*exp(_c[1]^(1/2)*x)+_C3*exp(_c[1]*t)*_C2/exp(_c[1]^(1/2)*x)}

(1.8)

pdetest(sol__3, sys__3)

[0, 0, 0]

(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

infolevel[pdsolve] := 1

This returns NULL:

pdsolve(sys__3, [u, v], generalsolution)

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

sys__4 := [diff(xi[1](x, y, z, t, u), u) = 0, diff(xi[1](x, y, z, t, u), x)-(diff(xi[2](x, y, z, t, u), y)) = 0, diff(xi[2](x, y, z, t, u), u) = 0, -(diff(xi[1](x, y, z, t, u), y))-(diff(xi[2](x, y, z, t, u), x)) = 0, diff(xi[3](x, y, z, t, u), u) = 0, diff(xi[1](x, y, z, t, u), x)-(diff(xi[3](x, y, z, t, u), z)) = 0, -(diff(xi[3](x, y, z, t, u), y))-(diff(xi[2](x, y, z, t, u), z)) = 0, -(diff(xi[1](x, y, z, t, u), z))-(diff(xi[3](x, y, z, t, u), x)) = 0, diff(xi[4](x, y, z, t, u), u) = 0, diff(xi[3](x, y, z, t, u), t)-(diff(xi[4](x, y, z, t, u), z)) = 0, diff(xi[2](x, y, z, t, u), t)-(diff(xi[4](x, y, z, t, u), y)) = 0, diff(xi[1](x, y, z, t, u), t)-(diff(xi[4](x, y, z, t, u), x)) = 0, -(diff(xi[1](x, y, z, t, u), x))+diff(xi[4](x, y, z, t, u), t) = 0, diff(eta[1](x, y, z, t, u), y, y)+diff(eta[1](x, y, z, t, u), z, z)-(diff(eta[1](x, y, z, t, u), t, t))+diff(eta[1](x, y, z, t, u), x, x) = 0, diff(eta[1](x, y, z, t, u), u, u) = 0, diff(eta[1](x, y, z, t, u), u, x)+diff(xi[1](x, y, z, t, u), x, x) = 0, diff(xi[1](x, y, z, t, u), x, y)+diff(eta[1](x, y, z, t, u), u, y) = 0, -(diff(xi[1](x, y, z, t, u), y, y))+diff(eta[1](x, y, z, t, u), u, x) = 0, diff(xi[1](x, y, z, t, u), x, z)+diff(eta[1](x, y, z, t, u), u, z) = 0, diff(xi[1](x, y, z, t, u), y, z) = 0, -(diff(xi[1](x, y, z, t, u), z, z))+diff(eta[1](x, y, z, t, u), u, x) = 0, -(diff(eta[1](x, y, z, t, u), t, u))-(diff(xi[1](x, y, z, t, u), t, x)) = 0, diff(xi[1](x, y, z, t, u), t, y) = 0, diff(xi[1](x, y, z, t, u), t, z) = 0, diff(xi[1](x, y, z, t, u), t, t)+diff(eta[1](x, y, z, t, u), u, x) = 0, -(diff(xi[2](x, y, z, t, u), z, z))+diff(eta[1](x, y, z, t, u), u, y) = 0, diff(xi[2](x, y, z, t, u), t, z) = 0, diff(xi[2](x, y, z, t, u), t, t)+diff(eta[1](x, y, z, t, u), u, y) = 0, diff(xi[3](x, y, z, t, u), t, t)+diff(eta[1](x, y, z, t, u), u, z) = 0, diff(eta[1](x, y, z, t, u), u, x, x) = 0, diff(eta[1](x, y, z, t, u), u, x, y) = 0, diff(eta[1](x, y, z, t, u), u, y, y) = 0, diff(eta[1](x, y, z, t, u), u, x, z) = 0, diff(eta[1](x, y, z, t, u), u, y, z) = 0, diff(eta[1](x, y, z, t, u), u, z, z) = 0, diff(eta[1](x, y, z, t, u), t, u, x) = 0, diff(eta[1](x, y, z, t, u), t, u, y) = 0, diff(eta[1](x, y, z, t, u), t, u, z) = 0]

There are 38 coupled equations

nops(sys__4)

38

(1.10)

When requesting a general solution pdsolve returns NULL:

pdsolve(sys__4, generalsolution)

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

infolevel[pdsolve] := 3

3

(1.11)

sol__4 := pdsolve(sys__4)

-> 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*

 

{eta[1](x, y, z, t, u) = (_C13*(_C10*(exp(_c[3]^(1/2)*z))^2+_C11)*(_C8*(exp(_c[2]^(1/2)*y))^2+_C9)*(_C6*(exp(_c[1]^(1/2)*x))^2+_C7)*cos((-_c[1]-_c[2]-_c[3])^(1/2)*t)+_C12*(_C10*(exp(_c[3]^(1/2)*z))^2+_C11)*(_C8*(exp(_c[2]^(1/2)*y))^2+_C9)*(_C6*(exp(_c[1]^(1/2)*x))^2+_C7)*sin((-_c[1]-_c[2]-_c[3])^(1/2)*t)+u*exp(_c[1]^(1/2)*x)*exp(_c[2]^(1/2)*y)*exp(_c[3]^(1/2)*z)*(_C1*t+_C2*x+_C3*y+_C4*z+_C5))/(exp(_c[1]^(1/2)*x)*exp(_c[2]^(1/2)*y)*exp(_c[3]^(1/2)*z)), xi[1](x, y, z, t, u) = -(1/2)*_C2*x^2+(1/2)*(-2*_C1*t-2*_C3*y-2*_C4*z+2*_C17)*x+(1/2)*(-t^2+y^2+z^2)*_C2+_C16*t+_C15*z+_C14*y+_C18, xi[2](x, y, z, t, u) = -(1/2)*_C3*y^2+(1/2)*(-2*_C1*t-2*_C2*x-2*_C4*z+2*_C17)*y+(1/2)*(-t^2+x^2+z^2)*_C3+_C20*t+_C19*z-_C14*x+_C21, xi[3](x, y, z, t, u) = -(1/2)*_C4*z^2+(1/2)*(-2*_C1*t-2*_C2*x-2*_C3*y+2*_C17)*z+(1/2)*(-t^2+x^2+y^2)*_C4+_C22*t-_C19*y-_C15*x+_C23, xi[4](x, y, z, t, u) = -(1/2)*_C1*t^2+(1/2)*(-2*_C2*x-2*_C3*y-2*_C4*z+2*_C17)*t+(1/2)*(-x^2-y^2-z^2)*_C1+_C20*y+_C22*z+_C16*x+_C24}

(1.12)

pdetest(sol__4, sys__4)

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

(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

with(Physics, Setup)

[Setup]

(1.14)

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

Setup(anticommutativepre = {Q, theta})

`* Partial match of  'anticommutativepre' against keyword 'anticommutativeprefix'`

 

[anticommutativeprefix = {Q, _lambda, theta}]

(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

PDEtools:-declare(Q(x, y, theta[1], theta[2]))

Q(x, y, theta[1], theta[2])*`will now be displayed as`*Q

(1.16)

q := PDEtools:-diff_table(Q(x, y, theta[1], theta[2]))

table( [(  ) = Q(x, y, theta[1], theta[2]) ] )

(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)

pde[1] := q[x, y, theta[1]]+q[x, y, theta[2]]-q[y, theta[1], theta[2]] = 0

Physics:-diff(diff(diff(Q(x, y, theta[1], theta[2]), x), y), theta[1])+Physics:-diff(diff(diff(Q(x, y, theta[1], theta[2]), x), y), theta[2])-Physics:-diff(Physics:-diff(diff(Q(x, y, theta[1], theta[2]), y), theta[1]), theta[2]) = 0

(1.18)

pde[2] := q[theta[1]] = 0

Physics:-diff(Q(x, y, theta[1], theta[2]), theta[1]) = 0

(1.19)

The solution returned for this system is indeed a general solution

pdsolve([pde[1], pde[2]])

-> 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

 

Q(x, y, theta[1], theta[2]) = _F1(x, y)*_lambda1+(_F6(x)+_F5(y))*theta[2]

(1.20)

NULL

This solution involves an anticommutative constant `_&lambda;2`, analogous to the commutative constants _Cn where n is an integer.

 

Download PDE_general_solutions.mw

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

Page 1 of 1