invalid arguments (in rtable Product) - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Mozilla Firefox.

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

> 

M⋅V

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,b→a.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

> 

f≔A,B→A+B:

> 

g≔M,N→M−N:

> 

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