# Matlab and Numerical Approximation

**1 Introductory Remarks**

The primary purpose of this course is to provide the
students with the background and

necessary experience (by way of lots of practice) to feel comfortable using the
interactive

software Matlab. Learning any new software presents certain obstacles by way of
needing to

memorize new syntax and becoming familiar with the operating environment . Even
though

Matlab is quite easy to use once you get used to it, we must nevertheless spend
some time

at the beginning to becoming acquainted with the Matlab interface and syntax.
This will be

accomplished in several ways. First the text for the course is the Fourth
Edition of the \Matlab

Primer" by Kermit Sigmon. This book contains a brief but fairly complete
description of the

most elementary aspects of Matlab. Second there are several files in HTML format,
developed

by L. Schovanec and D. Gilliam which cover many topics in the use of Matlab.

**2 Xterminal and Matlab Basics**

1. To use the xterminals in the lab you must first login .

Directions will be given in class.

2. Next you must open a "command-tool" window or "xterm"
window. Please ask how to

do this if you don't know.

3. The operating system on our computer is UNIX. There
will only be a few cammands

for the operating system that you will need in this class.

4. For example, lets make a subdirectory for your m4330
(or m5344) work, e.g., type mkdir

m4330 . Of course you must then type (return) or (enter) which has the effect of
telling

the operating system to do what was previously typed.

5. Now change to the new subdirectory by typing,

cd m4330 .

6. To run Matlab, at the prompt, simply type matlab and
return and your interactive

matlab session will start.

7. In matlab every object is a complex matrix in which
real entries are displayed as real

and integer as integer.

8. There are several ways to enter a matrix into Matlabs workspace:

(a) You can type in the elements

A=[2 4 5;2 6 3;-1 6 2]

builds a 3×3 matrix. The entries are typed in rows (elements separated by a
space

or a comma) with a semicolon used to declare the beginning of a new row.

(b) You could also generate a matrix using the commands
rand(n) or rand(n,m) to

generate a random n by n or n by m matrix whose elements are normally
distributed

in 0 to 1.

(c) The commands

a=fix(10*rand(5))

b=round(10*rand(5))

generate 5 × 5 matrices with integer entries.

9. If A = [a_{ij} ] and B = [b_{ij} ] are n £m matrices and C
= [c_{ij}] is an m × p matrix, then we

have the following matrix arithmetic operations:

(a) A + B = [a_{ij} + b_{ij} ] and A - B = [a_{ij} - b_{ij} ]

(b) A * C = D where D is a n × p matrix with entries
For matrix

multiplication the number of columns of the first matrix must be the same as the

number of rows of the second.

(c) For a number α, the scalar product αA = [αa_{ij}]

For example

A=[1 2 5 ;-2 1 4]

B=[4 2 0 ;4 2 -7]

C=[3 6 ;-2 1 ;-4 2]

A+B

A*C

3*A

10. The usual rules of positive integer exponents applies
for square matrices, A^{2} = A * A,

11. In general, division of matrices makes no sense. But
for nonsingular square matrices is it

is possible to make an interpretation of matrix division. If A is nonsingular,
then it has

an inverse, i.e., a matrix A^{-1} satisfying A * A^{-1} = A^{-1} * A = I where I is
the identity

matrix with ones on the main diagonal and zeros elsewhere . The identity matrix
plays

the same role as the number 1 does for multiplication A* I = I *A = A. In Matlab
the

identity matrix is given by eye(n) where n is an integer. If A is nonsingular,
then the

inverse in matlab is given by inv(A) or A^(-1). In this case we can think of
division

as B * A^{-1} just as we do with numbers b ÷ a = b * a^{-1}
for numbers with a ≠ 0.

12. More generally, in this case, you can compute C=A^(-r).

A=[3 1;5 2]

A^(-1), inv(A)

A*A^(-1)

A=[3 1;5 2]

C=A^(-2)

C*A^{2}

13. A matrix has an inverse if and only if its determinant is not zero. Recall
the determinant

for a square matrix is a number. You can find the definition of the number in most
college

algebra books . In Matlab it is easy to compute determinants using the command
det.

A=[3 1;5 2]

d=det(A)

14. Recall for a 2 × 2 matrix

15. The problem of determining when a square matrix has an inverse is not easy
to answer.

The answer is that precisely the nonsingular matrices have inverses. There are
several

other characterizations of nonsingular given below. We will consider these
properties

with two examples

A=[3 1;5 2]

B=[3 1;6 2]

A matrix A is nonsingular if and only if any one of the following hold:

(a) detA ≠ 0

det(A)

det(B)

(b) The row reduced echelon form of A is the identity

rref(A)

rref(B)

(c) A has an inverse

inv(A)

inv(B)

(d) The only solution of the equation Ax = 0 is x = 0, i.e., the null space is
the zero

vector. The Matlab command \null" computes a basis for the null space. Note It

does not list the zero vector.

null(A)

null(B)

(e) The matrix A has full rank. If A is n × n then the rank of A is n.

rank(A)

rank(B)

16. Since we can do powers , scalar products and sums of matrices we can consider
matrix

polynomials. Here is an example. Suppose A is an n × n matrix, c is a (m+1)
component

row vector, then the matrix polynomial expression

17. Here is an example

A=[3 1;5 2]

c=[-3 2 -1 5]

f=c(4)*A^{3}+c(3)*A^{2}+c(2)*A+c(1)*eye(2)

g=A*(A*(c(4)*A+c(3)*eye(2))+c(2)*eye(2)) +c(1)*eye(2)

%Horner's method or synthetic division

18. Recall that a system of n linear equations in n unknowns has the form

which can also be written in matrix form as

Ax = b

where

19. A system of equations in this form can be solved in Matlab several different
ways. One

way is to use the \backslash" syntax x = A\b.

A=[3 1;5 2] | % | setup A |

b=[2;-9] | % | setup b |

x=A\b | % | solve Ax=b |

A*x-b | % | check the result |

20. This system can also be solved by writing the augmented matrix [A b] and
computing

the row reduced echleon form. The last column is the solution.

A=[3 1;5 2] | % | setup A |

b=[2;-9] | % | setup b |

C=[A b] | % | setup augmented matrix |

rref(C) | % | compute row reduced echleon form |

21. A system of equations in the form xA = c where x and c are row vectors can
be solved

in Matlab using the "forwardslash" syntax x = c/A.

A=[3 1;5 2] | % | setup A |

c=[2 -9] % | % | setup c |

x=c/A % | % | solve xA=c |

x*A-c % | % | check the result |

22. Additional information and examples can be found in the Matlab Primer and/or
accessing

on-line tutorial files on the webb using netscape.

23. For the assignment below it will be very useful to use the
"diary" command
in Matlab.

The command is used to save input and output into a text file. The syntax diary
on

turns copying on and diary off turns copying off. You can turn diary on and off as
you

please and each time it is turned on the new data will be appended to the
current diary

file in you subdirectory. The diary file can be loaded into a word processor and
edited.

Prev | Next |