Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
355 KB
File đính kèm
BT Thuc hanh 11_11.rar
(76 KB)
Nội dung
BÀI THỰC HÀNH GIẢI TÍCH SỐ Bài số 2- chiều 11/11: Phương pháp số ĐSTT Nhóm _ Lớp: CN Tốn K5 Đề bài: I Gi¶i hƯ Ax = b phơng pháp lặp Jacobi phơng pháp Gauss-Seidel, tính lặp lần cho biết sai số, với xấp xỉ ban đầu x(0) (0;0;0)T 10 � � 10� � � � � � ,b � 12� 2) A �1 10 � �1 10� �8 � � � � � 10 1 12 1) A 10 , b 12 1 10 12 3) 1 8 A , b 2 8 4) 3 � � 20� � � � � � A � 11 1� ,b � 33� � � 12� 36� � � � � II KiÓm tra điều kiện để áp dụng phơng pháp lặp Jacobi cho hệ Trong trờng hợp áp dụng đợc hÃy xác định số lần lặp n để đạt đợc nghiệm gần n 10 , x nghiệm ®óng x n víi sai sè x x hệ, chọn xấp xỉ ban đầu x(0) 0,0,0 T III Viết chơng trình tính toán minh họa cho tập Bi làm: Bài I + III: Giải hệ Ax = b 1), 2), 3), 4) phương pháp lặp Jacobi Gauss-Seidel Viết chương trình tính tốn minh họa 1) 10 1 12 A 10 , b 12 1 10 12 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 sử dụng phương pháp lặp Jacobi Ta có dãy lặp: x ( k 1) Bx � �0 � � B� � 10 � � � 10 Với: (k ) g 10 10 � � 10 � � �, 10 � � � � �6 � �� �5 � �6 � g �� �5 � �6 � �� �5 � �2 2 � q max � , , � 0, 10 10 10 � Vì x ( 0) 0, 0, T , đó, xấp xỉ tính bởi: (k ) (k ) � ( k 1) x x2 x3 �1 10 10 � (k ) (k ) � ( k 1) x1 x3 �x2 10 10 � � ( k 1) (k ) (k ) x x1 x2 �3 10 10 � , k 0,1, 2, Lập bảng: (k ) n (k ) (k ) x1 x2 x3 0 0, 0, �x (k ) x ( k 1) � 1,2 0,96 1,008 1,2 0,96 1,008 1,2 0,96 1,008 0,3 0,06 0,012 Chương trình: clear all; clc; format short g; N=3; L=0.25; for j=1:N; x(j)=0; end; xd(1)=0; xd(2)=0; xd(3)=0; A=[10 1; 10 1; 1 10]; b=[12; 12; 12]; for 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; end; for j=1:N; for i=1:N; D(i)=b(i)/A(i,i); end; end; eps=0.001; saiso=10; count=0; thoigian=cputime; while count j); C(i,j)=-A(i,j)/A(i,i); else; C(i,j)=0; end; end; end; for j=1:N; for i=1:N; D(i)=b(i)/A(i,i); end; end; eps=0.001; saiso=10; count=0; thoigian=cputime; while count