Mac Dude

1581 Reputation

17 Badges

14 years, 265 days

MaplePrimes Activity


These are questions asked by Mac Dude

I have run into a problem with a file I am preparing for a class. The file is in Document mode with one large section and a number of subsections. Input is 2-d input.

The first subsection behaves normally, input is there, output is there and so on.

The second section does not display the input. The input is still there, somewhere, as the sheet recalculates properly and I can also see there is input when looking at the file with an editor. But no show in Maple.

The third subsection does not show input either.

The fourth subsection is normal again and shows input.

Each of these sections is several screens long. The file actually is an older one where I am adding subsections. The first one (that works normal) is a new one. The original file (before I edited it to add a subsection) works fine still.

So I assume I inadvertently did something that causes this, even though the old subsections are not being edited. I do load Physics[Vectors] but cannot believe that does it. The original file also loads it.

The file was created in Maple 15 and that is where I edited this one. I opened it in Maple 2015 on a different computer, but the behaviour is identical.

Again, the input is there somewhere; the sheet recalculates corrrectly, but I cannot edit the input in the sections that do not show it (I guess that is not a surprise, but it excludes things like a white font color on a white background as there is nothing to select).

Does anyone have a hint how to unhide the input? I tried many things (menu, contextual menu, prefs,...) but no help. It is actually kind-of annoying.

FWIW, this is on Mac OS X, 10.10.5 Yosemite for Maple 2015.1. And 10.5.8 for Maple 15.

Thanks,

M.D.

I have a polynomial expression that I would like to cast into a specific form. The expression is

and I know that it can be simplified into a form involving squares of (A[Qi]-Pi). It is trivial to do this on paper; how can I convince Maple to do this.

The solution I came up with was to use mtaylor and expand about the forms I know to be there:

mtaylor((3),[A[Q1]=P1,A[0]=P2*rho/(rho+Q1),A[Q3]=P3],6);

which is what I want (close to, anyway). Now, I consider this to be a bit of a dirty trick that works here as the expression is simple and no higher-order terms are present so in fact the solution is exact. But, are there methods along simplify and friends that can do this? I have not been successfull with those...

This is a part of a much longer worksheet and part of a lecture, so I need Maple to be able to do this. The mtaylor trick works, but I would not want to miss an obvious approach that may work where mtaylor would get confused.

Thanks,

M.D.

test.mw

I ran into a problem with define that I traced to the 'linear' option in the define statement, and I would like to know whether this is my lack of understanding define, or a bug.

I want to define a function called avg(parm) (which I never will need to use explicitly but  I need to be able to manipulate). This function has the property of being linear, and terms not depending on x can be pulled out. Also, avg(parm)=parm unless parm depends on x. (Yes, it stands for a kind of averaging, but that is not relevant here).

So I programmed it in this way:

define(avg,'linear','conditional'(avg(a::algebraic) = a, _type(a, freeof(x))),\
'conditional'(avg(a::(nonunit(algebraic))*b::(nonunit(algebraic))) = a*avg(b), _type(a, freeof(x))));

For the heck of it I could not get it to work. Basically, none of the equations in the definition were ever used, except that constant numeric factors were pulled out, as they should.

Eventually I found that the 'linear' option was the culprit. Once I got rid of that, the definition of avg did what I wanted it to do (like avg(a*x) => a*avg(x); avg(a) => a). The reason a constant numeric factor was pulled out before is because the 'linear' option does that; it never gets to my definitions (one can see that when printing avg).

Am I missing something fundamental here, or is define not working right?

For the record, I did this in Maple 15 on a PPC Mac. I don't have my Maple 2015 handy to test on that version.

Any insights?

Mac Dude

I have run into a "funny" feature of 2-D input: It seems to convert something like k/2 into this k*`^`(2,-1). While this would often not be an issue (it is correct after all), it becomes a problem when used in an argument list to a procedure. It becomes even more of a problem when, by chance, I have overloaded `^` to act on specific types that I have defined.

Let me try to explain briefly. I have a package called "Lattice" that does whatever it does (not of relevance here). I am writing a little manual for this package, for which I use 2-D input so I can write it in Maple and have the examples right in it and "live".

Here is what happens:

with(Lattice) # load the package

QFh:=Quad(0,kf/2) # Define an element for Lattice

Error, invalid input: Lattice:-`^` expects its 1st argument, element, to be of type Element, but received 2

Copy-pasting kf/2 into a 1-d worksheet, I get

QFh := Quad(0, kf*Lattice[`^`](2, -1));

So it uses Lattice[`^`] which actually appears to bypass the overload I have in the Lattice package. `^` is defined like this in Lattice:

`^`:=proc(element::Element,n::algebraic) option overload; # Element is a defined type in Lattice
...
end proc;

How can I possibly rewrite `^` to fall-back to Maple's ^ operator when called as Lattice[`^`] ?? I know there is a function overload() but have no experience with it. Would it even help?

Or am I missing something completely here? I do not use 2-D input for my usual work, but in this case I want and need to use it. The reason for its bizarre rewrite of "/2" is beyond me. Note that I can replace /2 by *0.5; but that causes problems later on for algebraic work as 1/2 is not 0.5 in Maple. I tried *1/2 but that has the same problem.

Has anyone a clean solution for this? I assume this effect is not limited to my own package but would affect others as well.

M.D.

PS: I ran into this using Maple 15 but I doubt it is specific to this particular version.

I ran into a problem with the physics package that I subsequently solved. But I am wondering whether this would be a candidate for an SCR and/or be considered a bug.

The calculation I am trying is actually (so far) very simple.

I define a Hamiltonian H:

H := sqrt(p_^2*c^2+m^2*c^4); # note the square of vector p_

p_:=p1*_i+p2*_j+p3*_k;

H;

So far so good. Now I want to take the differentials of H against the components of p:

diff(H,p1) assuming c::real;

Hmm... I am not sure why the p2 and p3 still show up; but then, the product between the unit vectors should be 0 for different ones and one for equal unit vectors so maybe this is ok.

But H behaves weird: I can simplify it:

but if I try to do anything with it, it barfs:

dH+0;

Error, (in Physics:-Vectors:-+) invalid operation * between vectors _i and _j

As it turns out the issue is the square of the vector p_. Maple (or rather, Physics) does not recognize that it needs to expand p_^2 as p_.p_ and seems to treat is like p_*p_.

I would like Edgardo---& others more experienced with the Physics package than I am---to look at this. I do not understand the Physics package well enough to judge whether overloading the exponentiation operator to make this work is the right thing.

The example works once I replace p_^2 by p_.p_. But the ^2 notation is fairly standard usage so it feels slightly awkward.

Thanks,

Mac Dude.

Derivation_of_H.mw

First 7 8 9 10 11 12 13 Last Page 9 of 24