Advertisement
Guest User

Untitled

a guest
May 13th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 1.63 KB | None | 0 0
  1. ########################## Question 2 ############################
  2.  
  3. ############################ PART A ##############################
  4. function gram_schmidt(A)
  5.     n = size(A,2); # assume A is m×n
  6.     R = zeros(n,n);
  7.     Q = zeros(n,n);
  8.     R[1,1] = norm(A[:,1]);
  9.     Q[:,1] = A[:,1]/R[1,1];
  10.  
  11.     for i=2:n
  12.         z = A[:,i];
  13.         for j=1:i-1
  14.             R[j,i] = (Q[:,j]' * A[:,i])[1]
  15.            z = z - R[j,i]*Q[:,j];
  16.        end
  17.        R[i,i] = norm(z);
  18.        Q[:,i] = z/R[i,i];
  19.    end
  20.  
  21.    return Q,R
  22. end
  23.  
  24. function modified_gram_schmidt(A)
  25.    n = size(A,1); # assume A is n×n
  26.    R = zeros(n,n);
  27.    Q = zeros(n,n);
  28.    R[1,1] = norm(A[:,1]);
  29.    Q[:,1] = A[:,1]/R[1,1];
  30.  
  31.    for i=2:n
  32.        Q[:,i] = A[:,i];
  33.        for j=1:i-1
  34.            R[j,i] = (Q[:,j]' * Q[:,i])[1];
  35.             Q[:,i] = Q[:,i] - R[j,i]*Q[:,j];
  36.         end
  37.         R[i,i] = norm(Q[:,i]);
  38.         Q[:,i] = Q[:,i]/R[i,i];
  39.     end
  40.  
  41.     return Q,R
  42. end
  43.  
  44. ############################ PART B ##############################
  45. A_1 = [1 1 1; 1 0 0; 0 1 0];
  46. A_e = [1 1 1; 1e-10 0 0; 0 1e-10 0];
  47.  
  48. Q1,R1 = gram_schmidt(A_1);
  49. Q2,R2 = gram_schmidt(A_e);
  50. Q3,R3 = modified_gram_schmidt(A_1);
  51. Q4,R4 = modified_gram_schmidt(A_e);
  52.  
  53. ############################ PART C ##############################
  54. get_id_matrix = A -> eye(size(A)[1])
  55. get_norm = A -> vecnorm(A'*A-get_id_matrix(A))
  56.  
  57. F1 = get_norm(Q1);
  58. F2 = get_norm(Q2);
  59. F3 = get_norm(Q3);
  60. F4 = get_norm(Q4);
  61.  
  62. println("Factorizations")
  63. println("Gram Schmidt")
  64. println("F1 is: ", F1)
  65. println("F2 is: ", F2)
  66. println("Gram Schmidt Modified")
  67. println("F3 is: ", F3)
  68. println("F4 is: ", F4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement