Lecture 3: Special Matrices

Similar documents
Lecture 9: Elementary Matrices

Lecture 10: Powers of Matrices, Difference Equations

Matrix-Vector Operations

Differential Equations

Example: 2x y + 3z = 1 5y 6z = 0 x + 4z = 7. Definition: Elementary Row Operations. Example: Type I swap rows 1 and 3

Topic 15 Notes Jeremy Orloff

22A-2 SUMMER 2014 LECTURE 5

Matrix-Vector Operations

[Disclaimer: This is not a complete list of everything you need to know, just some of the topics that gave people difficulty.]

Final Review Sheet. B = (1, 1 + 3x, 1 + x 2 ) then 2 + 3x + 6x 2

Basic Linear Algebra in MATLAB

Math 291-2: Lecture Notes Northwestern University, Winter 2016

Lecture 5: Special Functions and Operations

Introduction to Parallel Programming in OpenMP Dr. Yogish Sabharwal Department of Computer Science & Engineering Indian Institute of Technology, Delhi

Lab 2 Worksheet. Problems. Problem 1: Geometry and Linear Equations

Designing Information Devices and Systems I Fall 2018 Homework 3

Linear Algebra Section 2.6 : LU Decomposition Section 2.7 : Permutations and transposes Wednesday, February 13th Math 301 Week #4

MIDTERM 1 - SOLUTIONS

Multiplying matrices by diagonal matrices is faster than usual matrix multiplication.

Math101, Sections 2 and 3, Spring 2008 Review Sheet for Exam #2:

Math 308 Midterm Answers and Comments July 18, Part A. Short answer questions

FF505 Computational Science. Matrix Calculus. Marco Chiarandini

Lecture 4: Applications of Orthogonality: QR Decompositions

Math 138: Introduction to solving systems of equations with matrices. The Concept of Balance for Systems of Equations

MATH 310, REVIEW SHEET

Dot Products, Transposes, and Orthogonal Projections

MATH 310, REVIEW SHEET 2

x 1 + x 2 2 x 1 x 2 1 x 2 2 min 3x 1 + 2x 2

Math 31 Lesson Plan. Day 5: Intro to Groups. Elizabeth Gillaspy. September 28, 2011

Solution to Proof Questions from September 1st

MAT 343 Laboratory 3 The LU factorization

Linear Algebra, Summer 2011, pt. 2

Getting Started with Communications Engineering

Section Matrices and Systems of Linear Eqns.

Lecture 5: Latin Squares and Magic

Usually, when we first formulate a problem in mathematics, we use the most familiar

Diagonalization. MATH 1502 Calculus II Notes. November 4, 2008

CMU CS 462/662 (INTRO TO COMPUTER GRAPHICS) HOMEWORK 0.0 MATH REVIEW/PREVIEW LINEAR ALGEBRA

Chapter 4. Solving Systems of Equations. Chapter 4

Numerical Methods Lecture 2 Simultaneous Equations

(x 1 +x 2 )(x 1 x 2 )+(x 2 +x 3 )(x 2 x 3 )+(x 3 +x 1 )(x 3 x 1 ).

Eigenvalues & Eigenvectors

Numerical Linear Algebra

Gaussian elimination

MATH 3511 Lecture 1. Solving Linear Systems 1

Vector Spaces. 9.1 Opening Remarks. Week Solvable or not solvable, that s the question. View at edx. Consider the picture

Problem Solving in Math (Math 43900) Fall 2013

Lecture 6: Lies, Inner Product Spaces, and Symmetric Matrices

Lecture 8: Determinants I

1 GSW Sets of Systems

LINEAR SYSTEMS, MATRICES, AND VECTORS

Chapter 2. Polynomial and Rational Functions. 2.5 Zeros of Polynomial Functions

Alex s Guide to Word Problems and Linear Equations Following Glencoe Algebra 1

Sequential Logic (3.1 and is a long difficult section you really should read!)

Announcements Wednesday, October 25

