Items tagged with pdsolve


I want to solve the system of differential equations
sys :=
  diff(x(t,s),t) = y(t,s),
  diff(y(t,s),t) + x(t,s) = 0;

subject to the initial condition
ic := x(0,s) = a(s),
      y(0,s) = b(s);

where a(s) and b(s) are given.

This looks like a system of PDEs but actually it is a system
of ODEs because there are no derivatives with respect to s.
It is easy to obtain the solution by hand:

x(t,s) = b(s)*sin(t) + a(s)*cos(t)
y(t,s) = b(s)*cos(t) - a(s)*sin(t)

I don't know how to get this in Maple, either through dsolve()
or pdsolve().

Actually both dsolve({sys}) and pdsolve({sys}) do return
the correct general solution, however dsolve({sys, ic})
or pdsolve({sys, ic}) produce no output.  Is there a trick
to make the latter work?


Maple 2017 has launched!

Maple 2017 is the result of hard work by an enthusiastic team of developers and mathematicians.

As ever, we’re guided by you, our users. Many of the new features are of a result of your feedback, while others are passion projects that we feel you will find value in.

Here’s a few of my favourite enhancements. There’s far more that’s new - see What’s New in Maple 2017 to learn more.


MapleCloud Package Manager

Since it was first introduced in Maple 14, the MapleCloud has made thousands of Maple documents and interactive applications available through a web interface.

Maple 2017 completely refreshes the MapleCloud experience. Allied with a new, crisp, interface, you can now download and install user-created packages.

Simply open the MapleCloud interface from within Maple, and a mouse click later, you see a list of user-created packages, continuously updated via the Internet. Two clicks later, you’ve downloaded and installed a package.

This completely bypasses the traditional process of searching for and downloading a package, copying to the right folder, and then modifying libname in Maple. That was a laborious process, and, unless I was motivated, stopped me from installing packages.

The MapleCloud hosts a growing number of packages.

Many regular visitors to MaplePrimes are already familiar with Sergey Moiseev’s DirectSearch package for optimization, equation solving and curve fitting.

My fellow product manager, @DSkoog has written a package for grouping data into similar clusters (called ClusterAnalysis on the Package Manager)

Here’s a sample from a package I hacked together for downloading maps images using the Google Maps API (it’s called Google Maps and Geocoding on the Package Manager).

You’ll also find user-developed packages for exploring AES-based encryption, orthogonal series expansions, building Maple shell scripts and more.

Simply by making the process of finding and installing packages trivially easy, we’ve opened up a new world of functionality to users.

Maple 2017 also offers a simple method for package authors to upload workbook-based packages to the MapleCloud.

We’re engaging with many package authors to add to the growing list of packages on the MapleCloud. We’d be interested in seeing your packages, too!


Advanced Math

We’re committed to continually improving the core symbolic math routines. Here area few examples of what to expect in Maple 2017.

Resulting from enhancements to the Risch algorithm, Maple 2017 now computes symbolic integrals that were previously intractable

Groeber:-Basis uses a new implementation of the FGLM algorithm. The example below runs about 200 times faster in Maple 2017.

gcdex now uses a sparse primitive polynomial remainder sequence together.  For sparse structured problems the new routine is orders of magnitude faster. The example below was previously intractable.

The asympt and limit commands can now handle asymptotic cases of the incomplete Γ function where both arguments tend to infinity and their quotient remains finite.

Among several improvements in mathematical functions, you can now calculate and manipulate the four multi-parameter Appell functions.


Appel functions are of increasing importance in quantum mechanics, molecular physics, and general relativity.

pdsolve has seen many enhancements. For example, you can tell Maple that a dependent variable is bounded. This has the potential of simplifying the form of a solution.


Plot Builder

Plotting is probably the most common application of Maple, and for many years, you’ve been able to create these plots without using commands, if you want to.  Now, the re-designed interactive Plot Builder makes this process easier and better.

When invoked by a context menu or command on an expression or function, a panel slides out from the right-hand side of the interface.


Generating and customizing plots takes a single mouse click. You alter plot types, change formatting options on the fly and more.

To help you better learn Maple syntax, you can also display the actual plot command.

Password Protected Content

You can distribute password-protected executable content. This feature uses the workbook file format introduced with Maple 2016.

You can lock down any worksheet in a Workbook. But from any other worksheet, you can send (author-specified) parameters into the locked worksheet, and extract (author-specified) results.


Plot Annotations

You can now get information to pop up when you hover over a point or a curve on a plot.

In this application, you see the location and magnitude of an earthquake when you hover over a point

Here’s a ternary diagram of the color of gold-silver-copper alloys. If you let your mouse hover over the points, you see the composition of the points

