Thomas Richard

Mr. Thomas Richard

1763 Reputation

12 Badges

9 years, 266 days
Maplesoft Europe GmbH
Technical professional in industry or government
Aachen, Germany

MaplePrimes Activity

These are answers submitted by Thomas Richard

This question comes up frequently, not just on MaplePrimes. Please see here.

Interesting equation! You can make some progress by the following intermediate steps:

eqn := 2*tan(Pi*t^2)-tan(Pi*t)+tan(Pi*t)*tan(Pi*t^2)^2 = 0;
ceqn := convert(eqn,exp);
sceqn := simplify(ceqn);
sol := solve(sceqn,t,allsolutions); # to see the structure of the solution space
a := Student[Calculus1]:-Roots(sceqn, t = -2 .. 2);
na := numelems(a); # returns 14, as confirmed by your plot

Not too elegant, but working.

About your first question:

Can you see the above link and download my worksheet?
I just had to press the Cancel button when done in the "Upload file" window, which is a bit counter-intuitive.

Otherwise please specify what you found no longer functional.

1) The most general solution (including -arccos(a) you requested) is obtained by adding option 'allsolutions' (or 'AllSolutions' if you prefer). Please see ?solve,details for background info.


2) That depends on the expression and the range. I'll leave it to other to comment on specific examples. An interesting one was recently discussed here, but I don't have the link, sorry.

You need to learn some basic Maple syntax. The assignment operator is := whereas = just forms an equation (which is another valid data structure in Maple). So try this:

a := 178: b := 312:
c := igcdex(a,b,'e','f');
14/c*e=x; 14/c*f=y;

AFAIR, on some machines there was an interference with the updates contained in that product installer. The following steps should resolve the problem:

1. Make sure no Maple or MapleSim session is running (check for mserver processes in the Task Manager).

2. Install the Maple 2015.2a update (in case of Windows or Linux, or 2015.2 for Mac OS X).

3. Install MapleSim 2015. Depending on when you purchased it, its installer may be at the 2015.1 or 2015.2 level. That should be displayed in the lower right corner of the splash screen.

4. If that is still at the 2015.1 level (check version.txt file in the license directory), install the MapleSim 2015.2a update (again, without the trailing 'a' in case of Mac OS X).

If the problem persists, please contact our tech support team and send your install logs, along with some details (OS version).

No, evalf is not permitted to discard any units. There is a helper routine convert/unit_free for that purpose:


I'm using 1D input here, but it works in 2D as well. There is also a context menu item "Units > Remove Units" which does essentially the same.


On a laptop with 20 GB RAM, I'm not getting any error message, but pdsolve gets stuck in triangularizing a system that arises when trying the TWS approach internally (set infolevel[pdsolve]:=5 to obtain that information). So I cancelled that after one hour, and tried a specific (additive) ansatz instead:



pde1 := diff(w(x,y,z),x)+diff(w(x,y,z),y,y)+2*(diff(v(x,y,z),x)-diff(u(x,y,z),y)-2*w(x,y,z)) = diff(w(x,y,z),z,z);

diff(w(x, y, z), x)+diff(diff(w(x, y, z), y), y)+2*(diff(v(x, y, z), x))-2*(diff(u(x, y, z), y))-4*w(x, y, z) = diff(diff(w(x, y, z), z), z)


pde2 := 3*diff(u(x,y,z),x,x)+2*diff(u(x,y,z),y,y)+2*diff(v(x,y,z),x,y)+2*diff(w(x,y,z),y) = diff(u(x,y,z),z,z);

3*(diff(diff(u(x, y, z), x), x))+2*(diff(diff(u(x, y, z), y), y))+2*(diff(diff(v(x, y, z), x), y))+2*(diff(w(x, y, z), y)) = diff(diff(u(x, y, z), z), z)


pde3 := 3*diff(v(x,y,z),y,y)+2*diff(v(x,y,z),x,x)+2*diff(u(x,y,z),x,y)-2*diff(w(x,y,z),x) = diff(v(x,y,z),z,z);

3*(diff(diff(v(x, y, z), y), y))+2*(diff(diff(v(x, y, z), x), x))+2*(diff(diff(u(x, y, z), x), y))-2*(diff(w(x, y, z), x)) = diff(diff(v(x, y, z), z), z)


sys := [pde1,pde2,pde3]:

fcns := [u(x,y,z),v(x,y,z),w(x,y,z)]:

add_sol := pdsolve(sys, fcns, HINT=`+`);

{u(x, y, z) = (1/2)*_C1*x^2+_C2*x+_C3+(1/2)*exp(2^(1/2)*y)*_C17+(1/2)*exp(-2^(1/2)*y)*_C16+(1/2)*(-3*_C1+_C7)*y^2+_C18*y+_C19+(1/2)*_C7*z^2+_C8*z+_C9, v(x, y, z) = (1/4)*exp(2*x)*_C13+(1/2)*(_C10-3*_C4)*x^2+_C14*x+_C15+(1/2)*_C4*y^2+_C5*y+_C6+(1/2)*_C10*z^2+_C11*z+_C12, w(x, y, z) = (1/2)*exp(2*x)*_C13+(-(3/2)*_C4+(1/2)*_C10)*x-(1/2)*2^(1/2)*exp(2^(1/2)*y)*_C17+(1/2)*2^(1/2)*exp(-2^(1/2)*y)*_C16+((3/2)*_C1-(1/2)*_C7)*y+sin(2*z)*_C23+cos(2*z)*_C22+(1/8)*_C10+(1/2)*_C14-(1/2)*_C18-(3/8)*_C4}



[0, 0, 0]


mult_sol := pdsolve(sys, fcns, HINT=`*`);

Warning,  computation interrupted




A multiplicative ansatz seems to take longer, or even get stuck again.

Where does this PDE system come from?

First, please make sure you have the latest updates Maple 18.02 and MapleSim 6.4.02.

If the problem persists, you can send your msim file (with the xls file inside, or additionally - see attachment options) to our Tech Support team, e.g. through menu item Help > Technical Support. Please note that MapleSim 6.4 is no longer officially supported, but perhaps the solution is easy. Also note that it's Thanksgiving in Canada today, so there will be a delay.

You can also try to upload your msim file here.

One issue that frequently appears with Excel is international language support and misinterpretation of decimal separators. If you use a decima comma instead, Maple (and thus MapleSim) will complain.


The settings you describe are stored in Maple's GUI initialization file. Its location and name depend on the platform. Under Windows it's \AppData\Roaming\Maple\<version>\Maple.ini below your home directory, which is typically C:\Users\<username>. Under Linux (and I guess Mac OS X as well), it's ~/.maple/<version>/maplerc (note that the directory is hidden, due to the leading dot; use "ls -lA" to see it).

First of all, the author writes that he has implemented one such decomposition in Sage, so you could contact him and ask for his code [his e-mail address is given at the end of the paper; his web server linked in the introduction is unreachable]. Perhaps it can be migrated to Maple.

Next, I wonder if it's really useful. I typed the three examples 2.5, 2.9 and 2.10 into Maple, and it has no trouble with iterated univariate PFDs (which are also mentioned in the reference to Stoutemyer's alternative decomposition). For convenience, I used lowercase x,y,z; all results in the paper are confrmed.



































If all sublists in A have length 2, this should be the easiest solution:

B,C := op(ListTools:-Transpose(A));

Sure, it's implemented for arbitrary p and q. You need to supply one list with p "upper" parameters, and one with q "lower" parameters, and the argument. Please see ?hypergeom for the whole story. A 3F2 example that has an elementary representation:


simplify(%);  # or simplify(%,hypergeom);

While I'm confident that Carl's answer fully addresses your question, let me please point out that Mathieu equations such as your eq1 are handled by dsolve - so perhaps a trigonometric expansion isn't even necessary? Just a guess.

[I'm currently away from my laptops and PCs, so I cannot run your code before Monday when back in the office.]

I would start with Chapter 15 of the Programming Guide. This can be found interactively in the Help browser's ToC or by entering ?ProgrammingGuide,Chapter15. [Of course, you're not supposed to know that link. Instead, you can simply search for terms like "parallel" etc.]

5 6 7 8 9 10 11 Last Page 7 of 31