invalid arguments (in rtable Product) - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.
Our website is currently undergoing maintenance, which may result in occasional errors while browsing. We apologize for any inconvenience this may cause and are working swiftly to restore full functionality. Thank you for your patience.

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : System : Error Message Guide : invalid arguments (in rtable Product)

Error, (in rtable/Product) invalid arguments

 

Description

Examples

See Also

Description

For users of Maple 18 and earlier versions: This error is caused when the asterisk (*) is used for multiplying together Matrices or Vectors. Only a dot (period, or .) should be used in this case.

 

When you type an asterisk while in 2-D Math mode, this is displayed as a center dot  representing the commutative multiplication operator. In contrast, when you type the period, this is displayed as a lower dot . representing the dot operator, used for non-commutative or dot-product multiplication. The center dot is intended for scalar multiplication (including scalars multiplied with Vectors and Matrices), but not for non-commutative or dot-product multiplication. This is why the dot operator is needed for multiplying Vectors or Matrices together.

 

2-D Math is used throughout this help page (unless otherwise noted) so that examples using implicit multiplication (a space) can be shown.

Examples

Example 1

M  1,2|3,4

V  5,6

MV

Error, (in rtable/Product) invalid arguments

 

In this first example, M and V are assigned to a Matrix and Vector. When multiplication is attempted using the center dot, an error is returned. Here is the equivalent example using 1-D Maple Input (which shows the underlying Maple syntax):

M*V;

Error, (in rtable/Product) invalid arguments

 

Solution:

To fix the problem, the dot operator (period) should be used instead of the center dot (asterisk):

M.V

Here is the same solution using 1-D Maple Input:

M.V;

Example 2

f  a,b  a b:

fM,V

Error, (in rtable/Product) invalid arguments

 

Since Maple does not know that a and b are Matrices when the procedure is defined, it inserts the commutative multiplication operator (asterisk) internally where the space has been used for implicit multiplication. When a and b are then defined as Matrices, it returns an error because this operator cannot be used for multiplication of Matrices together.

 

Solution:

Use the dot operator to perform explicit multiplication. Here is a similar procedure that returns the expected result:

g  a,ba.b:

gM,V

Note that implicit multiplication does work for Matrices and Vectors outside a procedure or operator body. In the following examples, M and V are already defined as Matrices, so Maple correctly interprets the space to perform implicit multiplication of the Matrices together.

M M

M V

This is why it is common for people to attempt implicit multiplication inside a procedure. However, as can be seen in Example 2, those attempts fail and return an error.

 

Example 3

fA,BA+B:

gM,NMN:

f2,3,7,11 g1,1,1,1

Error, (in rtable/Product) invalid arguments

 

Implicit multiplication should always work if the items are already Matrices or Vectors. Outside of a procedure body, implicit multiplication will fail when multiplying together function calls that are intended to return Matrices and Vectors but which have not yet been computed. In this example, the 2-D Math parser did not know what type of objects the f and g function calls would return.

 

Solution:

Again, use the dot operator to perform explicit multiplication.

f2,3,7,11.g1,1,1,1

28

(2.1)

See Also

dot,  examples/LA_Syntax_Shortcuts, LinearAlgebra[Multiply], Student/LinearAlgebra/Operators