Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Pranab Krushna Sahoo 20EE38027

Classical Grahm Schmidt


Code
m=5;n=5
A=rand(m,n);
%q=eye(m)
%r=zeros(m,n);
for j=1:n
v=A(:,j);
for i=1:j-1
r(i,j)=q(:,i)'*A(:,j);
v=v-r(i,j)*q(:,i);
end
r(j,j)=norm(v);
q(:,j)=v/r(j,j);
end

Results
q=

0.4927 -0.4806 -0.1780 0.6566 -0.2518


0.5478 -0.3583 0.5777 -0.4758 0.1068
0.0768 0.4754 0.6343 0.5547 0.2409
0.5523 0.3391 -0.4808 -0.0718 0.5862
0.3824 0.5473 -0.0311 -0.1722 -0.7236

>> r

r=

1.6536 1.1405 1.2569 1.1757 1.1833


0 0.9661 0.6341 1.0098 0.7639
0 0 0.8816 0.3885 -0.0277
0 0 0 0.1784 0.7007
0 0 0 0 0.0996

>> q*q'

ans =

1.0000 0.0000 0.0000 0.0000 -0.0000


0.0000 1.0000 -0.0000 -0.0000 0.0000
0.0000 -0.0000 1.0000 0.0000 -0.0000
0.0000 -0.0000 0.0000 1.0000 -0.0000
-0.0000 0.0000 -0.0000 -0.0000 1.0000

>> A

A=

0.8147 0.0975 0.1576 0.1419 0.6557


0.9058 0.2785 0.9706 0.4218 0.0357
0.1270 0.5469 0.9572 0.9157 0.8491
0.9134 0.9575 0.4854 0.7922 0.9340
0.6324 0.9649 0.8003 0.9595 0.6787
A-q*r=

1.0e-15 *

0 0 0 0.0555 0.0555
0 0 0.1110 -0.0555 0
-0.0555 0 0 0 0
0 0 0 0 0
0 0 0 0 0.1110
cputime =

58.8750
Modified Grahm-Schmidt
Code
m=5;n=5;
A=rand(m,n);
%q=eye(m)
%r=zeros(m,n);
v=A;
for i=1:n
r(i,i)=norm(v(i,:));
q=v(i,:)/r(i,i);
for j=i+1:n
r(i,j)=q*v(j,:)';
v(j,:)=v(j,:)-r(i,j)*q;
end
end
T=cputime

Result
v=

0.7040 0.2703 0.3912 0.3774 0.6713


-0.1154 -0.0170 0.4592 -0.0829 -0.0931
-0.6382 0.5666 -0.0184 0.4398 0.2047
-0.0171 -0.2224 0.0260 0.2977 -0.0750
0.2174 0.2979 0.0033 0.1283 -0.4221

>> r

r=

1.1466 0.9083 1.0892 1.3429 0.9331


0 0.4900 0.0466 0.3582 0.4897
0 0 0.9819 0.6034 0.4039
0 0 0 0.3803 -0.2631
0 0 0 0 0.5751

T=

265.2969

HouseHolder Method
Code
m=5;
n=5;
A=randn(m,n);
Y=eye(m);

e1=Y(:,1);

for k=1:m
x=A(k:m,k);
e=0*x;e(1)=1;
v=sign(x(1))*norm(x)*e+x;
v=v/norm(v);
A(k:m,k:n)=A(k:m,k:n)-2*v*(v'*A(k:m,k:n));
V{k}=v;

%imagesc(A),shg
%pause(0.1)

end
R=A;
Q=Y;
for k1=1:m
x=Y(:,k1);
for k=n:-1:1
x(k:m)=x(k:m)-2*V{k}*(V{k}'*x(k:m));
end
Q(:,k1)=x;
end

Results
>> q

q=

0.2749 0.2964 0.3319 0.8031 -0.2852


0.6770 0.3074 -0.5441 0.0175 0.3884
0.6525 -0.6274 0.2483 -0.1953 -0.2843
0.1620 0.6355 0.1965 -0.5437 -0.4855
0.1185 0.1420 0.7026 -0.1447 0.6718

>> r

r=
1.0040 1.1302 0.9282 0.7794 1.0842
0 0.6329 0.5544 0.4971 0.1032
0 0 0.9995 0.2653 1.0436
0 0 0 0.6345 0.2537
0 0 0 0 0.1335

>> Q

Q=

-0.3475 0.3121 0.8770 -0.1129 0.0031


-0.6371 -0.3828 -0.0311 0.6637 0.0780
-0.6462 0.2281 -0.4077 -0.5396 0.2701
0.2218 -0.2382 0.1661 -0.0261 0.9305
-0.0806 -0.8045 0.1902 -0.5049 -0.2349

>> A

A=

2.2010 -1.1086 -0.7754 1.0206 -0.2277


-0.0000 -1.8625 -0.4427 -2.1526 0.5150
-0.0000 -0.0000 -1.0670 -0.4177 -0.9616
0.0000 0.0000 0.0000 -2.0111 0.5161
-0.0000 0.0000 0.0000 0.0000 -1.7052
>> cputime

ans =

66.1406

You might also like