1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Tài liệu CHƯƠNG 3: HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH   §1. KHÁI NIỆM CHUNG    ppt

75 618 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ phương trình đại số tuyến tính - Chương 3: Khái niệm chung
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Toán học
Thể loại Tài liệu môn học
Thành phố Hà Nội
Định dạng
Số trang 75
Dung lượng 569,33 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các phương pháp này gồm có: • Phương pháp lặp Jacobi: Phương pháp này tính giá trị của một biến dựa trên giá trị của các biến khác.. • Phương pháp lặp Gauss ‐ Seidel: Nó tương tự như phư

Trang 1

CHƯƠNG 3: HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

n

bbb

1 2

n

xxx

Trang 2

Trong đó một ma trận là ma trận không gian hàng của ma trận [A] và được viết dưới dạng tổ hợp của: 

Trang 3

Chú  ý  là  ma  trận  [A]  có  số  hàng  lớn  hơn  số  cột  cho  nên  không  nghịch  đảo được. Nghiệm sai số bình phương bé nhất tìm được nhớ dùng lệnh pinv hay phép chia trái (ctover.m): 

Trang 4

(k 1) (k) (k 1) ik (k 1)

ij ij (k 1) kj

kk (k 1) (k) (k 1) ik (k 1)

Trang 5

(2) 3

1 (0) 1 1j j

j 2 11

 

m (i 1) (i 1)

i (i 1) i ij j

j i 1 ii

Trang 7

và  khi  đó  nghiệm  của  hệ  chính  là  [B*].  Trong  phương  pháp  Gauss  ‐  Jordan mỗi bước tính phải tính nhiều hơn phương pháp Gauss nhưng lại không phải tính nghiệm. Để đưa ma trận [A] về dạng ma trận [E] tại bước thứ i ta phải có 

aii = 1 và aij = 0. Như vậy tại lần khử thứ i ta biến đổi: 

  1. aij = aij/aii (j = i + 1, i + 2, , n) 

Trang 9

2. Phân tích Doolittle: Ta xét hệ phương trình [A][X] = [B]. Nếu ta phân tích 

ma trận [A] thành tích hai ma trận [L] và [R] sao cho: 

trong đó [L] là ma trận tam giác trái và [R] là ma trận tam giác phải. Vởi ma trận bậc 3 [L] và [R] có dạng: 

Trang 10

1 2 3

Trang 12

Trong đó [Q] là ma trận trực giao, nghĩa là [Q]T[Q] = [E], và [R] là ma trận tam giác phải. Như vậy phương trình trở thành: 

Trang 13

 

Sau đó ta tìm nghiệm của phương trình [L][R][X] = [B] bằng cách giải phương trình [L][Y] = [B] và sau đó là phương trình [R][X] = [Y]. Phương trình [L][Y] = [B] có dạng: 

Trang 15

 

và ta lưu ma trận [A] dưới dạng vec tơ: 

 

Trang 18

  Ta xét hệ phương trình đại số tuyến tính [A][X] = [B]. Ta đưa về dạng lặp: 

Sau mỗi lần tính ta có số dư: 

Khi lặp từ phương trình này, các ma trận [C] và [D] không đổi. Vì vậy nên các phương pháp xuất phát từ đây gọi là các phương pháp lặp tĩnh. Các phương pháp này dễ hiểu, dễ lập trình nhưng không hiệu quả. 

Các phương pháp này gồm có:  

• Phương pháp lặp Jacobi: Phương pháp này tính giá trị của một biến dựa trên giá trị của các biến khác. Nó hội tụ chậm và rất có thể không hội tụ trong một số trường hợp. 

• Phương pháp lặp Gauss ‐ Seidel: Nó tương tự như phương pháp lặp Jacobi nhưng khi tính giá trị của biến thứ k ta dùng các giá trị các biến vừa được cập nhật. Phương pháp này hội tụ nhanh hơn phương pháp lặp  Jacobi  nhưng  không  nhanh  bằng  các  phương  pháp  lặp  không  ổn định. 

