acer

32490 Reputation

29 Badges

20 years, 8 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are replies submitted by acer

I changed this from a Question to a Post. The literal question, "Do I really have to go through all of his replies on the page?" seems rhetorical. Weakness of the Search mechanism of this site have been made several times in the past, and indeed I have complained before about the particular aspect mentioned.

@Fzen Using simplify(...,symbolic) has the drawback that you don't then know that some branchcut might not have been ignored. But I also don't get the required form from using your suggestion.

Duplicates of these homework questions may be deleted.

@vv That gives the transpose of the Matrix M that I had above. I believe that just means that the first 9 entries of the 10-valued PROJECTION substructure of a PLOT3D structure can be interpreted scanned as the columns of the rotation Matrix (rather that as its rows).

Your idea to use Explore is very nice. I attach a revision, which may demonstrate the (new, transposed) rotation Matrix alongside the action of plots:-display with the `orientation` option.

rot3dexplored.mw

@vv It doesn't help that Psi and Phi are switched in the main menubar, relative to the order in the `orientation` option.

Have I got the multiplication order ok in the attached sheet, or have I just confused myself?

I notice that when the GUI puts a 3D plot into a Plot Component it merges the ORIENTATION substructure and a 1-value PROJECTION substructure into a 10-value PROJECTION substructure. I wonder whether my interpretation of the GUI's notions are correct.

rot3d.mw

 

Have you tried running Maple 2015 or Maple 2016 on Windows XP and encoutered problems, and if so then how severe?  I mean 32bit Maple, if on 32bit XP, naturally. (I had a dual-boot 32/64bit XP machine once, but I don't think that use of 64bit XP was common...)

As far as I know, that kind of information was available in advance (respectively) of the M2015 and M2016 releases, as https://www.maplesoft.com/products/roadmap.aspx. I would like to see that information updated for "Maple 2017", and have mentioned that before on this site.

By the way, that roadmap page also indicates that people have reported success running Maple 2015/2016 on Windows XP. The removal of official support for Windows XP is therefore not the same kind thing at all as the dropping of the PowerPC OS X line (by no longer producing product installers for that hardware).

@Christopher2222 That's a Warning not an error, and is the one I referred to above (in step 5). However I did get the help pages to subsequently appear as long as I first closed all Maple GUI sessions completely, and then relaunched. Did you do that?

My final help query was lowercase ?advisor . I've noticed about two or three different ways (some in Maple, some in MS-Windows) recently where you use capitalized first letters on names even though instructions says otherwise. So I mention this for completeness.

@Markiyan Hirnyk As I explained, both those last two examples you show are due to the same underlying cause. I have reported the bug.

It should be fixable at least by augmenting the table comprehensively (if not by some more advanced mechanism to inspect :-solve).

Just to illustrate, using Maple 2016.1,

restart;

`assuming/keywords`[solve] := proc()
  `if`(nargs < 2, {}, indets([args[2 .. -1]], 'name')
  intersect
  '{:-maxsols, :-tryhard, :-allsolutions, :-explicit,
    :-useassumptions, :-conditionalsolutions,
    :-dropmultiplicity, :-AllSolutions}');
end proc:

RealDomain:-solve(sin(x) = 0, x, AllSolutions);

Pi*_Z1

RealDomain:-solve(sin(x) = 0, AllSolutions);

Pi*_Z2

RealDomain:-solve( exp(x*I) = -1, x, AllSolutions);

Pi

RealDomain:-solve( exp(x*I) = -1, AllSolutions);

Pi

RealDomain:-solve( evalc( exp(x*I) = -1 ), x, AllSolutions);

2*Pi*_Z3+Pi

RealDomain:-solve( evalc( exp(x*I) = -1 ), AllSolutions);

2*Pi*_Z4+Pi

 


 

Download RealDomainsolve.mw

@Christopher2222 I didn't say anything in those instructions about having, using, or needing an initialization file. And I have no idea what you have in yours.

Why not get rid of it entirely, and just use toolbox subfolders which kernel and GUI recognize automatically?

RealDomain:-solve is calling :-solve under `assuming` here, like so:

`assuming`([solve( exp(I*x) = -1,
                  x, AllSolutions )],
           ['real']);

That generates an error after `assuming` calls `assuming/names` which looks for special case names (upon which to not place assumptions) by querying the table entry `assuming/keywords`[solve]. Unfortunately that table only has information about the lowercase keyword parameters. Ie, (reformatting the output for legibility here),

eval(`assuming/keywords`[solve]);

   () -> `if`(nargs < 2, {},
              indets([args[2 .. -1]], 'name')
                intersect
              '{:-maxsols, :-tryhard, :-allsolutions, :-explicit,
                :-useassumptions, :-conditionalsolutions,
                :-dropmultiplicity}')

Since camelcase AllSolutions is not known to that mechanism, `assuming` places the `real` assumption on it, after which the parameter-processing for the :-solve command fails to recognize it as a keyword option. So it gets passed in as just another assumed name, and is processed as an extra argument. When variable `x` is also passed then AllSolutions~ is interpreted as an invalid argument and an error is emitted. And when argument `x` is not supplied then :-solve considers the assumed name AllSolutions~ to be the main solving-variable and returns NULL.

When lowercase allsolutions is passed to RealDomain:-solve, on the other hand, it gets special treatment under the `assuming` call and gets passed as-is onto :-solve, and is correctly processed as a valid keyword option.

So, a bug in `assuming`, I think. I am not sure whether it would be "better" for `assuming` to get an augmented `assuming/keywords` table, or whether the lookup mechanism could (sometimes?) be made to query robustly the parameter-specification of the target procedure (ie. op(1,eval(:-solve) or a ToInert form).

It may be that RealDomain:-solve has not been taught to properly handle the capitalized keyword AllSolutions, and so it treats it as a solving variable.

That might explain the NULL return. Ie. if RealDomain:-solve placed an assumption (of having the property real, say) on the name AllSolutions before passing arguments to top-level :-solve then the latter might not recognize it as being the special keyword option name.

restart;
RealDomain:-solve(exp(I*x) = -1, foo); # NULL

restart;
RealDomain:-solve(exp(I*x) = -1, AllSolutions); # NULL

restart;
RealDomain:-solve(exp(I*x) = -1, allsolutions); # weakness
                               Pi

Note that it did seem to handle the lowercase keyword option allsolutions as valid (even if it was not very effective). Here is another hint that particular kind of mix-up might be occuring:

restart;
RealDomain:-solve(exp(I*x) = -1, x, AllSolutions);
Error, (in assuming) when calling 'solve'. Received: 'invalid input:
 too many and/or wrong type of arguments passed to solve; first unused
 argument is AllSolutions'

I notice that these below do better for this particular example;

restart;
RealDomain:-solve( evalc( exp(I*x) = -1 ), x, allsolutions);
                         2 Pi _Z1 + Pi

restart;
RealDomain:-solve( {Re,Im}( exp(I*x) = -1 ), x, allsolutions);
                      {x = 2 Pi _Z1 + Pi}

It might be that RealDomain:-solve could be strengthened by careful application of such additional approaches.

Hmm. I just tried the following sequence or operations on a Windows 7 Pro machine at work, using 64bit Maple 2016.1 and it went well in the sense that I got a working .help database at the end.

1) Downloaded the .zip file and unpacked the three files .hdb, .lib, .ind.

2) Created a folder in Windows 7 corresponding to what the following 1D Maple notation command returns.