Numerical Methods Lecture 2 Simultaneous Equations

22A-2 SUMMER 2014 LECTURE Agenda

1300 Linear Algebra and Vector Geometry

Chapter 1 Linear Equations. 1.1 Systems of Linear Equations

I = i 0,

Sometimes the domains X and Z will be the same, so this might be written:

3 Fields, Elementary Matrices and Calculating Inverses

MATH 320, WEEK 11: Eigenvalues and Eigenvectors

MATH 320, WEEK 7: Matrices, Matrix Operations

A primer on matrices

CS173 Lecture B, November 3, 2015

Part III: A Simplex pivot

Numerical Linear Algebra

Solving Quadratic & Higher Degree Equations

Roberto s Notes on Linear Algebra Chapter 9: Orthogonality Section 2. Orthogonal matrices

PageRank: The Math-y Version (Or, What To Do When You Can t Tear Up Little Pieces of Paper)

Quadratic Equations Part I

Solving Quadratic & Higher Degree Equations

18.06 Quiz 2 April 7, 2010 Professor Strang

Recitation 9: Probability Matrices and Real Symmetric Matrices. 3 Probability Matrices: Definitions and Examples

LINEAR SYSTEMS (11) Intensive Computation

Calculus II. Calculus II tends to be a very difficult course for many students. There are many reasons for this.

Mon Feb Matrix algebra and matrix inverses. Announcements: Warm-up Exercise:

Q 2.0.2: If it s 5:30pm now, what time will it be in 4753 hours? Q 2.0.3: Today is Wednesday. What day of the week will it be in one year from today?

Linear Systems of n equations for n unknowns

Chapter 5. Matrices. 5.1 Basic matrix notation. This material is in Chapter 1 of Anton & Rorres.

Getting Started with Communications Engineering. Rows first, columns second. Remember that. R then C. 1

Determinants of 2 2 Matrices

Matrices MA1S1. Tristan McLoughlin. November 9, Anton & Rorres: Ch

A 2. =... = c c N. 's arise from the three types of elementary row operations. If rref A = I its determinant is 1, and A = c 1

The Singular Value Decomposition (SVD) and Principal Component Analysis (PCA)

Lecture 19: The Determinant

Math 290-2: Linear Algebra & Multivariable Calculus Northwestern University, Lecture Notes

Linear equations The first case of a linear equation you learn is in one variable, for instance:

Introduction to Determinants

Math/Phys/Engr 428, Math 529/Phys 528 Numerical Methods - Summer Homework 3 Due: Tuesday, July 3, 2018

CHAPTER 7: TECHNIQUES OF INTEGRATION

Numerical Methods I Solving Square Linear Systems: GEM and LU factorization

Chem 3502/4502 Physical Chemistry II (Quantum Mechanics) 3 Credits Fall Semester 2006 Christopher J. Cramer. Lecture 5, January 27, 2006

Illustration of Gaussian elimination to find LU factorization. A = a 11 a 12 a 13 a 14 a 21 a 22 a 23 a 24 a 31 a 32 a 33 a 34 a 41 a 42 a 43 a 44

Linear Algebra Review

Lecture 11: Linear Regression

Linear Algebra for Beginners Open Doors to Great Careers. Richard Han

Chapter 1: Linear Equations

Recitation 8: Graphs and Adjacency Matrices

Transcription:

Lecture 3: Special Matrices Feedback of assignment1 Random matrices The magic matrix commend magic() doesn t give us random matrix. Random matrix means we will get different matrices each time when we produce them. But magic(n) will give us the same n n matrix no matter how many times we run it. Besides rand() and randn(), you also can try randi() to get a random matrix with integer elements. Apostrophe When we copy and paste MATLAB code from a.pdf file, the notation apostrophe ( ) sometimes will be changed and the code will be not executed. The way to solve this problem is delete and retype it. Solving Ax=b Given two square matrices A and B. The main difference of the left division (commend: \ or mldivide()) and the right division (commend: / or mrdivide()) is that, for left division A\B or mldivide(a,b) = inv(a)*b and right division A/B or mrdivide(a,b) = A*inv(B). So when we want to solve the matrix system Ax = b for unknown x, the answer x will be A 1 b if A is invertible. Then the commend we should use is Review of Basic Matrix Functions A\b or mldivide(a,b). Let s start by reviewing some of the functions we ve covered in Lecture 1, as well as elaborate on combining these functions to generate more types of matrices. zeros() It s a good habit to initialize matrices with a matrix of all zeros. If we d like to make a matrix A that consists of only zeros, we can type >> A = z e r o s ( 3, 4 ) ; into the command window. This produces a matrix A of size 3 4 of zeros, i.e. 0 0 0 0 A = 0 0 0 0 0 0 0 0 1

ones() Another function which we ve seen previously is ones(), which generates a matrix with entries of 1. This is another useful way to initialize a matrix, but with nonzero entries. Set a 7 7 matrix B of all ones by typing >> B = ones ( 7, 7 ) ; which would produce a matrix that looks like 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 B = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 If your goal is to memorize as few functions as possible, there s another way to get a matrix like this using zeros(). Try typing >> Bnew = z e r o s ( 7, 7 ) + 1 ; This produces the same result. MATLAB interprets scalar addition to matrices as adding the scalar to each index. It s a nice shorthand to use. Similarly, we can modify the values by multiplication. Try >> C = B 5 ; in the command window. This has changed all of the entries to 5. Like addition, MATLAB interprets scalar multiplication as multiplication to each index of the matrix. eye() The last review function is eye(). This will give an identity matrix. Let s making a 7 7 identity matrix by typing >> E = eye ( 7 ) ; which would give 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 E = 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 2

We can also combine these simple matrices to make slightly more complex ones. Take, for example, B E. Then, we d get a matrix of the form 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 or maybe we d like to update the top left of B with A. Try typing >> B( 1 : 3, 1 : 4 ) = A; this should produce the updated matrix 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 This is a way to do block matrices, which will be discussed in the next section. diag() This is a function we ve yet to introduce and it has a couple nice properties. Initially, it sounds like a way to pull out the diagnoal entries of a square matrix. Indeed, it does this. Set the matrix M = magic(3), like before. Now, try >> d = diag (M) What s the result? It pulled out the diagonal entries of M and stored them as a column vector in d. In fact, it works with non-square matrices, but only up to the smallest size. So, for example, take the matrix 2 3 U = 4 5 6 7 and I type diag(u) into MATLAB, you should see 2 5 3

which are the diagonal entries of the matrix, starting at the top left corner. This may be useful when we talk about SVD in a week or two, so it is good to keep in mind. The function diag() also has a second use. It can be used to generate a matrix with diagonal entries, if the argument (the input inside the parantheses) is a vector. So, try >> diag ( [ 1 ; 1 ] ) What does that output? It should be an identity matrix of size two. Try something else. Let s try >> diag ( [ 1 : 7 ] ) We ve combined two ideas here. First note that [1 : 7] generates a vector starting at 1 and going to 7 by an increment of 1 each time. However, then we apply diag() to it, so we get a matrix with that vector as the diagonal. In other words, your command window should display 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 7 Feel free to try this with other vectors or functions and see what happens. Matrix Indexing and Block Matrices Before we begin, we should quickly mention how indexing works. If I have a matrix A of size m n, then m corresponds to the number of rows and n to the number of columns. To access an element of A, we use this same idea by picking the index corresponding to the row first, then column. So, if we have the matrix 1 2 3 A = 4 5 6 7 8 9 then A(2, 1) = 4 and A(3, 3) = 9, for example. Since (2, 1) corresponds to the second row and first column of matrix A, we get 4. Similarly, for 9. Further, we can access entire rows or columns, parts of these, or sub-matrices. For example, suppose we want the upper 2 2 matrix embedded in A, then we can type >> A( 1 : 2, 1 : 2 ) 4

