Orthogonalization

Orthogonalization

orthogonalization L. Olson October 27, 2015 Department of Computer Science University of Illinois at Urbana-Champaign 1 objectives Revisit SVD and Orthogonal Matrices • Create orthogonal vectors • Outline the Gram-Schmidt algorithm for orthogonalization • 2 normal equations: conditioning The normal equations tend to worsen the condition of the matrix. Theorem cond(A T A) = (cond(A))2 1 A = np.random.rand(10,10) 2 print(np.linalg.cond(A)) 3 print(np.linalg.cond(A.T.dot(A))) 4 5 50.0972712517 6 2509.73658686 3 other approaches QR factorization. • For A 2 Rm×n, factor A = QR where • Q is an m × m orthogonal matrix • R is an m × n upper triangular matrix (since R is an m × n upper • " # R 0 triangular matrix we can write R = where R is n × n upper 0 triangular and 0 is the (m - n) × n matrix of zeros) SVD - singular value decomposition • For A 2 Rm×n, factor A = USV T where • U is an m × m orthogonal matrix • V is an n × n orthogonal matrix • S is an m × n diagonal matrix whose elements are the singular • values. 4 orthogonal matrices Definition A matrix Q is orthogonal if QT Q = QQT = I Orthogonal matrices preserve the Euclidean norm of any vector v, 2 T T T T 2 jjQvjj2 = (Qv) (Qv) = v Q Qv = v v = jjvjj2. 5 gram-schmidt orthogonalization One way to obtain the QR factorization of a matrix A is by Gram-Schmidt orthogonalization. We are looking for a set of orthogonal vectors q that span the range of A. For the simple case of 2 vectors fa1, a2g, first normalize a1 and obtain a1 q1 = . jja1jj T Now we need q2 such that q1 q2 = 0 and q2 = a2 + cq1. That is, R(q1, q2) = R(a1, a2) Enforcing orthogonality gives: T T T q1 q2 = 0 = q1 a2 + cq1 q1 6 gram-schmidt orthogonalization T T T q1 q2 = 0 = q1 a2 + cq1 q1 Solving for the constant c. T q1 a2 c = - T q1 q1 reformulating q2 gives. T q1 a2 q2 = a2 - T q1 q1 q1 Adding another vector a3 and we have for q3, T T q2 a3 q1 a3 q3 = a3 - T q2 - T q1 q2 q2 q1 q1 Repeating this idea for n columns gives us Gram-Schmidt orthogonalization. 7 gram-schmidt orthogonalization Since R is upper triangular and A = QR we have a1 = q1r11 a2 = q1r12 + q2r22 . = . an = q1r1n + q2r2n + ... + qnrnn T qi aj From this we see that rij = T , j > i qi qi 8 orthogonal projection The orthogonal projector onto the range of q1 can be written: T q1q1 T q1 q1 . Application of this operator to a vector a orthogonally projects a onto q1. If we subtract the result from a we are left with a vector that is orthogonal to q1. T T q1q1 q1 (I - T )a = 0 q1 q1 9 gram-schmidt orthogonalization 1 def qr(A): 2 3 Q = np.zeros(A.shape) 4 5 fork in range(A.shape[1]): 6 avec = A[:, k] 7 q = avec 8 forj in range(k): 9 q = q - np.dot(avec, Q[:,j])*Q[:,j] 10.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us