Items tagged with pdetools

There is an example in the help of maple, that is to solve the symmetries of the equation ut=uxx using the order "Infinitesimals".

But the result i can't understand.

I solved by hand and find  _eta[u](x, t, u)=cu+b(x,t), where b(x,t) is a solution of the ut=uxx.

While in maple, b is only two exponential function which are also the solution of ut=uxx. 


thanks for your help!

Dear All

I need to reduce system of differential equation system into triangular system which I came to know can be done using Maple package "DifferentialAlgebra", but I do not know how to use this package for triangularization.

The differential system is DetSys derived from  some PDE:



DepVars := [f(u(x, t)), u(x, t)]; 1; declare(f(u(x, t)), u(x, t))

[f(u(x, t)), u(x, t)]


f(u(x, t))*`will now be displayed as`*f


u(x, t)*`will now be displayed as`*u


PDE1 := diff(u(x, t), t, t)-(diff(u(x, t), x, x))-f(u) = 0

diff(diff(u(x, t), t), t)-(diff(diff(u(x, t), x), x))-f(u) = 0


G := [xi(x, t, u), tau(x, t, u), phi(x, t, u)]

[xi(x, t, u), tau(x, t, u), phi(x, t, u)]



phi(x, t, u)*`will now be displayed as`*phi


tau(x, t, u)*`will now be displayed as`*tau


xi(x, t, u)*`will now be displayed as`*xi


DetSys := DeterminingPDE(PDE1, G, integrabilityconditions = false)

{-2*(diff(diff(tau(x, t, u), t), u))+diff(diff(phi(x, t, u), u), u), 2*(diff(diff(tau(x, t, u), u), x))-2*(diff(diff(xi(x, t, u), t), u)), 2*(diff(diff(xi(x, t, u), u), x))-(diff(diff(phi(x, t, u), u), u)), 2*(diff(tau(x, t, u), x))-2*(diff(xi(x, t, u), t)), 2*(diff(xi(x, t, u), x))-2*(diff(tau(x, t, u), t)), diff(diff(tau(x, t, u), x), x)+2*(diff(diff(phi(x, t, u), t), u))-(diff(diff(tau(x, t, u), t), t))-3*(diff(tau(x, t, u), u))*f(u), diff(diff(xi(x, t, u), x), x)-2*(diff(diff(phi(x, t, u), u), x))-(diff(diff(xi(x, t, u), t), t))-f(u)*(diff(xi(x, t, u), u)), -(diff(diff(phi(x, t, u), x), x))+diff(diff(phi(x, t, u), t), t)-phi(x, t, u)*(diff(f(u), u))+(diff(phi(x, t, u), u))*f(u)-2*(diff(tau(x, t, u), t))*f(u), diff(diff(tau(x, t, u), u), u), diff(diff(xi(x, t, u), u), u), diff(tau(x, t, u), u), diff(xi(x, t, u), u)}


for EQ in sort([op(DetSys)], length) do EQ = 0 end do:



Download [1117]


Hello, I am using PDEtools to evaluate an equation but got system inconsistent in respect of a parameter used after the command map(pdsolve). I am afraid the result sebsequently given may not be correct, did I do something wrong?






i want to compute the determining PDE system satisfied by the infinitesimals, such as the KdV equation.

but i have a problem, if i use the command

DeterminingPDE(PDE1, integrabilityconditions = false, split = false)

i can get the coefficients of independent objects, but u[t] exists. 

i want to replace u[t] by (-u[x]u-u[x,x,x]), then extract the coefficients.

but i can't collect the coefficients. 


my code:

with(PDEtools, DeterminingPDE, declare, diff_table, casesplit, InfinitesimalGenerator, Infinitesimals, SymmetryTest, ReducedForm, FromJet, ToJet);

declare(u(x, t));

U := diff_table(u(x, t));

PDE1 := U[]*U[x]+U[t]+U[x, x, x] = 0;

DetSys := DeterminingPDE(PDE1, integrabilityconditions = false, split = false);
detsys := FromJet(DetSys, u(x, t), differentiationnotation = diff);
pd1 := subs(U[t] = -U[]*U[x]-U[x, x, x], detsys); #u[t]->(-u[x]u-u[x,x,x])
pd2 := ToJet(pd1, [u(x, t)]);

how do i collect the coefficients?


In PDEtools, suppose to I wish assign zero value to certain first order partial derivative such that higher order derivatives automatically vanish in subsequent excutions, how I can do that?



alias(u = u(x, y, t))



Suppose we wish following derivative equal to zero,

diff(u, x) = 0

diff(u, x) = 0