• Phương pháp lặp có tăng SOR: Phương pháp này đưa ra từ phương pháp Gauss ‐ Seidel bằng cách đưa thêm hệ số ngoại suy ω. Với ω được chọn tối ưu, phương pháp này hội tụ nhanh hơn phương pháp Gaus ‐ Seidel. Khi  ω = 1  phương  pháp  SOR  trở  thành  phương pháp Gauss ‐ Seidel. Tốc độ hội tụ của phương pháp SOR phụ thuộc vào ω  

• Phương pháp lặp có tăng đối xứng SSOR: Phương pháp này không có 

ưu điểm nào trội hơn SOR.  

     Các phương pháp lặp không ổn định mới được xây dựng, khó hiểu, nhưng hiệu quả cao. Trong quá trình lặp, việc tính toán bao hàm các thông tin thay đổi sau mỗi bước tính.  

Các phương pháp này bao gồm:  

•  Phương  pháp  gradient  liên  hợp  CG(Conjugate  Gradient):  Phương pháp này tạo ra một dãy các vec tơ liên hợp (hay trực giao) là số dư của phép lặp. Chúng cũng là gradient của một hàm bậc 2 mà việc tìm cực tiểu  tương  đương  với  việc  giải  hệ  phương  trình  đại  số  tuyến  tính. Phương  pháp  CG  rất  hiệu  quả  khi  ma  trận  [A]  đối  xứng,  xác  định dương  ví  chỉ  đòi  hỏi  lưu  trữ  một  số  ít  phần  tử.  Tốc  độ  hội  tụ  của 

phương pháp này phụ thuộc số điều kiện của ma trận (số điều kiện của 

ma trận đo độ nhạy của nghiệm của hệ phương trình đại số tuyến tính 

Trang 19

với sai  số  trong  số  liệu. Nó cho biết  độ  chính  xác của kết quả  từ  phép nghịch đảo ma trận và nghiệm của hệ phương trình đại số tuyến tính).  

• Phương pháp số dư cực tiểu MINRES(Minimum Residual) và phương pháp LQ đối xứng SYMMLQ(Symmetric LQ)  

• Phương pháp gradient liên hợp dùng cho hệ thường CGNE(Conjugate Gradient  on  Normal  Equations)  và  CGNR(Conjugate  Gradient  on Normal Equations minimizing the Residual): Các phương pháp này dựa trên việc áp dụng phương pháp CG vào một trong hai dạng hệ phương trình đại số tuyến tính. 

ma trận hệ số không đối xứng.  

•  Phương  pháp  gradient  liên  hợp  kép  BiCG(Biconjugate  Gradient): Phương pháp này tạo ta hai dãy vec tơ giống như CG, một dựa trên hệ với  ma  trận  [A]  và  một  dựa  trên  [A]T.  Thay  vì  trực  giao  hoá  mỗi  dãy, chúng trực giao tương hỗ hai “trực giao kép”. Nó rất hữu ít khi ma trận 

có ma trận hệ số không đối xứng, không suy biến.  

•  Phương  pháp  gần  như  số  dư  cực  tiểu  QMR(Quasi  ‐  Minimal Residual):  Phương  pháp  QMR  dùng  bình  phương  tối  thiểu  để  giải  và cập nhật số dư BiCG. Phương pháp này dùng cho hệ phương trình có 

ma trận hệ số không đối xứng. 

•  Phương  pháp  gradient  liên  hợp  bậc  2  CGS(Conjugate  Gradient Squared): Phương pháp CGS là một biến thể của BiCG, dùng cập nhất dãy  [A]  và  [A]T.  Phương  pháp  này  có  ưu  điểm  là  không  cần  nhân  với 

ma trận hệ số chuyển vị và được dùng cho hệ phương trình đại số tuyến tính có ma trận hệ số không đối xứng. 

 • Phương pháp gradient liên hợp kép ổn định BiCGSTAB(Biconjugate Gradient Stabilized): Phương pháp BiCGSTAB cũng là một biến thể của 

Trang 20

 • Phương pháp Chebyshev: Phương pháp này tính lặp các đa thức với các hệ số được chọn để cực tiểu hoá chuẩn của số dư theo nghĩa min ‐ max. Ma trận hệ số phải xác định dương. Nó được dùng cho hệ phương trình có ma trận hệ số không đối xứng. 

