diff --git a/hw3_10_4.m b/hw3_10_4.m new file mode 100644 index 0000000..faf42f2 --- /dev/null +++ b/hw3_10_4.m @@ -0,0 +1,20 @@ +%a------------ + +teta = pi/3; +F = [-cos(teta) sin(teta); sin(teta) cos(teta)]; +J = [cos(teta) sin(teta); -sin(teta) cos(teta)]; +v = [2;1]; +fRes = F*v +jRes = J*v + +atan2(fRes(2),fRes(1)) +atan2(v(2),v(1)) +figure; +plotv(F*v,'-'); +hold +plotv(v,'-'); +plotv(J*v,'-'); + % J rotates plane by the angle teta in the clockwise direction + % F takes the symmetric of v according to y axis, then rotates plane by teta + % degree in the counter clockwise direction. +%------------- \ No newline at end of file diff --git a/hw3_11_3.m b/hw3_11_3.m new file mode 100644 index 0000000..d52ff50 --- /dev/null +++ b/hw3_11_3.m @@ -0,0 +1,96 @@ +function hw3_11_3 + m = 50; + n = 12; + + t = linspace(0,1,m); + + tmp = fliplr(vander(t)); + A = tmp(:,1:n); + b = cos(4*t); + + %a------------------- + x1 = (A'*A) \ (A'*b'); + %-------------------- + + %b------------------- + [Q, R] = mgs(A); + v = Q' * b'; + x2 = R\v; + %-------------------- + + %c------------------- + + [W, R] = house(A); + Q = zeros(m, m); + for i = 1:m + e = zeros(m,1); + e(i) = 1; + Q(:,i) = formQx(W,e); + end + + vec = b'; + for i = 1:n + vec(i:m)=vec(i:m)-2*W(i:m,i)*((W(i:m,i))'*vec(i:m)); + end + x3 = R\vec; + + %-------------------- + + %d------------------- + [Q, R] = qr(A); + v = Q' * b'; + x4 = R\v; + %-------------------- + + %e------------------- + x5 = A\b'; + %-------------------- + + %f------------------- + [U,S,V] = svd(A); + x6 = V*(S\(U'*b')); + %-------------------- + + [x1 x2 x3 x4 x5 x6] + + function [Q, R] = mgs(A) + n = size(A,2); + V = A; + Q = zeros(size(A,1), size(A,2)); + R = zeros(n,n); + + for k = 1:n + R(k,k) = norm(V(:,k)); + Q(:,k) = V(:,k)/R(k,k); + for j = k+1:n + R(k,j) = Q(:,k)' * V(:,j); + V(:,j) = V(:,j) - R(k,j) * Q(:,k); + end + end + end + function [W,R]=house(A) + m=size(A,1); + n=size(A,2); + W=zeros(m,n); + for k=1:n + x=A(k:m,k); + e1=eye(m-k+1,1); + if (x(1)==0) coef=1; + else coef=sign(x(1)); + end; + W(k:m,k)=coef*norm(x,2)*e1+x; + W(k:m,k)=W(k:m,k)/norm(W(k:m,k),2); + A(k:m,k:n)=A(k:m,k:n)-2*W(k:m,k)*((W(k:m,k))'*A(k:m,k:n)); + end; + R=triu(A,0); + end + + function a=formQx(W,vect) + m=size(W,1); + n=size(W,2); + for k=n:-1:1 + vect(k:m)=vect(k:m)-2*W(k:m,k)*((W(k:m,k))'*vect(k:m)); + end; + a=vect; + end +end \ No newline at end of file diff --git a/hw3_9_3.m b/hw3_9_3.m new file mode 100644 index 0000000..80bd52c --- /dev/null +++ b/hw3_9_3.m @@ -0,0 +1,36 @@ +A = zeros(15,40); +%a----------- +vertical = [2 2; 2 3; 2 6; 2 7; 3 10; 3 11; 4 18; 4 19; 5 26; 5 27; 6 34; 6 35; 6 38; 6 39]; +horizontal = [5 2; 6 2;3 10;4 10; 6 10; 7 10;9 10;10 10;10 18; 11 18;11 26;12 26;6 34; 7 34; 12 34; 13 34]; + + +for i = 1:length(vertical) + A(vertical(i,1):vertical(i,1)+7,vertical(i,2)) = 1; +end + +for i = 1:length(horizontal) + A(horizontal(i,1),horizontal(i,2):horizontal(i,2)+5) = 1; +end +%spy(A); +%a------------ + +%b------------ +S = svd(A) +figure +plot(S) +title('plot'); +figure +semilogy(S) +title('semilogy'); +rank(A) +%b------------ + +%c------------ +[U, S, V] = svd(A); +figure +for i = 1:rank(A) + B = U(:,1:i) * S(1:i, 1:i) * V(:,1:i)' + pcolor(B) + colormap(gray) +end +%c------------ \ No newline at end of file