1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
//Example 8.8
//Block SOR Method
//Page no. 284
clc;clear;close;
A=[10,1,0,0,0,-1;1,10,1,0,0,0;2,0,20,1,0,0;0,0,1,10,-1,0;0,3,0,0,30,3;0,0,0,2,-2,20]; //equation matrix
B=[5;10;10;0;0;5] //solution matrix
disp(B,'B=',A,'A=')
w=0.8
for i=1:2
for j=1:2
A11(i,j)=A(i,j);
end
B1(i,1)=B(i,1);
end
for i=1:2
for j=1:2
A12(i,j)=A(i,j+2);
end
B2(i,1)=B(i+2,1);
end
for i=1:2
for j=1:2
A13(i,j)=A(i,j+4);
end
B3(i,1)=B(i+4,1);
end
for i=1:2
for j=1:2
A21(i,j)=A(i+2,j);
end
end
for i=1:2
for j=1:2
A22(i,j)=A(i+2,j+2);
end
end
for i=1:2
for j=1:2
A23(i,j)=A(i+2,j+4);
end
end
for i=1:2
for j=1:2
A31(i,j)=A(i+4,j);
end
end
for i=1:2
for j=1:2
A32(i,j)=A(i+4,j+2);
end
end
for i=1:2
for j=1:2
A33(i,j)=A(i+4,j+4);
end
end
disp(B3,'B3=',B2,'B2=',B1,'B1=',A33,'A33=',A32,'A32=',A31,'A31=',A23,'A23=',A22,'A22=',A21,'A21=',A13,'A13=',A12,'A12=',A11,'A11=');
A11_1=inv(A11);A22_1=inv(A22);A33_1=inv(A33);
disp(A33_1,'Inverse of Matrix A33=',A22_1,'Inverse of Matrix A22=',A11_1,'Inverse of Matrix A11=');
for i=1:2
X1(i,1)=0;
X2(i,1)=0;
X3(i,1)=0;
end
for i=1:7
X(i,1)=i-1;
end
for i=2:7
X(1,i)=0;
end
for r=1:6
X11=A11_1*((1-w)*X1+(-1)*w*A12*X2+(-1)*w*A13*X3+w*B1);
X22=A22_1*((1-w)*X2+(-1)*w*A21*X11+(-1)*w*A23*X3+w*B2);
X33=A33_1*((1-w)*X3+(-1)*w*A31*X11+(-1)*w*A32*X22+w*B3);
X1=X11;
X2=X22;
X3=X33;
disp(X3,'X3=',X2,'X2=',X1,'X1=')
for i=2:7
if(i<4)
X(r+1,i)=X1(i-1,1);
end
if(i<6 & i>3)
X(r+1,i)=X2(i-3,1);
end
if(i<8 & i>5)
X(r+1,i)=X3(i-5,1);
end
end
end
printf('\n\nIteration');
for i=1:6
printf(' x%i ',i);
end
printf('\n --------------------------------------------------------------------------------')
disp(X)
printf('\n\nAfter 5 iterations exact solution is:\n');
for i=1:6
printf('x%i=%f ',i,X(6,i+1));
end
|