compute the product of Matrices, Vectors, and scalars - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Linear Algebra : LinearAlgebra Package : Standard : LinearAlgebra/Multiply

LinearAlgebra[Multiply] - compute the product of Matrices, Vectors, and scalars

Calling Sequence

Multiply(A, B, ip, outopt)

Parameters

A

-

Matrix, Vector, or scalar

B

-

Matrix, Vector, or scalar

ip

-

(optional) BooleanOpt(inplace); specifies if output overwrites input

outopt

-

(optional); constructor options for the result object

Description

• 

The Multiply(A, B) function computes the product A.B. The type of result that is returned depends on the type of A and B (see the table under Programming Note below).

• 

The inplace option (ip) determines where the result is returned. If given as inplace=true, the result overwrites the first argument. If given as inplace=false, or if this option is not included in the calling sequence, the result is returned in a new Matrix (or Vector).

  

If the first argument is a scalar, the computation is performed in place on the second argument (if possible). If both arguments are scalars, the inplace and constructor options parameters are ignored.

  

The condition inplace=true can be abbreviated to inplace.

  

The inplace option must be used with caution since, if the operation fails, the original Matrix (or Vector) argument may be corrupted.

• 

The constructor options provide additional information (readonly, shape, storage, order, datatype, and attributes) to the Matrix or Vector constructor that builds the result. These options may also be provided in the form outputoptions=[...], where [...] represents a Maple list.  If a constructor option is provided in both the calling sequence directly and in an outputoptions option, the latter takes precedence (regardless of the order).

• 

The inplace and constructor options are mutually exclusive.

• 

This function is part of the LinearAlgebra package, and so it can be used in the form Multiply(..) only after executing the command with(LinearAlgebra). However, it can always be accessed through the long form of the command by using LinearAlgebra[Multiply](..).

• 

This function has an equivalent shortcut notation, A.B (with the exception that LinearAlgebra[Multiply] treats any expression which is of type algebraic and not of type rtable as a scalar, while the dot operator only considers objects of type constant to be scalars).  For more information, see the dot operator.

  

 

  

Programming Note

  

This routine uses the types of A and B to choose the corresponding binary multiplication routine in the LinearAlgebra package. The parameter types, the corresponding result type, and the LinearAlgebra multiplication routine that is called are shown in the following table.

 

B

 

 

 

 

 

 

 

 

 

 

 

 

A

 

qXn

1Xn

qX1

 

 

 

 

Matrix

row Vector

col Vector

scalar

 

 

 

 

 

 

 

 

 

mXq

mXn Matrix

ERROR

mX1 col Vector

mXq Matrix

 

 

Matrix

MatrixMatrixMultiply

 

MatrixVectorMultiply

MatrixScalarMultiply

 

 

 

 

 

 

 

 

 

1Xq

1Xn row Vector

ERROR

scalar

1Xq Vector

 

 

row Vector

VectorMatrixMultiply

 

 

VectorScalarMultiply

 

 

 

 

 

 

 

 

 

mX1

ERROR

mXn Matrix (outer product)

ERROR

mX1  Vector

 

 

col Vector

 

OuterProductMatrix

 

VectorScalarMultiply

 

 

 

 

 

 

 

 

 

 

qXn Matrix

1Xn row Vector

qX1 col Vector

scalar

 

 

scalar

MatrixScalarMultiply

VectorScalarMultiply

VectorScalarMultiply

standard multiplication

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

Notes:

  

*  If either A or B are unrecognized types (not a Matrix, Vector, or scalar), an error is returned.

  

*  In the outer product case, the result is not constructed as a Matrix with the OuterProduct shape, but rather it is generated as a full rectangular Matrix.

Examples

withLinearAlgebra:

A:=n,0|0,n

A:=n00n

(1)

MultiplyA,A

n200n2

(2)

MultiplyA,2,inplace

2n002n

(3)

A

2n002n

(4)

r1:=3|2|1

r1:=321

(5)

c1:=x,y,z

c1:=xyz

(6)

Multiplyr1,c1

3x+2y+z

(7)

B:=Multiplyc1,r1

B:=3x2xx3y2yy3z2zz

(8)

MultiplyB,0,0,1

xyz

(9)

See Also

dot, LinearAlgebra[MatrixMatrixMultiply], LinearAlgebra[MatrixVectorMultiply], LinearAlgebra[ScalarMultiply], Matrix, type[BooleanOpt], type[scalar], Vector


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam