31 views

Uploaded by Boris

MatLab assignment describing functions related to linear algebra.

- hw6_2011_05_16_01_solutions
- Lecture 10
- Determinants and Matrix Inversion
- moi
- Intro Max
- Konev-Linear Algebra Vector Algebra and Analytical Geome
- Chong
- Lecture on Gauss_seidal
- ppt_002
- Lecture 1 - Slides
- Math 15 week 4-
- 1st sem sy
- Commands in Maple
- Rudiments of Io Analysis
- March_03
- Domino Tilings
- Edexcel 2009 Jun FP1 Mark Scheme
- Exp 2
- The Matrix Cookbook2012
- MATHAMATICS-12

You are on page 1of 9

% Boris Yekaterinoslavskiy

% 1342

% Section C3

% Math 250 MATLAB Lab Assignment #3

%

rand('seed', 1342)

%

% Question 1(a)

%

% We will begin by generating a random 3x3 matrix A and

% calculate its principal minors.

A = rand(3), A(1,1), det(A(1:2,1:2)), det(A)

A =

0.3238 0.5514 0.6294

0.9692 0.9865 0.7896

0.2306 0.7936 0.5374

ans =

0.3238

ans =

-0.2150

ans =

0.1229

% The three minors above are nonzero, so A = LU

% factorization is possible.

% We create a matrix U and set it equal to A so we can

% reduce it to an upper triangular matrix later on.

U = A;

% Using the col1.m file, we can create a lower triangular

% unit matrix based on U.

col1

L1 =

1.0000 0 0

-2.9933 1.0000 0

-0.7122 0 1.0000

% We use L1 above and multiply it with U to obtain the

% upper triangular matrix's first column of zeros below

% the main diagonal.

U = L1*U

U =

0.3238 0.5514 0.6294

-0.0000 -0.6639 -1.0942

0 0.4010 0.0892

% We used col1.m to perform row operations on a 3x3

% identity matrix using values from the old U to get a new

% U. The first operation is to take the second row and

% subtract the first row multiplied by u21/u11, into the

% second row. The second operation is to take the third

% row and subtract the first row multiplied by u31/u11,

% into the third row.

%

% Question 1(b)

%

% Now we will continue to reduce U so that the second

% column has a zero below the main diagonal. To do this,

% we use the col2.m file to produce L2 to multiply it with

% the matrix U from (a).

col2

L2 =

1.0000 0 0

0 1.0000 0

0 0.6040 1.0000

U = L2*U

U =

0.3238 0.5514 0.6294

-0.0000 -0.6639 -1.0942

-0.0000 0 -0.5717

% L2 is also a 3x3 identity matrix that we created to

% modify U. The only row operation is to take the third

% row and subtract the first row multiplied by u32/u22,

% into the third row.

% We can verify that U is indeed the upper triangular matrix

% of A by multiplying A with L2 and L1 in that order.

U = L2*L1*A

U =

0.3238 0.5514 0.6294

-0.0000 -0.6639 -1.0942

-0.0000 0.0000 -0.5717

%

% Question 1(c)

%

% To complete the A = LU factorization, we need the lower

% triangular matrix, L. We can take the inverses of L1 and

% L2 and multiply them together to form L.

inv(L1), inv(L2), L = inv(L1)*inv(L2)

ans =

1.0000 0 0

2.9933 1.0000 0

0.7122 0 1.0000

ans =

1.0000 0 0

0 1.0000 0

0 -0.6040 1.0000

L =

1.0000 0 0

2.9933 1.0000 0

0.7122 -0.6040 1.0000

% Now that we have L, we can multiply it with U and it

% should give us the original matrix A.

A = L*U

A =

0.3238 0.5514 0.6294

0.9692 0.9865 0.7896

0.2306 0.7936 0.5374

%

% Question 2(a)

%

% To find the inverse of L, we know that from 1(c),

% L = inv(L1)*inv(L2). Using one of the inverse properties,

% we know that inv(A*B) = inv(B)*inv(A) and that the inverse

