Thomas Richard

Mr. Thomas Richard

1768 Reputation

12 Badges

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

MaplePrimes Activity


These are answers submitted by Thomas Richard

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.]

I wouldn't say it's normal, but I can confirm it. There may be a memory leak in the JVM, I don't know for sure. AFAIK, some memory allocation rules are configurable through java_args in Maple's launch.ini, but I haven't tried it since the Java GUI was introduced many years ago (when memory sizes were much smaller).

My setup is similar to yours: same Maple and OS version, just with 20 GB RAM, and javaw.exe is at 3.3 GB now. But I had more than 50 tabs (up to 10 simultaneously) open in the same Maple session, with long-running calculations and heavy plots, so I wasn't surprised. Machine uptime is close to 27 days now.

The 'foci' option expects a list of two points (i.e. objects of the geometry package), whereas you just provided a list of two lists (with x,y coordinates). These are different data structures. So try this instead:

ellipse(e1, ['foci'=[point(p1,0,1),point(p2,4,1)], 'MajorAxis' = 8],[x,y]);

Most newer packages and their commands have a Compatibility section in their help page. Enter ?PolynomialTools,AnnihilatingPolynomial to see a detailed example, or ?CurveFitting,Lowess for a very short one.

For others, you can always ask here on MaplePrimes - though there is no guaranteed answer, of course.

It's possible to determine the parameter values, but the output (warning message and plot) will tell you that your model function is not really a good fit to your experimental data:

with(Statistics):
f := 1-(8*a*b+6*c*d/(b*k*x))/(2*a*b+c*b*(1/(b*k*x)));
X := Vector([seq(200+s,s=0..90,10)]):
xmin := min(X): xmax := max(X):
Y := Vector([.4172, .3030, .4668, .3317, .1276, .1303, .1733, .1451, .3466, .4125]):
nlfit := NonlinearFit(f, X, Y, x, output='parametervalues');
assign(nlfit);
a, b, c, d, k;
with(plots):
points := pointplot([X,Y]):
func := plot(f, x=xmin..xmax):
display(points,func);

Even a polynomial fit like f := a*x^4+b*x^3+c*x^2+d*x+e will do better. If you agree, try the PolynomialFit command instead and experiment with the degree.

In Maple 2016, the Worksheet package contains an undocumented command WorksheetToMapleText which takes an mw file and emits its "textual" content as centered strings. Not (yet) precisely what you asked for, but could be a start for your own post-processing. To view its implementation, use the eval or print command (after setting interface(verboseproc=2)) or showstat as usual.

I do not know the plans for the next version, but I would guess this command will be fully functional and documented then.

interface(worksheetdir);

Note: this feature is available since Maple 18.

I confirm tomleslie's observation that pdsolve gets stuck here; I cancelled it after lunch break (about 1h).

However, you can still find special types (or forms) of solutions. Just to give you a start:

infolevel[pdsolve]:=1: # optionally
pde[1] := diff(u(x, t), t)-DD*diff(u(x, t), x, x) = alpha*u(x, t)*(1-v(x, t));
pde[2] := diff(v(x, t), t)-EE*diff(v(x, t), x, x) = beta*v(x, t)*(1-u(x, t));
pdesys := [pde[1],pde[2]]:
with(PDEtools):

TWSols := TWSolutions(pdesys,parameters=[DD,EE,alpha,beta]);
numelems([TWSols]);
map(pdetest,[TWSols],pdesys);

SimSols := SimilaritySolutions(pdesys);
numelems([SimSols]);
map(pdetest,[SimSols],pdesys);

I've stopped here, but there are several other specialized commands in PDEtools, as you can see from its export list. You may have to play with command options to expand or to restrict their output.

Note: I replaced constant factor D by DD, as the former is the differential operator in Maple. For cosmetic reasons, I then replaced E by EE as well.

This limitation has been lifted in Maple 2016 (or 2016.1): CycleBasis(g1) returns [[1, 3, "a"]], and CycleBasis(g2) returns [[1, 3, a]].
So I suppose you are running an older version. I'm not aware of any workarounds for that.

If you click on any of the Linkage subsystems, you will see the length parameter L and its value under Parameters in the Properties pane. For instance, Linkage2 is using L=0.62, Effector is using L=0.1.

If you double-click to open the subsystem, you will notice that each of these linkages consists of two RBFs. The left one extends from 0 to -1/2*L (negative X direction), and the right one extends from 0 to 1/2*L (positive X direction). This principle is explained e.g. in Tutorial 4: "Modeling a Planar Slider-Crank mechanism".

Is that what you mean?

Measurements are typically imported to a MapleSim model via Interpolation Tables (Lookup or Time Table). These components can be found under the Signal Blocks palette. Supported file formats are Excel sheets (xls, xlsx) and Comma Separated Values (csv). The file(s) can become part of the model (i.e. attached inside the msim file), or be kept externally. Smaller data sets can also be "inlined".

Maple libraries cannot be imported directly into a MapleSim model (from a user perspective); MapleSim has its own notion (and file format) for component libraries. But you can attach a Maple worksheet to any model and then use all of Maple's features, including libraries. Then use the MapleSim API to link between model and analysis.

One way to achieve that is provided by the InertForm package, introduced in Maple 18:

given := w^2/(w^4+2*w^2+1);
with(InertForm);
wanted := Value(MakeInert(expand(numer(given)/w^2)/expand(denom(given)/w^2)));
given - normal(wanted);

@tomleslie You wrote:

The existence of the "indexed" arbitrary constant _c[2]: why is this an "indexed" constant? - particularly given that there is no _c[1] or _c[3]. I haven't seen an indexed constant returned by a call to pdsolve() before: and I have no idea why it is occurring in this case,

These are separation constants. Background: pdsolve applied an additive separation ansatz: F(x,y) = _F1(x) + _F2(y). [This can be seen after setting infolevel[pdsolve]:=3 or higher.] Roughly speaking: when following that route, you get an equation where one side depends on x only, and the other side on y only, so both sides equal a constant. Which leads to a system of ODEs, of course.

Another observation: when replacing the coefficient 0.3846153846 by 5/13 (as suggested by commands like identify or `convert/rational`), pdsolve finds a slightly different representation of the solution. Whether this is relevant here needs to be decided by the thread opener.
Unlike the dsolve command, pdsolve has no option 'convert_to_exact'. Could be useful here.

Unfortunately, custom components do not cover the Multibody domain in current MapleSim. There are plans to implement more features for beams, but I can neither give any details nor a timeline. Sorry.

This may depend on the details of your procedure f. So if you post it (or upload your worksheet in case the proc is too long), we should see what's happening.

Generic recommendation, given at the end of the ?TranslationDetails page: infolevel[CodeGeneration]:=5:

First 6 7 8 9 10 11 12 Last Page 8 of 31