Plot annotations may seem like a small feature, but they add an extra layer of depth to your visualizations. I’ve started using them all the time!


Engineering Portal

In my experience, if you ask an engineer how they prefer to learn, the vast majority of them will say “show me an example”. The significantly updated Maple Portal for Engineers does just that, incorporating many more examples and sample applications.  In fact, it has a whole new Application Gallery containing dozens of applications that solve concrete problems from different branches of engineering while illustrating important Maple techniques.

Designed as a starting point for engineers using Maple, the Portal also includes information on math and programming, interface features for managing your projects, data analysis and visualization tools, working with physical and scientific data, and a variety of specialized topics.


Geographic Data

You can now generate and customize world maps. This for example, is a choropleth of European fertility rates (lighter colors indicate lower fertility rates)

You can plot great circles that show the shortest path between two locations, show varying levels of detail on the map, and even experiment with map projections.

A new geographic database contains over one million locations, cross-referenced with their longitude, latitude, political designation and population.

The database is tightly linked to the mapping tools. Here, we ask Maple to plot the location of country capitals with a population of greater than 8 million and a longitude lower than 30.


There’s much more to Maple 2017. It’s a deep, rich release that has something for everyone.

Visit What’s New in Maple 2017 to learn more.

I am trying to solve system linear partial differential equations using command "pdsolve". I am surprised to see that the solution given by this command is not satisfying the system, instead, an additional constraint is obtained for an arbitrary function, is there something about "pdsolve" I am missing? 



DepVars := [f(x, y, t, u)]

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


Sys := {diff(f(x, y, t, u), u, t)-(diff(f(x, y, t, u), x, y)) = 0, diff(f(x, y, t, u), u, u) = 0, diff(f(x, y, t, u), u, y) = 0, diff(f(x, y, t, u), x, u) = 0, diff(f(x, y, t, u), x, x) = 0, diff(f(x, y, t, u), y, y, y) = 0}

{diff(diff(f(x, y, t, u), t), u)-(diff(diff(f(x, y, t, u), x), y)) = 0, diff(diff(diff(f(x, y, t, u), y), y), y) = 0, diff(diff(f(x, y, t, u), u), u) = 0, diff(diff(f(x, y, t, u), u), x) = 0, diff(diff(f(x, y, t, u), u), y) = 0, diff(diff(f(x, y, t, u), x), x) = 0}



{f(x, y, t, u) = (_F3(t)*y+_F4(t))*x+(_F3(t)+_C1)*u+(1/2)*_F7(t)*y^2+_F8(t)*y+_F9(t)}


f := proc (x, y, t, u) options operator, arrow; (_F3(t)*y+_F4(t))*x+(_F3(t)+_C1)*u+(1/2)*_F7(t)*y^2+_F8(t)*y+_F9(t) end proc

proc (x, y, t, u) options operator, arrow; (_F3(t)*y+_F4(t))*x+(_F3(t)+_C1)*u+(1/2)*_F7(t)*y^2+_F8(t)*y+_F9(t) end proc



{0 = 0, diff(_F3(t), t)-_F3(t) = 0}






Why pdsolve is not correctly solving the following

where I get    

but it is correctly solving the next one

where I get ???


I see that it is due to the fact that the variable x is multiplied by a constant, but why is not maple able to manage that?


Thanks for your help,








I want to solve a pde equation:

equa1 := diff(u(x,y), x, x)-y(1+x) = 0;

# with codition:

con:=u(0,y) = 0, (D(u[x]))(0,y) = 0;

the anwer must be :    u(x,y)= y(x2/2  + x3/6)
How can i solve that with maple?

Please excuse my bad English

I am looking for a numerical solver for a parabolic PDE (up to 2nd order derivatives but no mixed ones) on the spatio-temporal domain [X x Y x T], either as an external package or as MAPLE code.  

I have coded the method of lines on the domain [X x T] and indeed also used pdsolve as a check for that case. However, pdsolve (numerical) cannot solve the PDEs on the domain [X x Y x T].  The run times and memory requirements for the latter case would of course be significantly greater.  

I am about to code up the method of lines (in MAPLE) on the domain [X x Y x T], but am wondering whether there exist external FORTRAN or C code packages that would be faster if called up in MAPLE and whose results would then be post-pocessed in MAPLE.

Does anyone have any suggestions?



hi--how i can solve following equation?


Maple Worksheet - Error

Failed to load the worksheet /maplenet/convert/ .



Please help me on this :

restart; with(PDETools), with(plots)

n := .3:

Eq1 := (1-n)*(diff(f(x, y), `$`(y, 3)))+(1+x*cot(x))*f(x, y)*(diff(f(x, y), `$`(y, 2)))-(diff(f(x, y), y))/Da+(diff(f(x, y), y))^2+n*We*(diff(f(x, y), `$`(y, 2)))*(diff(f(x, y), `$`(y, 3)))+sin(x)*(theta(x, y)+phi(x, y))/x = x*((diff(f(x, y), y))*(diff(f(x, y), y, x))+(diff(f(x, y), `$`(y, 2)))*(diff(f(x, y), x))):

Eq2 := (diff(theta(x, y), `$`(y, 2)))/Pr+Nt*(diff(theta(x, y), y))^2/Pr+Nb*(diff(phi(x, y), y))*(diff(theta(x, y), y))/Pr+(1+x*cot(x))*f(x, y)*(diff(theta(x, y), y)) = x*((diff(f(x, y), y))*(diff(theta(x, y), x))+(diff(theta(x, y), y))*(diff(f(x, y), x))):

Eq3 := Nb*(diff(phi(x, y), `$`(y, 2)))/(tau*Pr)+Nt*(diff(theta(x, y), `$`(y, 2)))/(tau*Pr)+(1+x*cot(x))*f(x, y)*(diff(phi(x, y), y)) = x*((diff(f(x, y), y))*(diff(phi(x, y), x))+(diff(phi(x, y), y))*(diff(f(x, y), x))):

ValWe := [0, 5, 10]:

bcs := {Nb*(D[2](phi))(x, 0)+Nt*(D[2](theta))(x, 0) = 0, f(0, y) = ((1/12)*y)^2*(6-8*((1/12)*y)+3*((1/12)*y)^2), f(x, 0) = 0, phi(0, y) = -.5*y, phi(x, 12) = 0, theta(0, y) = (1-(1/12)*y)^2, theta(x, 0) = 1, theta(x, 12) = 0, (D[2](f))(x, 0) = Da^(1/2)*(D[2, 2](f))(x, 0)+Da*(D[2, 2, 2](f))(x, 0), (D[2](f))(x, 12) = 0}:

pdsys := {Eq1, Eq2, Eq3}:

p1 := ans[1]:-plot(theta(x, y), x = 1, color = blue):

plots[display]({p1, p2, p3})




Download untitle_2_(1).mw


Hope you would be fine. I want to solve the following PDEs by numerically for v[nf]=alpha[nf]=Ec=mu[nf]=C=1 and Pr=6.2

Eq1 := diff(u(x, t), t) = v[nf]*(diff(u(x, t), x, x));

Eq2 := diff(u(x, t), t) = alpha[nf]*(diff(theta(x, t), x, x))/Pr+Ec*mu[nf]*C*(diff(u(x, t), x))^2;

ICs := u(x, 0) = 0, theta(x, 0);

BCs := u(0, t) = 1, theta(0, t) = 1, u(10, t) = 0, theta(10, t) = 0;

and find the values of (diff(u(0, t), x))/(1-phi)^2.5 for different values of phi. Thanks in advace 

With my best regards and sincerely.

Muhammad Usman

School of Mathematical Sciences 
Peking University, Beijing, China


how i can remove this error?


Error, (in pdsolve/numeric/process_IBCs) initial/boundary conditions can only contain derivatives which are normal to the boundary, got (D[1](H))(x, 0)



"restart;beta:=1:k:=2:L:=1: W(t):=(Heaviside(t-1)-Heaviside(t-1.1)); theta:=3:   hR:=1 :hD(x):=hR+tan(theta)*(L-x) :W0:=2: f(x):=sqrt((hR^(2)+(W0)/(k)*(L^(2)-x^(2)))):t:=5:M:=2:theta:=20:"

proc (t) options operator, arrow; Heaviside(t-1)-Heaviside(t-1.1) end proc


PDE1 := diff(H(x, y), x, x)+diff(H(x, y), y, y)+2*W(t)/k = 0

diff(diff(H(x, y), x), x)+diff(diff(H(x, y), y), y) = 0


bcs1 := {H(L, y) = hR^2, (D[1](H))(0, y) = 0};

{H(1, y) = 1, (D[1](H))(0, y) = 0}


bcs2 := {H(x, M) = hD(x)^2, (D[1](H))(x, 0) = 0}

{H(x, 2) = (1+tan(20)*(1-x))^2, (D[1](H))(x, 0) = 0}


pdsolve(PDE1, `union`(bcs1, bcs2), numeric)

Error, (in pdsolve/numeric/process_IBCs) initial/boundary conditions can only contain derivatives which are normal to the boundary, got (D[1](H))(x, 0)





What's wrong here?