% of an inverse is the original matrix. Therefore, to find

% the inv(L), we take L2 and multiply it by L1.

L2*L1

ans =

1.0000 0 0

-2.9933 1.0000 0

-2.5200 0.6040 1.0000

% We can confirm with inv(L) below.

inv(L)

ans =

1.0000 0 0

-2.9933 1.0000 0.0000

-2.5200 0.6040 1.0000

% We can also find the inverse of U below.

inv(U)

ans =

3.0884 2.5651 -1.5095

0.0000 -1.5063 2.8831

-0.0000 -0.0000 -1.7492

% We can note that the inverses of both matrices are still

% in their respective triangular forms.

%

% Question 2(b)

%

% We will generate a random vector b in R3, using the

% rvect function from the second lab.

b = rvect(3)

b =

1

8

5

% We can find a solution c from L*c = b by multiplying the

% inverse of L with b.

c = inv(L)*b

c =

1.0000

5.0067

7.3118

% Using c, we can calculate the solution x from U*x = c.

x = inv(U)*c

x =

4.8936

13.5387

-12.7897

% x should be the solution to A*x = b. To confirm this, we

% can multiply A with x and our result should match b.

A*x

ans =

1.0000

8.0000

5.0000

%

% Question 3(a)

%

% We will generate a random matrix A and a vector b both

% in R500. We will also calculate the LU decomposition of A.

A = rand(500); b = rand(500,1); [L U] = lu(A);

% We will rref the augmented matrix [A b] and set y as the

% reduced column b.

tic; R = rref([A b]); y = R(:,501); toc

Elapsed time is 3.984523 seconds.

% We will define the elapsed time as rreftime.

rreftime = 3.984523;

%

% Question 3(b)

%

% Now we will solve A*x = b using the LU decomposition

% method and record the calculation time as well.

tic; c = inv(L)*b; x = inv(U)*c; toc

Elapsed time is 0.158759 seconds.

% We will set the elapsed time as lutime.

lutime = 0.158759;

% We can check to see if x and y are the same up to a

% certain round-off error.

norm(x - y)

ans =

3.2757e-11

% We can see that the error is negligible and thus, x = y.

%

% Question 3(c)

%

% If the calculation time for Gaussian elimination method

% and LU decomposition method are 2*c*(n^3)/3 and

% 2*c*(n^2) respectively, then the theoretical ratio for

% both times (rreftime/lutime) is n/3.

% The theoretical ratio for n = 500 is:

500/3

ans =

166.6667

% The observed ratio using the times from (a) and (b) is:

rreftime/lutime

ans =

25.0979

% The difference between the theoretical and observed

% ratios differ by a factor of 6, but that can be expected

% with matrices in Rn with a very large n.

%

% Question 4(a)

%

% The function file cofactor.m calculates the matrix of

% cofactors of a square matrix. We will generate a random

% 4x4 matrix using rmat function from the second lab and

% use the cofactor function to calculate the matrix from it.

a = rmat(4,4)

a =

2 4 9 5

9 5 0 3

2 4 1 5

7 3 8 4

c = cofactor(a)

c =

-93.0000 297.0000 78.0000 -216.0000

8.0000 216.0000 0 -176.0000

5.0000 -177.0000 -78.0000 280.0000

104.0000 -312.0000 0 208.0000

% Now we can calculate four sums below.

a(1,1)*c(1,1) + a(1,2)*c(1,2) + a(1,3)*c(1,3) + a(1,4)*c(1,4)

ans =

624

a(2,1)*c(2,1) + a(2,2)*c(2,2) + a(2,3)*c(2,3) + a(2,4)*c(2,4)

ans =

624.0000

a(1,3)*c(1,3) + a(2,3)*c(2,3) + a(3,3)*c(3,3) + a(4,3)*c(4,3)

ans =

624.0000

a(1,4)*c(1,4) + a(2,4)*c(2,4) + a(3,4)*c(3,4) + a(4,4)*c(4,4)