If we use ":=" for value assignment we will get error. Under above assuption how can we make following derivatives zero?

diff(u, x, x); 1; diff(u, x, y); 1; diff(u, x, x, x, y)

diff(diff(u, x), x)


diff(diff(u, x), y)


diff(diff(diff(diff(u, x), x), x), y)





Hello Maple primers

I am trying to do a coordinate transformation which involves a number of partial derivatives. I turned to the PDETools[dchange] to accomplish this but it will just return 0 when run through.

The problem is as such. First two functions are defined which contain a lot of "stuff". Then the forward and reverse transformations are defined between the coordinates; and finally the transformation is done.

   del_1:=Diff(Y,r1,r1)+2/r1*(Diff(Y,r1)) + Diff(Y,r2,r2)+2/r2*(Diff(Y,r2))+2*(Diff(Y,r3,r3))+4/r3*(Diff(Y,r3))+((r1^2-r2^2+r3^2)/(r1*r3))*(Diff(Y,r1,r3))+(r2^2-r1^2+r3^2)/(r2*r3)*(Diff(Y,r2,r3)):


#Forward transformation



#Reverse transformation


This will return zero. Is there something obvious I am missing here? I have used the dchange tool before in a similar manner and it has worked without issue.

Iam a newbie, just two weeks into my 30-days trial. I have been exploring the symmetry aspect of PDEtools, gone through materials in the help section but still having problem in some of my analysis. The answer to the titled question "Symmetry analysis with parameters" was really helpful but did not work out for me when the parameters are more than one. Attached is a sample question.


Let say I want to perform symmetry analysis of ODE, taking into account parameters.
In order to do it I must generate system of determining equations and them to split it for different cases.
But if I use PDETools, actually it gives me only 1 case (worksheet is attached).
In that case, surely it is very easy to do it by hand and to determine that A=0 and A<>0 are two different cases.

But automatic procedure of PDETools seems to me that somewhere allows to divide by parameter...

Hi everyone,

I am trying to solve the equation of heat tranfer, time dependent, with particular Initial and boundary conditions but I am stuck by technical problems both in getting an analytical solution and a numerical one.

The equation

the equation.

I defined a and b numerically. domain is : and I defined surf_power numerically.

The initial condition is : , T0 defined numerically

The boundary condition is : , because it has a shperical symetry.

To me, it looks like a well posed problem. Does it look fine ?

Problem in analytical solution :

It doesn't accept the boundary condition so I only input the initial condition and it actually gives me back an expression that can be evaluated but it never does : I can't reduce it more than an expression of fourier which I can't eval. The solution :
The solution calculated in (0,0). I was hoping T0...

Are you familiar with these problems ? What would be the perfect syntax you would use to solve this ?

The numerical solution problems :

Sometimes it tells me that my boundary condition is equivalent  to 0 = 0, and I don't see why. Some other times it tells me I only gave 1 boundary/initial condition even if I wrote both. Here is what I wrote for example :

(because it kept asking me to add these two options : 'time' and 'range')

Are you familiar with these problems ? What would be the perfect syntax you would use to solve this ? I must at least have syntax problems because even if I keep reading the Help, it's been a long time since I used Maple.

Thank very much for any indication you could give me !


Dear Friends

I am trying to find determining system for variable coefficient KdV equation, this system is required to find relevant point symmetries for said equation. Following is set of command that I used to perform task:

This last cammand gives me determining system for PDE1.

Following is direct procedure to find determining system:

This last command give large expression from which determining system is obtained by equating coefficient to zero which does not matches with determining system obtained with first procedure.

What could be the possible error?

I have also attached relevant Maple18 file for analysis.


Dear all,

I am trying to solve the following partial differential equation (transport or advection equation) with given initial and boundary conditions:

restart: with(PDEtools):
sys := [v*diff(u(x,t), x) + diff(u(x,t), t) = 0, u(x,0) = exp(-x), u(0,t) = sin(t)];

But it does not work. The solution is (or should be): 

u(x, t) = exp(t*v-x)+Heaviside(t-x/v)*(sin(t-x/v)-exp(t*v-x))

I think the reason is that the interval for t (in [0, inf)) and x (in [0, 1]) is not specified. On the other hand, this works:

restart: with(PDEtools):
sys := [diff(u(x, t), t) = diff(u(x, t), x, x), u(0, t) = 0, u(1, t) = 0, u(x,0) = f(x)];
sol := pdsolve(sys);

How can I solve a PDE like the transport equation with given initial AND boundary conditions?

Thanks a lot