restart; with(PDEtools); PDE2 := diff(u(x, y, t), t$2) = diff(u(x, y, t), x$2)+diff(u(x, y, t), y$2); IBC2s := u(x, 0, t) = 0, u(x, 2, t) = 0, u(0, y, t) = 0, u(4, y, t) = 0, u(x, y, 0) = (.1*(-x^2+4*x))*(-y^2+2*y), (D[3](u))(x, y, 0) = 0; Sol2 := pdsolve({IBC2s, PDE2}); build(Sol2);

Error, invalid input: PDEtools:-build uses a 1st argument, ANS (of type {`=`, PDESolStruc}), which is mis

PDE := diff(u(x, t), t$2) = (1/16)*(diff(u(x, t), x$2))-(1/5)*(diff(u(x, t), t)); IBCs := u(x, 0) = x*(1-(1/2)*x), (D[2](u))(x, 0) = x*(1-(1/2)*x), u(0, t) = 0, (D[1](u))(1, t) = 0; Sol := pdsolve({IBCs, PDE}, HINT = f(x)*g(t)); Sol := subs(op([2, 2, 1], Sol) = n, Sol)

I thought that the addition of HINT wolud help but no.

The numeric solution gives the right answer but the analytical gives way too small numbers and wrong shape.


Hi everyone!

I would really appreciate if someone could give me a hand on telling me what is wrong with this problem! pdsolve gives the error: Error, (in pdsolve/sys/info) found functions with same name but depending on different arguments in the given DE system: {f(0, y), f(x, 0), f(x, y), (D[2](f))(0, y), (D[2](f))(x, 0)}.

Thanks in advance!!! 



Hello everyone,


     I am having trouble trying to solve a system of differential equations. The modeling was made from the equilibrium equations of a pressure vessel. The set of equations is shown below:

     As you see it is a set of two second-order partial differential equations. So, we need four boundary conditions. This one is the first. It means that the left end of the pressure vessel is fixed.

This one is the second boundary condition. It means that the right end of the pressure vessel is free.

This one is the third boundary condition. It means that the inner surface of the pressure vessel is subject to an external load:

At last, we have the fourth boundary condition. It means that the outer surface of the pressure vessel is free.

     The first test I have been trying to do is the static case. In this case, the time terms (the right side of the two equations shown) is zero.

    The maple commands that I am using are the following:


restart; E := 200*10^9; nu := .33; G := E/(2*(1+nu)); RI := 0.254e-1; RO := 2*RI; p := proc (x) options operator, arrow; 50000000 end proc; sys := [E*(nu*(diff(v(x, r), x))/r+nu*(diff(diff(v(x, r), x), r))+(1-nu)*(diff(diff(u(x, r), x), x)))/(-2*nu^2-nu+1)+G*(diff(diff(u(x, r), r), r)+diff(diff(v(x, r), x), r)+(diff(u(x, r), r))/r+(diff(v(x, r), x))/r) = 0, E*((1-nu)*(diff(diff(v(x, r), r), r))+nu*(diff(diff(u(x, r), x), r))+(1-nu)*(diff(v(x, r), r))/r-(1-nu)*v(x, r)/r^2)/(-2*nu^2-nu+1)+G*(diff(diff(u(x, r), r), x)+diff(diff(v(x, r), x), x)) = 0]; BCs := {E*(nu*v(L, r)/r+nu*(D[2](v))(L, r)+(1-nu)*(D[1](u))(L, r))/(-2*nu^2-nu+1) = 0, E*(nu*v(x, RI)/RI+(1-nu)*(D[2](v))(x, RI)+nu*(D[1](u))(x, RI))/(-2*nu^2-nu+1) = -p(x), E*(nu*v(x, RO)/RO+(1-nu)*(D[2](v))(x, RO)+nu*(D[1](u))(x, RO))/(-2*nu^2-nu+1) = 0, u(0, r) = 0}

sol := pdsolve(sys, BCs, numeric)


I am getting the following error:


Error, (in pdsolve/numeric/process_IBCs) initial/boundary conditions must depend upon exactly one of the independent variables: 0.1459531181e12*v(L, r)/r+0.1459531181e12*(D[2](v))(L, r)+0.2963290579e12*(D[1](u))(L, r) = 0

In this case, my boundary conditions do depend on more than one independent variable. How do I proceed?


Thank you in advance,

Pedro Guaraldi



yVal := 0.01

xVal := 0.01

p8 := plot([fdiff(('rhs')((pds:-value(f(x, y)))(x, yVal)[3]), [y, y], x = z)], z = 0 .. 20, color = [red])

I cant seem to plot the graph for yVal, but if I were to switch it around to (xVal,y), the graph works perfectly. How should I input the code such that I can obtain the f''(x,0) graph. 

Any help will be greatly appreciated :) thanks

1 2 3 4 5 6 7 Last Page 1 of 11