Ta biết rằng tốc độ hội tụ của phép lặp phụ thuộc rất nhiều vào phổ của ma trận(các giá trị riêng của ma trận). Do vậy phép lặp thường đưa thêm một ma trận  thứ  hai  để  biến  đổi  ma  trận  hệ  số  thành  ma  trận  có  phổ  thích  hợp.  Ma trận  biến  đổi  như  vậy  gọi  là  ma  trận  điều  kiện  trước(preconditioner).  Một preconditioner tốt sẽ cải thiện sự hội tụ của phương pháp lặp. Nhiều trường hợp, nếu không có preconditioner, phép lặp sẽ không hội tụ. Preconditioner đơn giản nhất chính là ma trận đường chéo mà Mi,j = Ai,j nếu i = j và các phần 

Trang 21

  ∑

=

1 j ij i

2 max b

 

2 / 1 n

1 i

n 1 j

2 ij

Trang 22

1 j ij i

i =β +∑α =

=

 Lấy xấp xỉ ban đầu tuỳ ý x1(o) , x2(o) , , xn(o) và tất nhiên ta cố gắng lấy chúng tương ứng với x1, x2 , , xn (càng gần càng tốt). Tiếp theo ta giả sử rằng đã biết xấp  xỉ  thứ  k    xi(k)  của  nghiệm.  Theo  Seidel  ta  sẽ  tìm  xấp  xỉ  thứ  (k+1)  của nghiệm theo các công thức sau : 

n 1

j ij1

n 2

j ij

) 1 k ( 1 21 1 )

n i j ij

