Matrix operations in MATLAB.pdf

Embed Size (px)

Citation preview

  • 7/27/2019 Matrix operations in MATLAB.pdf

    1/5

    9/17/13 Matrix operations in MATLAB

    www.imc.tue.nl/IMC-main/imc-main-node38.html

    Matrix operations in MATLAB

    With MATLAB it is possible to perform operations and commands on matrices. For this, MATLAB knows a lo

    of commands. A number of these operations will be/have been treated in the course Linear Algebra. At this

    moment, the following MATLAB operations are of importance.

    Multiplication

    The multiplication of two matrices is performed in a special manner. For a matrix and a

    matrix , we define the product of and to be the matrix

    , where

    So,

    The product of the matrices en can only be formed if the sizes of and are compatible: the number

    of columns of has to be equal to the number of rows of . If exists, does not need to exist. If

    as well as exists, we generally do not have that . Within MATLAB, the matrix

    product of and is always defined if either or is a number. Multiplication of a matrix by a number

    (scalar multiplication) boils down to multiplication of all matrix elements by that number. The symbol for matrix

    multiplication in MATLAB is *, i.e.,

    >> A*B

    Addition and subtraction

    Addition

  • 7/27/2019 Matrix operations in MATLAB.pdf

    2/5

    9/17/13 Matrix operations in MATLAB

    www.imc.tue.nl/IMC-main/imc-main-node38.html

    >> A+B

    and subtraction:

    >> A-B

    of two matrices and is performed by addition and subtraction of the separate elements of the matrix. In

    MATLAB, these operations are defined if the sizes of the matrices are the same or if one of the matrices is ascalar. In the latter case the scalar is added to or subtracted from every element of the matrix.

    Raising to a power

    The command

    >> A^p

    raises the matrix to the power. If is a positive integer, is calculated by repeated multiplication

    of by itself. The matrix needs to be square (i.e., the number of rows is equal to the number of columns) in

    order to be able to perform this operation.

    Transposition

    Let be an matrix. Then the transpose of , denoted by , is the matrix

    with . So:

    (4.2)

    In MATLAB, the command transpose(A) orA' (the latter only for real valued matrices) calculates the

    transpose of the matrix . To give an example:

    >> [1 2 3]'

    forms the column matrix:

    >> 1

    2

    3

  • 7/27/2019 Matrix operations in MATLAB.pdf

    3/5

    9/17/13 Matrix operations in MATLAB

    www.imc.tue.nl/IMC-main/imc-main-node38.html

    If the matrix contains complex, non-real, elements, then the command A' does not only reflect the matrix

    with respect to the diagonal, but it also takes the complex conjugate of every element. If you only want to

    calculate the reflection of with respect to the diagonal, you can do this with the command A.'. We illustrate

    this by means of two examples.

    >> A = [2+3*i 4+5*i

    2 3]

    A =2.0000+3.0000i 4.0000+5.0000i

    2.0000 3.0000

    >> A'

    ans =

    2.0000-3.0000i 2.0000

    4.0000-5.0000i 3.0000

    >> A.'

    ans =

    2.0000+3.0000i 2.0000

    4.0000+5.0000i 3.0000

    You need to take this into account when dealing with symbolic matrix elements (or you have to define your

    symbolic elements as reals).

    >> syms a b

    >> A = [a b

    1 2]

    A =

    a, b

    1, 2

    >> A'

    ans =

    [ conj(a), 1]

    [ conj(b), 2]

    >> A.'

    ans =

    [ a, 1]

    [ b, 2]

    No division

    A division operator is not defined for matrices. However, sometimes one needs to find a matrix such that

    for given matrices and , where and are of appropriate dimensions. This is

    discussed in Section 4.4.

    Matrix functions in MATLAB

    http://www.imc.tue.nl/IMC-main/IMC-main-node39.html#secsolv
  • 7/27/2019 Matrix operations in MATLAB.pdf

    4/5

    9/17/13 Matrix operations in MATLAB

    www.imc.tue.nl/IMC-main/imc-main-node38.html

    In this paragraph we mention some commands that have a matrix as their argument.

    The command:

    >> inv(A)

    calculates the inverse of a square matrix if is invertible, i.e., it calculates a matrix such that

    .

    If no inverse exists, MATLAB will give a warning the matrix is singular. Possibly, it will present a matrix, with Inf

    as elements, e.g.

    >> inv([1 1;0 0])

    Warning: Matrix is singular to working precision.

    ans =

    Inf Inf

    Inf Inf

    Sometimes, an inverse with finite elements is found by MATLAB, which may be inaccurate. In that case,

    MATLAB will present the following warning:

    >> inv([1e-8 0;0 1e8])

    Warning: Matrix is close to singular or badly scaled.

    Results may be inaccurate. RCOND = 1.000000e-016.

    ans =

    1.0e+008 *

    1.0000 0

    0 0.0000

    The command:

    >> det(A)

    calculates the determinant of . has to be a square matrix.

    The command:

    >> rank(A)

    gives the rank of the matrix .

    The command:

    >> eig(A)

    gives a vector containing the eigenvalues of the matrix . The matrix has to be square. This command is

    often used in the form

  • 7/27/2019 Matrix operations in MATLAB.pdf

    5/5

    9/17/13 Matrix operations in MATLAB

    www.imc.tue.nl/IMC-main/imc-main-node38.html

    >> [S,D] = eig(A)

    This results in matrices and , so that . Every column of is an eigenvector of , while

    is a diagonal matrix with diagonal elements equal to the eigenvalues of associated with the eigenvectors in

    the corresponding columns of .

    Remark: The commands above can also be used for symbolic matrices. However, you have to be aware of thefact that there are other matrix functions that cannot be used for symbolic matrices. Furthermore, there are also

    commands that can only be used for symbolic matrices.

    Previous Next Up Contents

    Esteur 2010-03-22

    http://www.imc.tue.nl/IMC-main/IMC-main-node1.html#Mainhttp://www.imc.tue.nl/IMC-main/IMC-main-node30.html#Ch4http://www.imc.tue.nl/IMC-main/IMC-main-node39.html#Ch4.4http://www.imc.tue.nl/IMC-main/IMC-main-node37.html#Ch4.2.5