Thomas Richard

Mr. Thomas Richard

1828 Reputation

12 Badges

10 years, 102 days
Maplesoft Europe GmbH
Technical professional in industry or government
Aachen, Germany

MaplePrimes Activity

These are answers submitted by Thomas Richard

There are many ways to obtain this, and your approach using indets with option 'function' is a good first step, IMHO. To proceed:

eq := diff(x(t), t) = x(t) + 1;
ief := indets(eq,'function');
remove(has, ief, 'diff');

Since dot releases (aka minor updates) typically do not introduce any new functionality, we do not document their changes as extensively as we do with the "What's New" pages for major versions.

For a summary, please see Eithne's announcement or the download page linked from there.

You supplied IBC as a set, and PDE outside that set, but pdsolve expects one set (or list) of equations. So if you define IBC as a sequence and then wrap PDE and IBC into a set (or list), pdsolve will be happy with that input.

IBC := u(-Pi,t)=u(Pi,t), (D[1](u))(-Pi, t) = (D[1](u))(Pi, t),u(x,0)=sin(x);
sol := pdsolve([PDE,IBC]);
pdetest(sol,[PDE,IBC]); # optional check


Yes, this feature was introduced in Maple 14 and has been expanded several times, just again recently. Please see ?pdsolve,boundaryconditions and - if you have the new Maple 2017 - also ?updates,Maple2017,PartialDifferentialEquations.

No, these are very different applications. Use the right tool, as Robert Lopez would say. ;-)

You can model e.g. a motor in MapleSim - which is technically an add-on to Maple - and export it into an S-function using our MapleSim Connector ( .

Conversely, you can "tap" a Simulink model via BlockImporter ( and import the equations into Maple (roughly speaking).

If that's not what you need, please specify.

This will be fixed in the next version. Thank you for bringing it to our attention.

For bug reports, it's best to use the SCR form (Software Change Request) under the More drop-down menu.

Adding option format="CSV" to the Import call will return data as a DataFrame. Then data[1] is a DataSeries, which can be converted into the requested Vector:

data := Import("",format="CSV"): # colon!
vec := convert(mat,Vector);

Perhaps the number of steps can be reduced; I haven't tried thoroughly.

First, if you want to use j as the imaginary unit, then say


You can then enter j directly, or still use the j (or i or I) symbol from the Common Symbols palette.

Next, you will have to attach a unit to j*u as well. I'm using 1D input here:

sol := solve(12*Unit(V)=abs(5*Unit(V)+j*u*Unit(V)),u);

In the future, please post code snippets so that we can copy&paste your input, or upload your worksheet if it's longer than a few lines.

The simplify command needs a little help here, so that the pattern Ei(1,z)+Ei(1,-z) can be fully recognized:

expr2 := Ei(1, I*BW*Pi*deltas-(5*I)*BW*Pi*ts)-Ei(1, -I*BW*Pi*deltas+(5*I)*BW*Pi*ts);
f2 := factor(expr2);
s2 := simplify(f2) assuming real, BW > 0, deltas > 0, ts > 0, deltas <= ts, 2*BW*ts >= 1;

I think the assumptions can be reduced, by the way.

About the Gömböc (or Gomboc for all those people with limited keyboard layouts, haha), please see I think you can contact the authors and ask them for their Maple worksheet(s).

Searching for Gomboc on our corporate web site yields some more results.

This is a side effect of the sum command being more cautious since Maple 2016; please see Help > What's New > Advanced Mathematics > Symbolic Summation. Or visit the online help page

So, to obtain the behaviour of Maple 2015 and before, either add the new 'formal' option to the sum calls, or set an environment variable:


This is a side effect of mixing up two types of indexing: the normal way (with square brackets) and the so-called programmer indexing (with parentheses). The latter should be used only if you really know what you do.

So the following corrected code works:

for k from 0 to m do
    X[k+1] := GAMMA(k*alpha+1)*(a*X[k]-b*(sum(X[s]*Y[k-s], s = 0 .. k)))/GAMMA(k*alpha+1+1);
    Y[k+1] := GAMMA(k*alpha+1)*(-c*Y[k]+d*(sum(X[s]*Y[k-s], s = 0 .. k)))/GAMMA(k*alpha+1+1)
end do;

For larger values of m, you may also consider replacing sum by add, but that's a different topic.

First of all, using the solve command for a polynomial of high degree and with purely numeric coefficients doesn't make much sense. So let's try fsolve instead. I left that running during today's lunch break, and it got stuck. Which is not a surprise, because finding roots of this polynomial is a terribly ill-conditioned numerical problem, as you can see when setting infolevel[fsolve]:=5 before calling fsolve. Hence more advanced methods are required, and some of them are implemented in the RootFinding package. For a start, I obtained two complex roots with

sols := Analytic(aq,beta,-15-15*I..15+15*I);

To expand that, you will need to play with the range and perhaps with the options; please see ?Analytic for more info.
Good luck!


 Not sure if I understand your question correctly, but here's my suggestion:

expand(%); # optionally

If this is not what you expected, please specify.

For direct evaluation of finite sums with given bounds, add is typically recommended:


You can skip the value(S) call then.

I think you need the labeldirections option. Please see ?plot,options for the documentation. Here's a shortened example from that page:

plot(cos, -Pi..Pi, labels = ["x values", "y values"], labeldirections = ["horizontal", "vertical"]);


4 5 6 7 8 9 10 Last Page 6 of 32