I am doing some lengthy computation using the externally developed (and published in academic journals) package 'Janet' to compute the compatibility conditions of an overdetermined set of linear PDEs.

At some point in the process (for a set of equations rather, but not SO, complicated) the procedure gives the error

in (PDEtools/NumerDenom) too many level of recursion


I have contacted the developer of the packages and he told me that he never directly calls PDEtools functions, so he deems that that call is made by some more standard maple command (such as simplify).

I could not find any documentation of NumerDenom function, to try and understand what might be the problem (my set of equations has some extremely 'bad' fractions, but I hope this is not that naive)

How does NumerDenom works, and where is it called by 'standard' maple command?

Thank you all.


     I have a question regarding pdsolve, or Solve from the PDEtools package. I have a set of equations relating partial derivatives, and I'd like to isolate certain terms without explicitly known the functions. I can do this for a single equation, but not multiple ones. I'm curious if Maple can currently handle a system of eqns like these easily, since I will be increasing the number of eqns in the future. Here's the code 





H(x, y, t)*`will now be displayed as`*H


eq1:= H[tt](x,y,t) = H[xx](x,y,t) + H[yy](x,y,t);

H[tt](x, y, t) = H[xx](x, y, t)+H[yy](x, y, t)


eq2 := diff(H[tt](x,y,t), t) = diff(H[tx](x,y,t), x) + diff(H[ty](x,y,t), y);

diff(H[tt](x, y, t), t) = diff(H[tx](x, y, t), x)+diff(H[ty](x, y, t), y)


eq3 := diff(H[tx](x,y,t), t) = diff(H[xx](x,y,t), x) + diff(H[xy](x,y,t), y);

diff(H[tx](x, y, t), t) = diff(H[xx](x, y, t), x)+diff(H[xy](x, y, t), y)


eq4 :=diff(H[ty](x,y,t), t) = diff(H[xy](x,y,t), x) + diff(H[yy](x,y,t), y);

diff(H[ty](x, y, t), t) = diff(H[xy](x, y, t), x)+diff(H[yy](x, y, t), y)


PDEtools:-Solve(eq3, H[xy]);

H[xy](x, y, t) = Int(diff(H[tx](x, y, t), t)-(diff(H[xx](x, y, t), x)), y)+_F1(x, t)


PDEtools:-Solve({eq1, eq2, eq3, eq4}, H[xy]);

Error, (in pdsolve/sys) the input system cannot contain equations in the arbitrary parameters alone; found equation depending only on {H[tt](x,y,t), H[xx](x,y,t), H[yy](x,y,t)}: H[tt](x,y,t)-H[xx](x,y,t)-H[yy](x,y,t)






I'm taking my first steps with maple and pdsolve, trying to run the example in the maplesoft support page:

which reads

> restart; with(PDEtools);
> U := diff_table(u(x, t));

and I get a solution that is different from the web page, and when i run

Im using maple 13. Any tips about what's wrong?



Dear Maple users


I have a question about applying pdsolve MAPLE for solving two dimensional heat equations:

My codes have been provided but it shows to me this error:

Error, (in pdsolve/numeric/process_PDEs) can only numerically solve PDE with two independent variables, got {t, x, y}

If kindly is possible, please help me in this case.


With kind regards,

Emran Tohidi.


> restart;
> with(plots);
print(??); # input placeholder
> with(PDEtools);
print(??); # input placeholder
> declare(u(x, y, t));
print(`output redirected...`); # input placeholder
                    u(x, y, t) will now be displayed as u
> S := 1/100; tR := 0 .. 1; xR := 0 .. 1; yR := 0 .. 1; NF := 30; NP := 100;
print(??); # input placeholder
> N := 3; L1 := [red, blue, green]; L2 := [0, 1/2, 1]; Ops := spacestep = S, timestep = S;
print(??); # input placeholder
> Op1 := frames = NF, numpoints = NP;
print(??); # input placeholder
> PDE1 := diff(u(x, y, t), t)-(diff(u(x, y, t), `$`(x, 2)))-(diff(u(x, y, t), `$`(y, 2))) = 0;
print(??); # input placeholder
> IC := {u(x, y, 0) = exp(x+y)}; BC := {u(0, y, t) = exp(2*t+y), u(1, y, t) = exp(2*t+y+1), u(x, 0, t) = exp(2*t+x), u(x, 1, t) = exp(2*t+x+1)};
print(??); # input placeholder
> Sol := pdsolve(PDE1, `union`(IC, BC), numeric, u(x, t), Ops);
Error, (in pdsolve/numeric/process_PDEs) can only numerically solve PDE with two independent variables, got {t, x, y}

1 2 Page 1 of 2