1 i 1 j

) 1 k ( j ij i

Trang 23

  (jk 1) nn (nk)

1 n 1 j ij n

pháp  Jacobi  nhưng  tính  toán  phức  tạp  hơn.  Dể  dễ  hiểu  phương  pháp  này chúng ta xét một ví dụ cụ thể: 

+

=++

=++

14x

10x2x

2

13x

x10x

2

12x

xx

10

3 2

1

3 2 1

3 2 1

3

3 1

2

3 2

1

x2.0x2.04.1x

x1.0x2.03.1x

x1.0x1.02.1x

Trang 24

  x(k 1)+ =x(k) + αP r−1 (k) 

Trang 25

2 i

Trang 27

( )

j i j i ii

Trang 28

        tmp = b(m, :) ‐ a(m, 1:m‐1)*x(1: m ‐ 1, :) ‐ a(m, m + 1:n)*x(m + 1:n,:);          x(m, :) = (1 ‐ omega)*x(m,:) + tmp*omega/a(m, m); 

    end 

    x(n, :) = (1 ‐ omega)*x(n,:) + omega*(b(n,:) ‐ a(n,1:n ‐ 1)*x(1:n ‐ 1,:))/a(n, n);      err = sqrt((x ‐ x0)ʹ*(x ‐ x0)); 

+

=++

=++

14x

10x2x

2

13x

x10x

2

12x

xx

10

3 2

1

3 2 1

3 2 1

Trang 33

Ta biết rằng gradient là hướng hàm tăng nhanh nhất. Như thế muốn đi đến cực  tiểu  ta  cho  [X],  tính  gradient  và  tìm  theo  hướng  ngược  lại  cho  đến  khi hàm không giảm nữa. Phương pháp độ dốc lớn nhất (steepest descent) thực hiện thuật toán lặp, bắt đầu từ [X0]. Tại lần lặp thứ k, nghiệm được hiệu chỉnh bằng: 

Trang 34

1952. Nó  thích  hợp để giải các hệ phương  trình  có ma trận [A] đối xứng, xác  định dương. Nó là trường hợp đặc biệt của phương pháp Lanczos khi ma trận 

Trang 40

k T

r rˆ

Trang 46

hệ phương trình tuyến tính không đối xứng. Thuật toán gồm có các bước sau:   ‐ cho vec tơ nghiệm ban đầu tính [X0] ta tính [R0] = [B] ‐ [A][X0] 

Trang 50

  x(k+1) = x(k) + αkp(k) 

Trang 51

  ‐ Cho [X0], tính: 

• [R] = [B] ‐ [A][X0], γ0 =  R , v = 0; v0 new = [R0]/γ0, βnew = 0 

• c = 0, s = 0, cnew = 1, snew = 0 

• p = 0, pnew = 0   ‐ Lặp với k = 1, 2,… 

Trang 53

  ‐ Cho x0, tính R0 = B ‐ Ax0 

  ‐ v%(1) =R0, giải hệ M y v1 = %   1

Trang 54

  * d(i) = ηip(i) + θ γ( i 1 i− ) d2 (i 1)−  

  * s(i) = η + θ γip (% i 1 i− ) s2 (i 1)−  

Trang 55

• r(i) = r(i‐1) ‐ s(i) 

Trang 57

(i) (i)

for k = 1, ,i 

Trang 58

(i) (i) ( (i) (k)) (k)

Trang 60

i i 1

a =+   bằng  cách  đặt u1 = a1, v1 = u1/ u   Nói  chung 1

Trang 61

  ‐ xm = x0 + Vmym 

 

Ta xây dựng hàm fom() để thực hiện thuật toán trên: 

Trang 63

xấu.  Trước  hết  ta  cần  chú  ý  là  bài  toán  bình  phương  bé  nhất  [A][X]  =  [B] tương đương với hệ phương trình tuyến tính dạng: 

[ ] [ ]

[ ] [ ]

[ ] [ ]T

2

B1

B1

2

B1

Trang 66

β1[v1] = {B], β =1 [ ]B 2.  Tại  lần  lặp  thứ  k  của phương  pháp  CG  ta  có  được  xk sao cho [rk] = [B] ‐ [A][Xk] trực giao. Do [Vk] là cơ sở trực giao nên ta có thể đặt [Xk] = [Vk][yk] và có: 

[rk] = [B] ‐ [A][Vk][yk] = β1[v1] ‐ [Vk][Tk][yk] ‐  [ ]T[ ] [ ]

Trang 67

với  [ ]L   là  ma  trận  tam  giác  và k [ ]Q   là  ma  trận  trực  giao.  Thuật  toán k

SYMMLQ gồm các bước sau: 

  ‐ Tính x = xo, r = b ‐ Ax, ρ = r ,  v r= ρ 

  ‐ β = 0, β =% 0, c = ‐1, s = 0, k = ρ 

  ‐ vold = 0, w = v, g = 0, g 0% =  

  ‐ Lặp khi k < tol: 

    • v Av% = − βvold 

• α =v * v% ,  v v% = − α% v 

• β = %v , vold =v,  v v /= % β 

• l1 = α − βs c% , l2 = βs  

• α = − β − α% s% c , β = β% c  

• l0 = α + β%2 2  

• c= α% l ,s0 = β l0  

• g g l g, g% = −ˆ 1 ˆ = −l g, g g l2 = % 0 

•  x x (gc)w +(gs)v= +  

•  w = sw ‐ cv  

• k= g%2 +gˆ2  

Ta xây dựng hàm symmlq() để thực hiện thuật toán này: 

 

function x = symmlq(A, b, x, maxiter, tol) 

%Ham thuc hien thua toan SYMMLQ voi A la ma tran doi xung 

[m,n] = size(A); 

n2b = norm(b);       

xmin = x;      

imin = 0;      

tolb = tol * n2b;       

r = b ‐ A * x;       

normr = norm(r);       

normrmin = normr;       

v = r; 

vold = r; 

u = vold; 

v = u; 

Trang 71

Để  giải  hệ  phương  trình  bằng  thuật  toán  SYMMLQ  ta  dùng  chương  trình 

dụ nếu ma trận [M] xấp xỉ ma trận hệ số [A] theo một cách nào đó, hệ được biến đổi 

  [M]‐1[A][X] = [M]‐1[B] 

sẽ có nghiệm như hệ phương trình [A][X] = [B] nhưng tính chất phổ của hệ số của ma trận [M]‐1[A] có thể thuận lợi hơn. 

Ngày đăng: 23/01/2014, 06:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w