Kiểm tra điều kiện để có thể áp dụng phơng pháp lặp Jacobi cho các hệ trên.. Viết chơng trình tính toán minh họa cho các bài tập trên.. Viết chương trỡnh tớnh toỏn minh họa... Lời giải
Trang 1BÀI THỰC HÀNH GIẢI TÍCH SỐ.
Bài số 2- chiều 11/11: Phương phỏp số trong ĐSTT.
Nhúm 5 _ Lớp: CN Toỏn K5.
Đề bài:
I. Giải hệ Ax = b bằng phơng pháp lặp Jacobi và phơng pháp Gauss-Seidel, tính lặp 3 lần và cho biết sai số, với xấp xỉ ban đầu (0)
(0;0;0)T
1)
12 12
12 ,
10 1 1
1 10 1
1 1 10
b
3)
8 9
8 ,
8 4 2
2 6 3
1 2 5
b
II. Kiểm tra điều kiện để có thể áp dụng phơng pháp lặp Jacobi cho các hệ trên Trong trờng hợp có thể áp dụng đợc hãy xác định số lần lặp n để đạt đợc nghiệm gần đúng x n với sai số 10 2
x
x n
, trong đó x là nghiệm
đúng của hệ, nếu chọn xấp xỉ ban đầu (0)
0, 0, 0 T
III. Viết chơng trình tính toán minh họa cho các bài tập trên
Bài làm:
Bài I + III: Giải cỏc hệ Ax = b 1), 2), 3), và 4) bằng phương phỏp lặp Jacobi và
Gauss-Seidel Viết chương trỡnh tớnh toỏn minh họa
1)
12 12
12 ,
10 1 1
1 10 1
1 1 10
b A
Phương phỏp Jacobi.
Lời giải:
Trang 2Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi.
Ta có dãy lặp: x(k1) Bx( )k g
Với:
0
0
0
B
,
6 5 6 5 6 5
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( ) ( )
( 1) ( ) ( )
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0, 2
x x
Chương trình:
clear all;
clc;
format short g;
N=3;
L=0.25;
Trang 3for j=1:N;
x(j)=0;
xd(1)=0;
xd(2)=0;
xd(3)=0;
A=[10 1 1; 1 10 1; 1 1 10];
b=[12; 12; 12];
for i=1:N;
if or (j>i,i>j);
C(i,j)=-A(i,j)/A(i,i);
else;
C(i,j)=0;
end;
end;
for i=1:N;
D(i)=b(i)/A(i,i);
end;
eps=0.001; saiso=10; count=0; thoigian=cputime;
xluu=x; count=count+1;
B=C*x'+D';
x=B';
saiso=0;
for j=1:N;
if saiso<abs(x(j)-xluu(j));
saiso=abs(x(j)-xluu(j));
end;
end;
saiso=L*saiso;
x
count
saiso
thoigian=cputime-thoigian
Phương pháp Gauss-Seildel.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Ta có dãy lặp: x(k1) Bx( )k g
Trang 4Với:
0
0
0
B
,
6 5 6 5 6 5
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( 1) ( )
( 1) ( 1) ( 1)
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0, 2
x x
1, 2123 10
2)
Phương pháp Jacobi.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Trang 5Ta có dãy lặp: x(k1) Bx( )k g
Với:
0
0
0
B
,
1 6 5 4 5
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( ) ( )
( 1) ( ) ( )
1
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0,3
x x
Chương trình:
clear all;
clc;
format short g;
N=3;
L=3/7;
x(j)=0;
xd(1)=0;
xd(2)=0;
xd(3)=0;
Trang 6A=[10 2 1; 1 10 2; 1 1 10];
b=[10; 12; 8];
for i=1:N;
if or (j>i,i>j);
C(i,j)=-A(i,j)/A(i,i);
else;
C(i,j)=0;
end;
end;
for i=1:N;
D(i)=b(i)/A(i,i);
end;
eps=0.001; saiso=10; count=0; thoigian=cputime;
xluu=x; count=count+1;
B=C*x'+D';
x=B';
saiso=0;
for j=1:N;
if saiso<abs(x(j)-xluu(j));
saiso=abs(x(j)-xluu(j));
end;
end;
saiso=L*saiso;
x
count
saiso
thoigian=cputime-thoigian
Phương pháp Gauss-Seildel.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Ta có dãy lặp: x(k1) Bx( )k g
Trang 7Với:
0
0
0
B
,
1 6 5 4 5
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( 1) ( )
( 1) ( 1) ( 1)
1
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0,3
x x
6,141 10
3)
8 9
8 ,
8 4 2
2 6 3
1 2 5
b A
Phương pháp Jacobi.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Ta có dãy lặp: x(k1) Bx( )k g
Trang 8Với:
0
0
0
B
,
8 5 3 2 1
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( ) ( )
( 1) ( ) ( )
1
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 5 / 6
x x
Chương trình:
clear all;
clc;
format short g;
N=3;
L=5;
x(j)=0;
xd(1)=0;
xd(2)=0;
xd(3)=0;
A=[5 -2 -1; 3 6 2; 2 4 8];
b=[8; 9; 8];
Trang 9for j=1:N;
for i=1:N;
if or (j>i,i>j);
C(i,j)=-A(i,j)/A(i,i);
else;
C(i,j)=0;
end;
end;
for i=1:N;
D(i)=b(i)/A(i,i);
end;
eps=0.001; saiso=10; count=0; thoigian=cputime;
xluu=x; count=count+1;
B=C*x'+D';
x=B';
saiso=0;
for j=1:N;
if saiso<abs(x(j)-xluu(j));
saiso=abs(x(j)-xluu(j));
end;
end;
saiso=L*saiso;
x
count
saiso
thoigian=cputime-thoigian
Phương pháp Gauss-Seildel.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Ta có dãy lặp: x(k1) Bx( )k g
Trang 10Với:
0
0
0
B
,
8 5 3 2 1
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( 1) ( )
( 1) ( 1) ( 1)
1
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 5 / 6
x x
4)
Phương pháp Jacobi.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Trang 11Ta có dãy lặp: x(k1) Bx( )k g
Với:
0
0
0
B
,
5 2 3 3
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( ) ( )
( 1) ( ) ( )
3
3
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0,75
x x
Chương trình:
clear all;
clc;
format short g;
N=3;
L=3;
x(j)=0;
xd(1)=0;
xd(2)=0;
xd(3)=0;
Trang 12A=[8 -3 2; 4 11 -1; 6 3 12];
b=[20; 33; 36];
for i=1:N;
if or (j>i,i>j);
C(i,j)=-A(i,j)/A(i,i);
else;
C(i,j)=0;
end;
end;
for i=1:N;
D(i)=b(i)/A(i,i);
end;
eps=0.001; saiso=10; count=0; thoigian=cputime;
xluu=x; count=count+1;
B=C*x'+D';
x=B';
saiso=0;
for j=1:N;
if saiso<abs(x(j)-xluu(j));
saiso=abs(x(j)-xluu(j));
end;
end;
saiso=L*saiso;
x
count
saiso
thoigian=cputime-thoigian
Phương pháp Gauss-Seildel.
Lời giải:
Ma trận A có tính chất chéo trội nên ta có thể sử dụng phương pháp lặp Jacobi
Ta có dãy lặp: x(k1) Bx( )k g
Trang 13Với:
0
0
0
B
,
5 2 3 3
g
Vì x(0 ) 0, 0, 0 T , khi đó, các xấp xỉ tiếp theo được tính bởi:
( 1) ( ) ( )
( 1) ( 1) ( )
( 1) ( 1) ( 1)
3
3
, k 0,1, 2,
Lập bảng:
n
( ) 1
k
1 0,75
x x
Bài II:
1)
12 12
12 ,
10 1 1
1 10 1
1 1 10
b A
Ma trận A có tính chất chéo trội vì : 1+1 < 10, 1+1 < 10, 1+1 < 10 Do đó ta áp dụng được phương pháp lặp Jacobi
Trang 14Chọn (0)
0, 0, 0 T
6 5 6 5 6 5
x
q 0, 2 (1) (0) 6
5
x x
Theo công thức đánh giá sai số, ta có:
10
1 0, 2 5
n n
2)
Ma trận A có tính chất chéo trội vì : 2+1 < 10, 1+2 < 10, 1+1 < 10 Do đó ta áp dụng được phương pháp lặp Jacobi
0, 0, 0 T
(1)
1 6 5 4 5
x
q 0,3 (1) ( 0) 6
5
x x
Theo công thức đánh giá sai số, ta có:
10
1 0,3 5
n n
Trang 15
8 9
8 ,
8 4 2
2 6 3
1 2 5
b A
Ma trận A có tính chất chéo trội vì : 2+1 < 5, 3+2 < 6, 2+4 < 8 Do đó ta áp dụng được phương pháp lặp Jacobi
0, 0, 0 T
8 5 3 2 1
x
5
6
q (1) ( 0) 8
5
x x
Theo công thức đánh giá sai số, ta có:
10
1 5 / 6 5
n n
n 37,664
4)
Ma trận A có tính chất chéo trội vì : 3+2 < 8, 4+1 < 11, 6+3 < 12 Do đó ta áp dụng được phương pháp lặp Jacobi
0, 0, 0 T
5 2 3 3
x
q 0,75 (1) ( 0)
3
x x
Theo công thức đánh giá sai số, ta có:
3 10
1 0,75
n n
The end