and pull out the result 1 2 4 5 In the reverse, we can construct a matrix from other matrices. These sub-matrices are called block matrices. Try typing this into the command window: >> A1 = magic ( 3 ) ; A2 = z e r o s ( 3, 2 ) ; A3 = ones ( 2, 3 ) ; A4 = [ 5, 5 ; 3, 3 ] ; It s important to know and keep track of the size of these matrices. A1 is size 3 3, A2 is 3 2, A3 is 2 3, and A4 is 2 2. Now, suppose we want to create the 5 5 matrix A such that [ ] A1 A2 A = A3 A4 Notice that this is a consistent matrix that is made up of smaller matrices. In fact, we can also do this in MATLAB. To do so, write them down the same way you would scalar elements: >> A = [ A1, A2 ; A3, A4 ] and the result should print out A = 8 1 6 0 0 3 5 7 0 0 4 9 2 0 0 1 1 1 5 5 1 1 1 3 3 Again, keep the matrix sizes consistent. If we tried >> Anew = [ A1, A3 ; A2, A4 ] we d get an error. Why? Further, >> Anew = [ A1, A3 ; A2, A4 ] works. Why does this one work and the other doesn t? What s the difference between Anew and A? In general, if matrix A1 is size a b, then A2 needs to be a c and A3 needs to be c b, and then matrix A4 needing to stay consistent, needs to be size c c. Further, recall the idea of a diagonal matrix - a matrix that has non-zero elements only on its diagonal. This idea extends to block matrices, which we call block diagonal. If I have 5

sub-matrices A 1, A 2,...A n, then a block diagonal matrix A would satisfy A 1 0 0 0 0 A 2 0 0 A = 0 0 A 3 0,....... 0 0 0 A n Notice that there s no requirement on the sizes of this matrices. So, for example, 3 2 0 0 0 A = 1 5 0 0 0 0 0 1 3 6 0 0 2 4 5 is block diagonal, because A1 = [ ] 3 2, A2 = 1 5 [ 1 3 ] 6 2 4 5 make up the block diagonals, so that A = [ ] A1 0 0 A2 To produce the block diagonal matrix, if we have the diagonal matrices A1, A2, A3,, A n and we want to get A 1 0 0 0 0 A 2 0 0 A = 0 0 A 3 0,....... 0 0 0 A n we can create those zero matrices one by one or use the command blkdiag(). For example, We can get A1 0 0 A = 0 A2 0 0 0 A3 by using blkdiag(a1,a2,a3). Note: In this instance, zero s used here are matrices of zero such that the matrix size stays consistent. Further, notationally, it aligns well with the case of scalar diagonal matrices. 6

Upper and Lower Triangular Matrices We d now like to discuss two types of special matrices. Consider the matrix: 1 1 1 U = 0 1 1 0 0 1 This is called an upper triangular matrix. It s defined by any elements of matrix A below the diagonal being zero. In math terms, this is equivalent to U ij = 0 for all i > j, where U ij corresponds to the element in the i th row and j th column of matrix U. These have nice properties. One property that s easy to see is they are incredibly fast to solve linear equations of this form. Take matrix U and b = [3; 2, 1]. Then, solving Ux = b, we can just start at the bottom and work our way up, since: 1 1 1 x 1 3 0 1 1 x 2 = 2 0 0 1 x 3 1 We can see by looking at the bottom row that x 3 = 1. Then, we can plug that into the next step up and get that x 2 = 1 also, since x 3 = 1 and 2 1 = 1. Repeating for the top row, we have x 1 = 1. In fact, this is one of the main ideas behind Gaussian elimination (or row reduction), to perform matrix operations to get a matrix down to an upper triangular matrix, then again to get a diagonal matrix. Since it s fairly slow in terms of arithmetic operations, it s not used as commonly in practice. However, there are other algorithms that make use of upper triangular matrix properties to solve matrix equations much faster, especially if they have a specific form. But, not surprisingly, there are also matrices called lower triangular matrices. They might look like 1 0 0 U = 1 1 0 1 1 1 where now all the entries above the diagonal are zero. Again, in math speak, this means L ij = 0 for every i < j. There s also the definition of a unitriangular matrix, which means the diagonal has only ones (L ij = 1 for i = j). But, we won t really focus on those too much. Again, these matrices have nice properties. For example, they can be solve linear systems instead by working at the top of the rows and going down, which is the reverse of the upper triangular case. As an exercise, you may want to see how it works by solving Lx = b, with L and b defined above. 7

triu() Let s now learn some MATLAB functions that give triangular matrices. Our first example is on the function triu(). As the name implies, this will be giving us upper triangular matrices. So, first generate a matrix by typing >> A = [ 1, 2, 3 ; 4, 5, 6 ; 7, 8, 9 ] ; Alright, and now let s try >> U = t r i u (A) ; What happens? Well, the function sets the elements below the diagonal as zero. So, you should see U = 1 2 3 0 5 6 0 0 9 in the Command Window. This works on matrices that aren t square, too. Type, >> B = A( :, 1 : 2 ) into the Command Window. You should see B = 1 2 4 5 7 8 So, we ve just cut off part of A. Now, if you try triu(b), you ll see 1 2 0 5 0 0 So, it will still doing something that looks upper triangular, but starting at the top left corner and going down diagonally. This function has more features. We can also specify how much of the upper triangular matrix we want. Suppose we want everything above diagonal of A, but not the diagonal itself, and everything else zero. Well, we can do this by typing >> t r i u (A, 1 ) which looks like 8

0 2 3 0 0 6 0 0 0 Similarly, if we do triu(a,2), we see 0 0 3 0 0 0 0 0 0 The pattern should be clear. triu(a,k) means take the upper triangular matrix of A, but with k diagonals cut off. If k = 0, that s the same as triu(a). If k = 1, we take away the diagonal. If k = 2, we take the diagonal and the diagonal above it, etc. It also works in reverse, so if we set k = 1, we get the diagonal below the main diagonal too: >> t r i u (A, 1) 1 2 3 4 5 6 0 8 9 Again, this is a useful way of modifying matrix entries. Before, we could only modify by rows or columns. This allows us to modify things diagonally. tril() This function is similar to triu(), except now it generates lower triangular matrices. Using A as an example again, we try tril(a) and see >> t r i l (A) 1 0 0 4 5 0 7 8 9 We can also specify how many diagonals to keep using the syntax tril(a,k), where k is an integer. You should experiment with this to see how it works or how you can combine these functions to keep specific values in your matrix. For example, suppose we only want the top right and bottom left entry of matrix A. We can do this by summing two of these operations: 9

>> t r i u (A, 2 ) + t r i l (A, 2) 0 0 3 0 0 0 7 0 0 We could also only take the diagonal: >> t r i l ( t r i u (A) ) 1 0 0 0 5 0 0 0 9 You also can try the command triu(triu(a) ). There s a lot of different ways to keep the elements you want and disregard the rest. Much of your assignment focuses on understanding how you can use these functions to get the information you want and they might require some thought. Diagonal number k Here are a graph about the integer parameter k we ve used in commands triu() and tril(). k = 0 represnets the main diagonal, k > 0 is above the main diagonal, and k < 0 is below the main diagonal. k = 0 k > 0 k < 0 Symmetric Matrices A specific type of matrix, one which has a lot of nice properties, are symmetric matrices. A symmetric matrix is one such that the elements reflected along the diagonal are the same. 10