ans =

624

% The above four sums all solve for the determinant of the

% 4x4 matrix a. All four sums represent the cofactor

% expansion of each row. Therefore, no matter what row we

% can expand on, we will get the same answer for the

% determinant of a.

% We can check using the internal MATLAB function det to see

% if the result is the same.

det(a)

ans =

624.0000

%

% Question 4(b)

%

% We will generate a random 5x5 matrix and its upper

% triangular matrix.

A = rmat(5,5), U = triu(A)

A =

0 8 5 7 0

2 0 3 5 6

8 9 5 5 9

1 0 2 8 6

2 5 3 4 0

U =

0 8 5 7 0

0 0 3 5 6

0 0 5 5 9

0 0 0 8 6

0 0 0 0 0

% We can calculate the product of the diagonals for both

% matrices.

A(1,1)*A(2,2)*A(3,3)*A(4,4)*A(5,5)

ans =

0

U(1,1)*U(2,2)*U(3,3)*U(4,4)*U(5,5)

ans =

0

% According to Theorem 3.2, the determinant of an upper or

% lower triangular matrix is the product of its diagonal

% entries. So the second product above tells us that the

% determinant of U is 0. The product of the diagonal entries

% of A does not tell us anything about the determinant of A.

% Even though the product is also 0, it is because three of

% the diagonal entries are 0.

% We can confirm the determinants of both matrices below.

det(A), det(U)

ans =

-2.2620e+03

ans =

0

%

% Question 4(c)

%

% We will generate another 5x5 matrix A and then swap the

% first and second rows to get a matrix B.

A = rmat(5,5)

A =

4 2 7 1 3

0 2 1 2 8

5 2 4 2 4

2 3 9 8 0

6 2 1 8 4

B = A; B(2,:) = A(1,:); B(1,:) = A(2,:)

B =

0 2 1 2 8

4 2 7 1 3

5 2 4 2 4

2 3 9 8 0

6 2 1 8 4

% If we swap two rows of A, then the determinant of B is

% the opposite sign of A. We can confirm below.

det(A), det(B)

ans =

-1.0620e+03

ans =

1.0620e+03

% We will form a matrix C by multiplying the first fow of A

% by 10 and adding it to the second row.

C = A; C(2,:) = A(2,:) + 10*A(1,:)

C =

4 2 7 1 3

40 22 71 12 38

5 2 4 2 4

2 3 9 8 0

6 2 1 8 4

% Adding a row multiplied by a scalar to another row will

% not change the determinant of the matrix. We can confirm

% below.

det(A), det(C)

ans =

-1.0620e+03

ans =

-1.0620e+03

% We will form a matrix D by multiplying the first row of A

% by 10.

D = A; D(1,:) = 10*A(1,:)

D =

40 20 70 10 30

0 2 1 2 8

5 2 4 2 4

2 3 9 8 0

6 2 1 8 4

% If we multiply a row by a scalar, the determinant of the

% matrix will be multiplied by the same number.

det(A), det(D)

ans =

-1.0620e+03

ans =

-1.0620e+04

%

% Question 4(d)

%

% We will generate another random 5x5 matrix A. Then we will

% set a11 and a21 equal to zero. Using the splu.m custom

% function, we can calculate the PA = LU factorization,

% where P is the permutation matrix.

A = rmat(5,5)

A =

0 8 6 2 0

1 2 8 7 4

2 4 4 0 2

7 0 7 2 4

0 0 6 6 6

A(1,1)=0; A(2,1) = 0

A =

0 8 6 2 0

0 2 8 7 4

2 4 4 0 2

7 0 7 2 4

0 0 6 6 6

[P, L, U, sign] = splu(A)

P =

0 0 1 0 0

0 1 0 0 0

1 0 0 0 0

0 0 0 1 0

0 0 0 0 1

L =

1.0000 0 0 0 0

0 1.0000 0 0 0

0 4.0000 1.0000 0 0

3.5000 -7.0000 -1.8846 1.0000 0

