## why did that russian guy refuse a million dollars...

by:

just reading this story... a large quantity of information does not add up for me, like he denies it is his work and was done by hamilton? also its blasted across the net that he his proof is valid, so he cant say he doesnt want fame because its been all over the internet, and the sheer lack of logic of refusing money based on a moral code of conduct? then give it to charity, pay for a dozen scholarships but what the money is dirty?

pretty sure this whole thing is a pile of crap made up by someone.

by: Maple

 >
 (1)
 >
 (2)
 >

## CONGRUENT FUNCTIONS OF THE FRACTIONAL PART OVER...

by: Maple

A more honest and specific version of lemma 3.

CONGRUENT_FUNCTIONS_OF_THE_FRACTIONAL_PART_OVER_Q_LEMMA_4.mw

Maple Worksheet - Error

Failed to load the worksheet /maplenet/convert/CONGRUENT_FUNCTIONS_OF_THE_FRACTIONAL_PART_OVER_Q_LEMMA_4.mw .

## Application of first order equations

Maple 2016

It is very important that you learn to pose and solve equations in practical problems. Ernest Mach, a famous scientist of the nineteenth century, said that algebra is characterized by a lightening of mind, because the solution of a problem, after building the equation, you can "forget" all the practical situation to focus on the mathematical expression; everything that is not necessary to solve the problem no longer interfere with your mind. Another famous scientist, Isaac Newton, wrote that the language of algebra is the equation. To see a problem concerning abstract relations of numbers or amounts, simply translate the problem of colloquial language to the algebraic language. Here I leave the application for first order equations developed in 2016 Maple.

(In Spanish)

Lenin Araujo Castillo

## Prime number subset code using set and list conversion...

by: Maple

hello i was just looking back on some stuff i did a few months back and although im aware there is a function for generating the prime subset up to a given number already featured in a package in mape im just curious to know how this one measures up in terms of computational efficiency etc.

anyway, this is code, if anyone has the time to give it a try and let me know what they think ie faster more logical way about it any feed back is appreciated cheers.

restart;
interface(showassumed = 0, rtablesize = infinity);
with(plots); with(numtheory); with(Statistics); with(LinearAlgebra); with(RandomTools); with(codegen, makeproc); with(combinat); with(Maplets[Elements]);
unprotect(real, rational, integer, complex);
alias(P[In] = CurveFitting[PolynomialInterpolation]); alias(L[In] = CurveFitting[LeastSquares]); alias(R[In] = CurveFitting[RationalInterpolation]); alias(S[In] = CurveFitting[Spline]); alias(B[In] = CurveFitting[BSplineCurve]); alias(L[In] = CurveFitting[ThieleInterpolation], rho = frac); alias(`&Nscr;` = Count); alias(`&Dopf;` = numtheory:-divisors); alias(sigma = numtheory:-sigma); alias(`&Fscr;` = ListTools['Flatten']); alias(`&Sopf;` = seq);
delta := proc (x, y) options operator, arrow; piecewise(x = y, 1, x <> y, 0) end proc;
`&Mopf;` := proc (X, Y) options operator, arrow; map(X, Y) end proc;
`&Cscr;`[S, L] := proc (X) options operator, arrow; convert(X, 'list') end proc;
`&Cscr;`[L, S] := proc (X) options operator, arrow; convert(X, 'set') end proc;
`&Popf;` := proc (N) options operator, arrow; `minus`({`&Sopf;`(k*delta(`&Nscr;`(`&Fscr;`(`&Cscr;`[S, L](`&Mopf;`(`&Cscr;`[S, L], `&Mopf;`(`&Dopf;`, `&Dopf;`(k)))))), 3), k = 1 .. N)}, {0}) end proc;
N -> `minus`({(k delta(&Nscr;(&Fscr;(&Cscr;[S, L]((&Cscr;[S, L])

&Mopf; (&Dopf; &Mopf; (&Dopf;(k)))))), 3)) &Sopf; (k = 1 .. N)},

{0})
n[P] := proc (N) options operator, arrow; `&Nscr;`(`&Cscr;`[S, L](`&Popf;`(N)))-1 end proc;