cat(kernelopts(':-homedir'),"/maple/toolbox/Advisor/");

3) Copied those three files to that new folder.

4) Closed all Maple GUI sessions, and relaunched 2016.1 Standard GUI. (I then saw the expected Warning about .hdb format being deprecated. And libname included that new folder.).

5) Issued this 1D Maple notation command (which produced one Warning about being unable to guess the preview of one sheet).

HelpTools:-Database:-ConvertAll(
     cat(kernelopts(':-homedir'),
         "/maple/toolbox/Advisor/"));

6) Closed all Maple GUI sessions, and relaunched 2016.1 Standard GUI.

7) Issued commands ?advisor  or ?crop etc, which displayed the right pages, with working links.

 

@Christopher2222 First you need to get the GUI to see your augmented libname upon (completely fresh) launch. I think that you need to sort that out first (and so far you haven't indicated otherwise).

If it then sees .hdb files it's supposed to emit a message about .hdb -> .help migration. It has properly done so in the past, for me.

@Christopher2222 I suggested putting a maple initialization file maple.ini (which augments libname, in order to have Maple find the three files) in the location returned by kernelopts(':-homedir'). I did not suggest putting simply placing the three files there.

@Christopher2222 Have you tried putting an initialization file "maple.ini" in the (MS-Windows) location returned by this command:

kernelopts(':-homedir');
First 291 292 293 294 295 296 297 Last Page 293 of 594