Page 232 - MATLAB an introduction with applications
P. 232
Numerical Methods ——— 217
–19.6143
–28.9058
–7.8027
43 2 1
38 6 12
Example E4.3: Tridiagonalize the given matrix [A] = 26 8 3 by Householder’s method.
12 3 4
Solution:
The following program is used
%Input – A is an nxn symmetric matrix
A = [4 3 2 1; 3 8 6 12;2 6 8 3; 1 2 3 4];
%Output – T is a tridiagonal matrix
[n,n] = size(A);
for k = 1:n – 2
s = norm(A(k +1:n, k));
if (A(k + 1, k)<0)
s = –s;
end
r = sqrt(2 s (A(k +1, k) + s));
* *
W(1:k) = zeros(1,k);
W(k + 1) = (A(k + 1,k) + s)/r;
W(k + 2:n) = A(k + 2:n, k)’/r;
V(1:k) = zeros(1, k);
V(k+1:n) = A(k + 1:n, k + 1:n) W(k + 1:n)’;
*
c = W(k + 1:n) V(k + 1:n)’;
*
Q(1:k) = zeros(1, k);
Q(k + 1:n) = V(k+1:n) – c W(k + 1:n);
*
A (k + 2: n, k) = zeros(n – k – 1,1);
A (k, k + 2: n) = zeros (1, n – k – 1);
A(k +1, k) = –s;
A(k, k + 1) = –s;
A(k + 1: n, k + 1:n) =A(k + 1:n, k + 1:n) – 2 W(k + 1:n)’ Q(k + 1:n) –2 Q(k +
*
*
*
1:n)’ W(k + 1:n);
*
end
T=A;
fprintf(‘Matrix in tridiagonal form is\n’);
disp(T)