In math terms, A ij = A ji for every i and j. An example of a symmetric matrix would be 1 2 4 S = 2 5 3 4 3 7 Notice how if I folded the elements across the diagonal, they would be the same. All diagonal matrices are symmetric, for example. Similarly, an immediate result is A T = A. We can build symmetric matrices pretty easily. Take A above, and do the following: >> A + A 2 6 10 6 10 14 10 14 18 Notice it s symmetric. We could do similar with with just the upper triangular part. Try >> t r i u (A) + t r i u (A) 2 2 3 2 10 6 3 6 18 This is symmetric. However, triu(a) + triu(a ) is not. Why? But, if I do triu(a) + tril(a ), I get the same result as having done triu(a) + triu(a). You should be able to justify why this happens. I can also make it so that I keep the diagonal fixed. Suppose I want a symmetric matrix from A that only uses the upper half of the elements, but doesn t change the diagonal. We can do that by typing >> t r i u (A) + t r i u (A, 1 ) 1 2 3 2 5 6 3 6 9 Again, there s many other matrices that can be made using only these functions. Some of these will be part of your homework assignment. Remember, if you re stuck on how to use a function, you can type help triu, for example, to pull up documentation on the function. 11

Transpose and Conjugate Transpose We have used the command apostrophe ( ) a lot for the transpose of matrices. In fact, when we are using apostrophe on a matrix A, we are asking MATLAB to find the conjugate transpose matrix of A. Since we have only tried real matrices so far, the conjugate transpose of a real matrix is the same thing as the transpose of it. A real matrix means each element in this matrix is a real number. So let s see what A is if A is a complex matrix. complex number in MATALB To introduce the complex numers, first let s try a classic example to see if MATLAB can recognize the complex numbers or not: >> s q r t ( 1) 0.0000 + 1.0000 i which means 1 = i. So MATLAB understands what complex number is. A complex number can be expressed in the form a + bi, where a and b are real number and i is the imaginary unit. In this expression, a is the real part and b is the imaginary part of the complex number. We can type complex numbers in MATLAB directly. For instance, >> 1+2 i 1.0000 + 2.0000 i Here we don t need the multiplication notation (*) between 2 and i. The complex conjugate of the complex number a + bi is defined to be a bi. We use a bar to represent the conjugate of a complex number: a + bi = a bi The real part of a + bi and its conjugate are the same. But the imaginary part of the conjugate of a + bi is the changing sign of the imaginary part of it which is b. We can try this in MATLAB: >> (1+2 i ) 1.0000 2.0000 i 12

A transpose of a complex number is a complex conjugate of this complex number. Transpose Complex matrices Now, if A is a complex matrix (each element of A is a complex number), such as >> A=[1+2 i, 2+3 i ; 3 i, 3+4 i ] A = 1.0000 + 2.0000 i 2.0000 + 3.0000 i 0.0000 + 3.0000 i 3.0000 + 4.0000 i We can try A and see what happens: >> A 1.0000 2.0000 i 0.0000 3.0000 i 2.0000 3.0000 i 3.0000 4.0000 i We got the tranpose of matrix A and each element of A is the complex conjugate of the element of transpose of A. We also can use the command ctranspose() to get the same result: >> c t r a n s p o s e (A) 1.0000 2.0000 i 0.0000 3.0000 i 2.0000 3.0000 i 3.0000 4.0000 i But sometimes we really need the transpose of a matrix only even it is a complex matrix, we can add a dot (.) to help us: >> A. 1.0000 + 2.0000 i 0.0000 + 3.0000 i 2.0000 + 3.0000 i 3.0000 + 4.0000 i We only got the transpose of A without conjugating the elements. command transpose() for this: >> t r a n s p o s e (A) Also there is a 1.0000 + 2.0000 i 0.0000 + 3.0000 i 2.0000 + 3.0000 i 3.0000 + 4.0000 i 13

Exercises Given a matrix A=magic(5). 1. (Review of Basic Matrix Functions) Find a 5 5 matrix such that its diagonal entries equal the diagonal entries of A and other elements are all 1. 2. (Review of Basic Matrix Functions) Find a 3 3 matrix such that its diagonal entries equal the vector A(1, 1 : 3) and other elements are all 2. 3. (Upper and Lower Triangular Matrices) Find a 5 5 matrix of A but cut the top right and bottom left elements off and set these two elements equal 1. 4. (Symmetric Matrices) Find a 5 5 symmetric matrix C such that triu(c) is triu(a). 14