Maple Worksheet - Error

Failed to load the worksheet /maplenet/convert/prime_subset_up_to_N.mw .

## Diminishing Returns from Parallel Processing:...

by: Maple 2016

This post is about the relationship between the number of processors used in parallel processing with the Threads package and the resultant real times and cpu times for a computation.

In the worksheet below, I perform the same computation using each possible number of processors on my machine, one thru eight. The computation is adding a list of 32 million pre-selected random integers. The real times and cpu times are collected from each run, and these are analyzed with a variety of metrics that I devised. Note that garbage-collection (gc) time is not an issue in the timings; as you can see below, the gc times are zero throughout.

My conclusion is that there are severely diminishing returns as the number of processors increases. There is a major benefit in going from one processor to two; there is a not-as-great-but-still-substantial benefit in going from two processors to four. But the real-time reduction in going from four processors to eight is very small compared to the substantial increase in resource consumption.

Please discuss the relevance of my six metrics, the soundness of my test technique, and how the presentation could be better. If you have a computer capable of running more than eight threads, please modify and run my worksheet on it.

Diminishing Returns from Parallel Processing: Is it worth using more than four processors with Threads?

Author: Carl J Love, 2016-July-30

Run the tests

restart:

kernelopts(numcpus= 1):
currentdir(kernelopts(homedir)):

memory used=0.79MiB, alloc change=0 bytes, cpu time=2.66s, real time=2.66s, gc time=0ns

memory used=0.78MiB, alloc change=0 bytes, cpu time=2.26s, real time=2.26s, gc time=0ns

Analyze the data

restart:

currentdir(kernelopts(homedir)):

(R,C):= 'Vector(kernelopts(numcpus))' \$ 2:
N:= Vector(kernelopts(numcpus), i-> i):

while not feof(fd) do
(n,Tr,Tc):= fscanf(fd, "%m%m%m\n")[];
(R[n],C[n]):= (Tr,Tc)
end do:

fclose(fd):

plot(
(V-> <N | 100*~V>)~([R /~ max(R), C /~ max(C)]),
title= "Raw timing data (normalized)",
legend= ["real", "CPU"],
labels= [`number of processors\n`, `%  of  max`],
labeldirections= [HORIZONTAL,VERTICAL],
view= [DEFAULT, 0..100]
);

The metrics:

R[1] /~ R /~ N:          Gain: The gain from parallelism expressed as a percentage of the theoretical maximum gain given the number of processors

C /~ R /~ N:               Evenness: How evenly the task is distributed among the processors

1 -~ C[1] /~ C:           Overhead: The percentage of extra resource consumption due to parallelism

R /~ R[1]:                   Reduction: The percentage reduction in real time

1 -~ R[2..] /~ R[..-2]:  Marginal Reduction: Percentage reduction in real time by using one more processor

C[2..] /~ C[..-2] -~ 1:  Marginal Consumption: Percentage increase in resource consumption by using one more processor

plot(
[
(V-> <N | 100*~V>)~([
R[1]/~R/~N,             #gain from parallelism
C/~R/~N,                #how evenly distributed
R/~R[1]                 #reduction
])[],
(V-> <N[2..] -~ .5 | 100*~V>)~([
1 -~ R[2..]/~R[..-2],   #marginal reduction rate
C[2..]/~C[..-2] -~ 1    #marginal consumption rate
])[]
],
legend= typeset~([
'r[1]/r/n',
'c/r/n',
'1 - c[1]/c',
'r/r[1]',
'1 - `Delta__%`(r)',
'`Delta__%`(c) - 1'
]),
linestyle= ["solid"\$4, "dash"\$2], thickness= 2,
title= "Efficiency metrics\n", titlefont= [HELVETICA,BOLD,16],
labels= [`number of processors\n`, `% change`], labelfont= [TIMES,ITALIC,14],
labeldirections= [HORIZONTAL,VERTICAL],
caption= "\nr = real time,  c = CPU time,  n = # of processors",
size= combinat:-fibonacci~([16,15]),
gridlines
);