0 0 -0.2308 0 1.0000

U =

2.0000 4.0000 4.0000 0 2.0000

0 2.0000 8.0000 7.0000 4.0000

0 0 -26.0000 -26.0000 -16.0000

0 0 0 2.0000 -5.1538

0 0 0 0 2.3077

sign =

-1

% The sign as -1 tells us that there was an odd number of

% row interchanges. We can check below that P*A = L*U.

P*A

ans =

2 4 4 0 2

0 2 8 7 4

0 8 6 2 0

7 0 7 2 4

0 0 6 6 6

L*U

ans =

2 4 4 0 2

0 2 8 7 4

0 8 6 2 0

7 0 7 2 4

0 0 6 6 6

% The determinant of P is:

det(P)

ans =

-1

% We can take a look at the matrix P and see that the only

% change from an identity matrix is that the first and

% third rows were swapped, which is one row interchange.

% The sign of det(P) tells us whether there was and even or

% odd amount of row interchanges, and det(P) can either be

% -1 or +1. Therefore, from one row interchange, det(P) = -1.

%

% The determinant of L should be 1 because the product of its

% diagonals is 1. We can check det(L) below.

det(L)

ans =

1

%

% The determinants of A and U are as followed:

det(A), det(U)

ans =

480.0000

ans =

-480.0000

% The relationship between both determinants are opposite

% signs for the same reason as mentioned earlier.

%

% Question 5(a)

%

% We will use the custom house.m and plot2d.m functions to

% make a crude drawing of a mouse, where the matrix H will

% contain the coordinates of its endpoints.

H = house; plot2d(H), hold on

% We will generate a matrix Q.

t = pi/6; Q = [cos(t), -sin(t); sin(t), cos(t)]

Q =

0.8660 -0.5000

0.5000 0.8660

% We can use the plot2d function so that H can be

% multiplied by Q and see how the house changes.

plot2d(Q*H)

% When we multiply Q*H, we can see on the plot that the

% house figure has rotated by an angle.

det(Q)

ans =

1

% Q is a rotation matrix. Multiplying it with H only rotates

% the shape that H produces. We know that det(A*B) is equal

% to det(A)*det(B). det(Q) = 1 tells us that the area of the

% house does not change since det(Q)*det(H) will equal det(H).

t = pi/3; Q = [cos(t), -sin(t); sin(t), cos(t)]

Q =

0.5000 -0.8660

0.8660 0.5000

plot2d(Q*H)

det(Q)

ans =

1

% The above is the process repeated with another rotation

% matrix. Since det(Q) is still 1, the area of the house

% does not change, even though it rotated.

%

% Question 5(b)

%

% We will generate a matrix D below.

plot2d(H), hold on

r = .9; D = [r, 0; 0, 1/r ]

D =

0.9000 0

0 1.1111

plot2d(D*H)

% By plotting D*H, we can see that the shape of the house

% changed. It's y values shifted by +1 and the overall width

% has decreased.

det(D)

ans =

1

% The determinant of D is 1. This tells us that even though

% the shape of the house has dilated, the area still remains

% the same.

r = .8; D = [r, 0; 0, 1/r ]

D =

0.8000 0

0 1.2500

plot2d(D*H)

det(D)

ans =

1

% We repeated the process in the above but with r = 0.8 this

% time. The shape of the house is now stretched vertically

% even further, but since det(D) is 1, the area of the shape

% of the house has not changed.

%

% Question 5(c)

%

% We will generate a matrix T below.

plot2d(H), hold on

t = 1/2; T = [1, t; 0, 1]

T =

1.0000 0.5000

0 1.0000

plot2d(T*H)

% By plotting T*H, we can see that the shape of the house

% has skewed.

det(T)

ans =

1

% Since the determinant of T is 1, this tells us that the area

% inside the house has not changed.

t = -1/2; T = [1, t; 0, 1]

T =

1.0000 -0.5000

0 1.0000

plot2d(T*H)

det(T)

ans =

1

