tomleslie

5204 Reputation

15 Badges

9 years, 247 days

MaplePrimes Activity


These are questions asked by tomleslie

Whilst trying to debug another problem on this site, this one

https://www.mapleprimes.com/questions/225688-How-To-Compute-Inverse-Of-A-Matrix-For

I came across a Maple bug(?) which was so serious, I thought either

  1. I'm being more than usually dim
  2. it needs it's own entry here, so that others can check

Problem can be summarized as:

When using 2D input, can the '.' character be used for simple matrix multiplication???? Because it isn't working for me!

Entering the '.' character places a bold, midline dot between the two arguments, but executing the result gives "Error unable to parse". Converting to 1-D input, no issues - everything works as expected.I should also point out that

  1. I never normally use 2D-input for my own work
  2. the attached worksheet executes correctly in Maple 2017.3, X86 64 WINDOWS, Sep 13 2017, Build ID 1262472.

If this is reproducible then wtf!

restart; with(LinearAlgebra); kernelopts(version)

`Maple 2018.1, X86 64 WINDOWS, Jun 8 2018, Build ID 1321769`

(1)

A := RandomMatrix(2, 2); B := RandomMatrix(2, 2)

Matrix(2, 2, {(1, 1) = 44, (1, 2) = -31, (2, 1) = 92, (2, 2) = 67})

 

Matrix(%id = 18446744074378134462)

(2)

A.B

Error, unable to parse

"A*B;"

 

LinearAlgebra:-Multiply(A, B)

Matrix(%id = 18446744074378136502)

(3)

A:= RandomMatrix(2, 2);
B:= RandomMatrix(2, 2);
A.B

Matrix(2, 2, {(1, 1) = -32, (1, 2) = -4, (2, 1) = -74, (2, 2) = 27})

 

Matrix(2, 2, {(1, 1) = -93, (1, 2) = -72, (2, 1) = -76, (2, 2) = -2})

 

Matrix(%id = 18446744074378132406)

(4)

 

Download matMulProb.mw

In an unrelated thread, I provided the OP with some 1-D code, which contained the Array definition

TC:= Array(0...1001, fill=0)

Note the existence of three '.' characters in the range specification. This was a typo on my part, or my '.' key bounced, or something. The code containing the above definition "worked" with no problem, which, presumably, was why I didn't notice.

The Maple help does state (my emphasis)

Note that more than two dots in succession are also parsed as the range (..) operator.

although I wasn't making use of this fact - I just screwed up when typing the original.

The OP preferred to use 2-D input, and used cut-and-paste to transfer the above code, resulting in 2-D input, which is where the fun started. It seems(?) that when using 2-D input, more than two dots in succession is only interpreted as a straightforward range, if the total number of dots is even.

If the total number of dots is odd, then it appears(?) as if the 'final' dot is associated with the second number in the range as a 'decimal point', (so producing .1001 in the above example). This is then 'coerced/rounded' to an integer - ie it becomes '0', and the above Array definition is interpreted as

TC:= Array(0..0, fill=0)

Consequences in the following code are left to your imagination

Worth an SCR?

 

 

 

Important Question
Anyone figured out how to upload a worksheet since the revamp? Big green up-arrow appears no longer functional

Less important question
Mapleprimes input window can no longer be stretched horizontally - is this deliberate?

While debugging something unrelated to Maple, I noticed in Windows task manager that the process

C:\Program Files\Maple 2016\jre\bin

had a Memory(Private Working Set) of 2,251,088K - roughly 10x the memory footprint of any other running process.

Is this normal?

Not a real issue for me (machine has 16G ram) - but it just *looks* wrong

In case it matters I'm running Maple 2016.1 on Win7, 64bit

It seems as if arrays can only be displayed in 2-D form when the array dimensions start at 1.

Sometimes I want to construct arrays where an index starts from 0 (or other values). This is purely for my convenience in some problems. However such arrays do not display in 2-D form. Consider the displayed form of

Array(1..4,1..5,(i,j)->i+j);

Array(1..4,0..4,(i,j)->i+j);

Why doesn't the latter 'display' in 2-D form?

1 2 3 4 Page 2 of 4