## Please bring back dsolve numeric method = mgear

Maple

In a recent conversation I explained whyLSODE was giving wrong results (http://www.mapleprimes.com/questions/210948-Can-We-Trust-Maple#comment230167). After a lot of confusions and weird infinite loops for answers, it turned out that Newton Raphson was not properly done.

Both LSODE and MEBDFI are currently incompletely implemented (only one iteration is done instead of Newton Raphson till convergence). Maplesoft should update the help files accordingly.

The post below explains how better results are obtained with method = mgear. To run the command mgear you will need Maple 6 or earlier versions. For lsode, any current version is fine.  Unfortunately Maple deprecated an algorithm that worked fine. From Maple 8, the algorithm moved to Rosenbrock methods for stiff equations. This is still not ideal.

If Maple had a working algorithm, I am hoping that Maplesoft folks would consider bringing it back in future versions. (At least with the same functionality as in Maple 6).

PLEASE NOTE, the issue is not with solving this example (Very simple). This example is chosen to show how a popular algorithm in the literature is wrongly implemented.

Here Maple's lsode is forced to take only one step and use first order back ward difference formula to integrate from 0 to 1.  LSODE mimics Eulerbackward using the options given below. The post shows that LSODE does not do Newton Raphson and just performs only iteration for nonlinear equations.

 > restart;
 > Digits:=15;
 (1)
 > eq:=diff(y(t),t)=-y(t);
 (2)
 > C:=array([0\$22]);
 (3)
 > C[9]:=1;
 (4)
 > sol:=dsolve({eq,y(0)=1},type=numeric,method=lsode[backfull],ctrl=C,initstep=0.1,minstep=0.1,abserr=1,relerr=1):
 > sol(0.1);
 (5)
 > subs(diff(y(t),t)=(y1-1)/0.1,y(t)=y1,eq);
 (6)
 > fsolve(%,y1=0.5);
 (7)

While for linear it gave the expected result, it gives wrong results for nonlinear problems.

 > sol1:=dsolve({eq,y(0)=1},type=numeric):
 > sol1(0.1);
 (8)
 > eq:=diff(y(t),t)=-y(t)^2*exp(-y(t))-10*y(t)*(1+0.01*exp(y(t)));
 (9)
 > sol:=dsolve({eq,y(0)=1},type=numeric,method=lsode[backfull],ctrl=C,initstep=0.1,minstep=0.1,abserr=1,relerr=1):
 > sol(0.1);
 (10)
 > subs(diff(y(t),t)=(y1-1)/0.1,y(t)=y1,eq);
 (11)
 > fsolve(%,y1=1);
 (12)
 > sol1:=dsolve({eq,y(0)=1},type=numeric):
the expected answer is correctly obtained with default tolerance as
 > sol1(0.1);
 (13)

The results obtained are worse than single iteration using jacobian.

 > eq2:=(lhs-rhs)(subs(diff(y(t),t)=(y1-1)/0.1,y(t)=y1,eq));
 (14)
 > jac:=unapply(diff(eq2,y1),y1);
 (15)
 > f:=unapply(eq2,y1);
 (16)
 > y0:=1;
 (17)
 > dy:=-evalf(f(y0)/jac(y0));
 (18)
 > ynew:=y0+dy;
 (19)

Following procedures confirm that it is indeed calling the procedure only at 0 and 0.1, with backdiag giving slightly better results.

 > myfun:= proc(x,y) if not type(x,'numeric') or not type(evalf(y),numeric)then 'procname'(x,y);     else lprint(`Request at x=`,x); -y^2*exp(-y(x))-10*y*(1+0.01*exp(y)); end if; end proc;
 (20)
 > sol1:=dsolve({diff(y(x),x)=myfun(x,y(x)),y(0)=1},numeric,method=lsode[backfull],ctrl=C,initstep=0.1,minstep=0.1,abserr=1,relerr=1,known={myfun}):
 > sol1(0.1);
 `Request at x=`, 0. `Request at x=`, 0. `Request at x=`, .1 `Request at x=`, .1 (21)
 > sol2:=dsolve({diff(y(x),x)=myfun(x,y(x)),y(0)=1},numeric,method=lsode[backdiag],ctrl=C,initstep=0.1,minstep=0.1,abserr=1,relerr=1,known={myfun}):
 > sol2(0.1);
 `Request at x=`, 0. `Request at x=`, 0. `Request at x=`, .1 `Request at x=`, .1 (22)

Next see how dsolve method = mgear works just fine in Maple 6 (gives the expected answer upto 3 Digits accuracy). To run this code you will need Maple 6 or earlier versions. Maple 7 has this algorithm, but I don't know to use it as it is hidden. I would like to get support from other members to get Maplesoft's attention to bring this algorithm back.

If Mdy/dt = f(y) is solved using mgear algorithm (instead of dy/dt =f ), then one can have a good DAE solver based on this (M being singular).

 > restart;
 > myfun:= proc(x,y) if not type(x,'numeric') or not type(evalf(y),numeric)then 'procname'(x,y);     else lprint(`Request at x=`,x); -y^2*exp(-y(x))-10*y*(1+0.01*exp(y)); end if; end proc;
 (1)
 > sol2:=dsolve({diff(y(x),x)=myfun(x,y(x)),y(0)=1},{y(x)},numeric,method=mgear[mstepnum],stepsize=0.1,minstep=0.1,errorper=1):
 > sol2(0.1);
 `Request at x=`, 0. `Request at x=`, .1 `Request at x=`, .1 `Request at x=`, .1 (2)
 >

by: Maple 15

General description of the method of solving underdetermined systems of equations. As a particular application of the idea proposed a universal method  kinematic analysis for all kinds of  spatial and planar link mechanisms with any number degrees of freedom.  The method can be used for powerful CAD linkages.
http://www.maplesoft.com/applications/view.aspx?SID=154228

## Points on the coordinate plane

by: Maple

Points on the coordinate plane

(Guidance manual for the 6th class)

Changing the initial coordinates and going through the entire program first, we get a new picture-task

And Another     Coordinate_plane.mws

## Points on the coordinate plane

by: Maple

Points on the coordinate plane

(Guidance manual for the 6th class)

Changing the initial coordinates and going through the entire program first, we get a new picture-task

And Another     Coordinate_plane.mws

by: Maple

by: Maple

## New version of the Multivariate Calculus Study...

by: Maple , Maple Toolboxes

We have just released a new version of the Multivariate Calculus Study Guide.  It provides a new section on Vector Calculus, with over 100 additional worked problems, and makes extensive use of Maple’s Clickable Math tools as well as commands.

Existing study guide customers can get the new content via a free update, available through the Check for Updates system or from our website. See Multivariate Calculus Study Guide 2016 Update for details.

eithne

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

by: Maple

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

## New developments on exact solutions for PDEs with...

by: Maple

Hi

New developments (after the release of Maple 2016) happened in the project on exact solutions for "Partial Differential Equations & Boundary Conditions". This is work in collaboration with Katherina von Bulow and the improvements are of wide range, representing a noticeable step forward in the capabilities of the Maple system for this kind of problem. As usual, these improvements can be installed in current Maple 2016 by downloading the updated library from the Maplesoft R&D webpage for Differential Equations and Mathematical functions (the update is distributed merged with the updates of the Physics package)

The improvements cover:

 • PDE&BC in semi-infinite domains for which a bounded solution is sought
 • PDE & BC problems in bounded spatial domains via eigenfunction (Fourier) expansions
 • Implementation of another algebraic method for tackling linear PDE & BC
 • Improvements in solving PDE & BC solutions by first finding the PDE's general solution.
 • Improvements in solving PDE & BC problems by using a Fourier transform.
 • PDE & BC problems that used to require the option HINT = `+` are now solved automatically

What follows is a set of examples solved now with these new developments, organized in sections according to the kind of problem. Where relevant, the sections include a subsection on "How it works step by step".

PDE&BC in semi-infinite domains for which a bounded solution is sought can now also be solved via Laplace transforms

Maple is now able to solve more PDE&BC problems via Laplace transforms.

How it works: Laplace transforms act to change derivatives with respect to one of the independent variables of the domain into multiplication operations in the transformed domain. After applying a Laplace transform to the original problem, we can simplify the problem using the transformed BC, then solve the problem in the transformed domain, and finally apply the inverse Laplace transform to arrive at the final solution. It is important to remember to give pdsolve any necessary restrictions on the variables and constants of the problem, by means of the "assuming" command.

A new feature is that we can now tell pdsolve that the dependent variable is bounded, by means of the optional argument HINT = boundedseries.

 >

Consider the problem of a falling cable lying on a table that is suddenly removed (cf. David J. Logan's Applied Partial Differential Equations p.115).

 >

If we ask pdsolve to solve this problem without the condition of boundedness of the solution, we obtain:

 >
 (1.1)

New: If we now ask for a bounded solution, by means of the option HINT = boundedseries, pdsolve simplifies the problem accordingly.

 >
 (1.2)

And we can check this answer against the original problem, if desired:

 >
 (1.3)

How it works, step by step

Let us see the process this problem undergoes to be solved by pdsolve, step by step.

First, the Laplace transform is applied to the PDE:

 >
 >
 (1.1.1)

and the result is simplified using the initial conditions:

 >
 (1.1.2)

Next, we call the function "laplace(u(x,t),t,s)" by the new name U:

 >
 (1.1.3)

And this equation, which is really an ODE, is solved:

 >
 (1.1.4)

Now, since we want a BOUNDED solution, the term with the positive exponential must be zero, and we are left with:

 >
 (1.1.5)

Now, the initial solution must also be satisfied. Here it is, in the transformed domain:

 >
 (1.1.6)

Or, in the new variable U,

 >
 (1.1.7)

And by applying it to bounded_solution_U, we find the relationship

 >
 (1.1.8)
 >
 (1.1.9)

so that our solution now becomes

 >
 (1.1.10)

to which we now apply the inverse Laplace transform to obtain the solution to the problem:

 >
 (1.1.11)

Four other related examples

A few other examples:

 >
 >
 (1.2.1)
 >
 (1.2.2)
 >
 >
 (1.2.3)
 >
 (1.2.4)
 >
 >
 (1.2.5)
 >
 (1.2.6)

The following is an example from page 76 in Logan's book:

 >
 >
 (1.2.7)

More PDE&BC problems in bounded spatial domains can now be solved via eigenfunction (Fourier) expansions

The code for solving PDE&BC problems in bounded spatial domains has been expanded. The method works by separating the variables by product, so that the problem is transformed into an ODE system (with initial and/or boundary conditions) problem, one of which is a Sturm-Liouville problem (a type of eigenvalue problem) which has infinitely many solutions - hence the infinite series representation of the solutions.

 >

Here is a simple example for the heat equation:

 >
 >
 (2.1)
 >
 (2.2)

Now, consider the displacements of a string governed by the wave equation, where c is a constant (cf. Logan p.28).

 >
 >
 (2.3)
 >
 (2.4)

Another wave equation problem (cf. Logan p.130):

 >
 >
 (2.5)
 >
 (2.6)

Here is a problem with periodic boundary conditions (cf. Logan p.131). The function  stands for the concentration of a chemical dissolved in water within a tubular ring of circumference . The initial concentration is given by , and the variable  is the arc-length parameter that varies from 0 to .

 >
 >
 (2.7)
 >
 (2.8)

The following problem is for heat flow with both boundaries insulated (cf. Logan p.166, 3rd edition)

 >
 >
 (2.9)
 >
 (2.10)

This is a problem in a bounded domain with the presence of a source. A source term represents an outside influence in the system and leads to an inhomogeneous PDE (cf. Logan p.149):

 >
 >
 (2.11)

Current pdetest is unable to verify that this solution cancells the  mainly because it currently fails in identifying that there is a fourier expansion in it, but its subroutines for testing the boundary conditions work well with this problem

 >
 >
 (2.12)

Consider a heat absorption-radiation problem in the bounded domain :

 >
 >
 (2.13)
 >
 (2.14)

Consider the nonhomogeneous wave equation problem (cf. Logan p.213, 3rd edition):

 >
 >
 (2.15)
 >
 (2.16)

Consider the following Schrödinger equation with zero potential energy (cf. Logan p.30):

 >
 >
 (2.17)
 >
 (2.18)

Another method has been implemented for linear PDE&BC

This method is for problems of the form

or

where M is an arbitrary linear differential operator of any order which only depends on the spatial variables .

Here are some examples:

 >
 >
 (3.1)
 >
 (3.2)

Here are two examples for which the derivative with respect to t is of the second order, and two initial conditions are given:

 >
 >
 (3.3)
 >
 (3.4)
 >
 >
 (3.5)
 >
 (3.6)

More PDE&BC problems are now solved via first finding the PDE's general solution.

The following are examples of PDE&BC problems for which pdsolve is successful in first calculating the PDE's general solution, and then fitting the initial or boundary condition to it.

 >

If we ask pdsolve to solve the problem, we get:

 >
 (4.1)

and we can check this answer by using pdetest:

 >
 (4.2)

How it works, step by step:

The general solution for just the PDE is:

 >
 (4.1.1)

Substituting in the condition , we get:

 (4.1.2)
 >
 (4.1.3)

We then isolate one of the functions above (we can choose either one, in this case), convert it into a function operator, and then apply it to gensol

 >
 (4.1.4)
 >
 (4.1.5)

Three other related examples

 >
 >
 (4.2.1)
 >
 (4.2.2)
 >
 >
 (4.2.3)
 >
 (4.2.4)
 >
 >
 (4.2.5)
 >
 (4.2.6)

More PDE&BC problems are now solved by using a Fourier transform.

 >

Consider the following problem with an initial condition:

 >

pdsolve can solve this problem directly:

 >
 (5.1)

And we can check this answer against the original problem, if desired:

 >
 (5.2)

How it works, step by step

Similarly to the Laplace transform method, we start the solution process by first applying the Fourier transform to the PDE:

 >
 >
 (5.1.1)

Next, we call the function "fourier(u(x,t),x,s1)" by the new name U:

 >
 (5.1.2)

And this equation, which is really an ODE, is solved:

 >
 (5.1.3)

Now, we apply the Fourier transform to the initial condition :

 (5.1.4)
 >
 (5.1.5)

Or, in the new variable U,

 >
 (5.1.6)

Now, we evaluate solution_U at t = 0:

 >
 (5.1.7)

and substitute the transformed initial condition into it:

 >
 (5.1.8)

Putting this into our solution_U, we get

 >
 (5.1.9)

Finally, we apply the inverse Fourier transformation to this,

 >
 (5.1.10)

PDE&BC problems that used to require the option HINT = `+` to be solved are now solved automatically

The following two PDE&BC problems used to require the option HINT = `+` in order to be solved. This is now done automatically within pdsolve.

 >
 >
 (6.1)
 >
 (6.2)
 >
 >
 (6.3)
 >
 (6.4)
 >