% The above process of setting t = -1/2 has skewed the shape

% of the house in the opposite direction. Since det(T) is

% still equal to 1, the area of the house has not changed.

- hw6_2011_05_16_01_solutionsUploaded byMorokot Angela
- Lecture 10Uploaded bytiimj
- Determinants and Matrix InversionUploaded byVikram Sharma
- moiUploaded bycallsandhya
- Intro MaxUploaded bylmaraujo67
- Konev-Linear Algebra Vector Algebra and Analytical GeomeUploaded byASPERPHYS
- ChongUploaded byEpic Win
- Lecture on Gauss_seidalUploaded bymaludeav
- ppt_002Uploaded byLam Wong
- Lecture 1 - SlidesUploaded byBrokenSlam
- Math 15 week 4-Uploaded bygaryart111
- 1st sem syUploaded byrocinguy
- Commands in MapleUploaded byNejra Dedajić
- Rudiments of Io AnalysisUploaded byJay-ar Mira
- March_03Uploaded byAishum1
- Domino TilingsUploaded byZulqarnayn
- Edexcel 2009 Jun FP1 Mark SchemeUploaded byTreshan Stayn
- Exp 2Uploaded bytjrocz
- The Matrix Cookbook2012Uploaded bymehdicheraghi506
- MATHAMATICS-12Uploaded bySwaraj Panda
- MultimediaUploaded byTheodore Jesudas E Dandin
- ps1_s14Uploaded byBuck Windo
- 04 CHITRAUploaded byrajesaravind
- Syllabus AIiTS-3 Class XIIthUploaded byGarvit Goyal
- Syllabus MN MathUploaded byAmanda Garcia
- Journal of Physical ScienceUploaded bysylviana_wibiso7172
- STC Small Signal Stability Power SystemUploaded byNoppon Pat
- s1solUploaded byTom Davis
- Math114 Course PolicyUploaded byjlescaner
- A Brief Introduction to MATLABUploaded byAbel Adam

- DIP Image TransformsUploaded byARAVIND
- A total positivity property of the Marchenko-Pastur Law.pdfUploaded byDanang Stwn
- DeterminantsUploaded byMary Joy Fernandez
- Chole Shorter MethodUploaded byBaruch Cyzs
- MATEX Nth Power of a Square MatrixUploaded byjetski222
- Chapter 21: help thermoUploaded byDallas Brown
- class XII Assignment - MatricesUploaded byCRPF School
- Matrix CookbookUploaded byIoannis Georgakis
- Image TransformsUploaded byaishuvc1822
- Sparskit ManualUploaded byhonestman_usa
- toeplitz marices-1.pdfUploaded byNandha Kumar
- Maths 2 Iit Kanpur Peeyush Chandra, A. K. Lal, V. Raghavendra, G. SanthanamUploaded bymilind
- Matrix (Mathematics) - Wikipedia, The Free EncyclopediaUploaded byjaygobee
- Mm u III SummaryUploaded bygnathw
- Fft ConvolutionUploaded byPiyush Singh
- Arbitrary Axis RotationUploaded byBen Dawes
- Ayres Matrices TextUploaded byRaquel Garcia Domenech
- gauss siedelUploaded byDina Marcela
- Intel Linear Solver BasicsUploaded bybooks_uk
- System of Linear EquationsUploaded byibnashraf
- Mathematical Methods For Physicists Webber and Arfken Ch. 3 Selected SolutionsUploaded byJosh Brewer
- Solution TrefeteeUploaded byFernanda Paula Rocha
- 2차시험 기출문제-선대Uploaded by유준우
- (A.)AL. MATRICS.pdfUploaded byArunachalam Narayanan
- Chapter2_VectorsAndMatricesUploaded bymazlum
- Similarity TransofmationUploaded bysubbu205
- 1-2+MatricesUploaded byRajalaxmi
- te2401-part1Uploaded byJami Burnett
- Linear AlgebraUploaded byLã Phụng Tiên
- Square MatricesUploaded byeminasal