Bài giảng Phương pháp số - Chương 2: Các phương pháp số trong đại số tuyến tính

29 68 0
Bài giảng Phương pháp số - Chương 2: Các phương pháp số trong đại số tuyến tính

Đ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

Bài giảng Phương pháp số - Chương 2: Các phương pháp số trong đại số tuyến tính trình bày các nội dung chính sau: Phương pháp tìm nghiệm đúng, nghiệm xấp xỉ của hệ phương trình tuyến tính, ứng dụng các phương pháp trên vào việc tính định thức của ma trận, tìm ma trận nghịch đảo, giải quyết các bài toán thực tế, đánh giá sai số của từng phương pháp.

Chương 2: Các phương pháp số đại số tuyến tính CHƯƠNG CÁC PHƯƠNG PHÁP SỐ TRONG ĐẠI SỐ TUYẾN TÍNH MỤC ĐÍCH, YÊU CẦU: Sau nghiên cứu chương 1, yêu cầu sinh viên: Hiểu nắm phương pháp tìm nghiệm đúng, nghiệm xấp xỉ hệ phương trình tuyến tính Biết cách ứng dụng phương pháp vào việc tính định thức ma trận, tìm ma trận nghịch đảo, giải toán thực tế Biết cách đánh giá sai số phương pháp 2.1 MA TRẬN VÀ ĐỊNH THỨC 2.1.1 Ma trận Cho ma trận chữ nhật A cấp m x n: A= a11 a12 a1n a21 a22 a2n am1 am2 amn aij số thực Ma trận có m hàng n cột Khi m = n ta có ma trận cấp nxn gọi tắt ma trận vuông cấp n Ma trận vng cấp n mà phần tử nằm ngồi đường chéo 0, tức aij = aji = với i ≠ j, gọi ma trận đường chéo Nếu ma trận đường chéo có aii = ta gọi A ma trận đơn vị ta thường ký hiệu E I Ma trận vuông A gọi ma trận tam giác trên, A có dạng A= a11 a12 a1n a22 a2n 0 ann 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính Tương tự, ma trận vuông A gọi ma trận tam giác dưới, A có dạng: A= a11 a21 a22 an1 an2 ann Ma trận chữ nhật AT cấp n x m gọi ma trận chuyển vị ma trận A cấp m x n nếu: AT = a11 a21 am1 a12 a22 am2 a1n a2n amn 2.1.2 Định thức ma trận Trước đưa định nghĩa định thức ma trận, chúng tơi giới thiệu khái niệm hốn vị chẵn, hoán vị lẻ tập hợp n số nguyên {1, 2, , n} Cho α = (i1, i2, , in) hoán vị tập {1,2, ,n} Ta xét tất cặp (ik, ih), k < h Nếu ik > ih ta gọi cặp (ik, ih) cặp ngược, tức giá trị ik, ih xếp ngược với k,h Nếu α số cặp ngược chẵn ta gọi α hốn vị chẵn, ngược lại ta gọi α hốn vị lẻ Với ma trận vng A cấp n: A= a11 a12 a1n a21 a22 a2n an1 an2 ann tồn số thực gọi định thức ma trận A, ký hiệu det A, xác định công thức: det A = s(i1, i2, , in) a ∑ α 1i1 a 2i2 a nin (2.0) với α = (i1, i2, , in) chạy tập tất hoán vị tập {1,2, ,n}, s(i1, i2, , in) = α hoán vị chẵn -1 α hoán vị lẻ 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính Định thức ma trận cịn ký hiệu A= a11 a12 a1n a21 a22 a2n an1 an2 ann Với ma trận chữ nhật A cấp m x n ta tính định thức tất ma trận vuông cấp k, với k ≤ (m, n) Nếu tồn số r cho có ma trận cấp r có định thức khác 0, cịn ma trận vng cấp lớn r ta nói r hạng ma trận A Các phép biến đổi sơ cấp sau không làm biến đổi hạng ma trận: • Đổi chỗ hàng cột • Nhân hàng hay cột với số khác không • Cộng thành phần tương ứng hàng hai cột Các phép biến đổi sơ cấp sử dụng để tính định thức ma trận tìm nghiệm hệ phương trình tuyến tính Ma trận E gọi ma trận đơn vị cấp n E ma trận vuông cấp n E có dạng E= 0 0 2.1.3 Các phương pháp tính định thức a Tính định thức dựa trực tiếp vào định nghĩa Ta dùng (2.0) để tính định thức ma trận máy tính Tuy nhiên cách tính địi hỏi khoảng c*n! phép tính Đây số khổng lồ với n khơng lớn Ví dụ với máy tính đại cần hàng triệu năm để tính định thức ma trận cấp n = 25 b Tính định thức dựa vào cơng thức khai triển theo hàng Cho A ma trận vuông cấp n aij phần tử Định thức ma trận cấp n-1 sau “xóa” hàng thứ i cột thứ j khơng thay đổi vị trí thành phần lại, gọi minor phần tử aij , ký hiệu Mij Giá trị Aij = (-1)i+j Mij gọi phần bù đại số phần tử aij Ta có cơng thức sau để tính định thức ma trận vng cấp n thơng qua việc tính định thức ma trận cấp bé hơn: Khai triển định thức theo hàng thứ i: n det A = ∑ aij Aij j=1 15 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính Khai triển định thức theo cột thứ j: n ∑ aij Aij det A = i=1 Áp dụng cơng thức ta dùng thuật tốn đệ quy sau để tính định thức ma trận vuông cấp n : Nếu n = : A11 = 1; det A = a11 A11 n ∑ a1j A1j n > 1: det A = j=1 Tuy nhiên, cách tính trực tiếp, cách tính cần khoảng c*n! phép tính, khơng thể thực máy tính đại dù với n không lớn Rõ ràng việc phân tính thuật tốn giúp đánh giá thời gian tính tốn máy tính thời gian q lớn khỏi phải tốn cơng vơ ích viết chương trình chạy thử c Tính định thức cách chuyển ma trận dạng tam giác Ta biến đổi để đưa ma trận A dạng ma trận tam giác B= b11 b12 b1n b22 B2n 0 bmn B Vậy det A=det B = b11 b22 bnn 2.1.4 Ma trận nghịch đảo Ma trận nghịch đảo ma trận vuông A cấp n ma trận ký hiệu A-1, thoả mãn điều kiện A-1A = A A-1 = E Trong E ma trận đơn vị Có thể chứng minh để thỏa mãn điều kiện bắt buộc A-1 phải ma trận vuông, ma trận đảo tồn Điều kiện tồn ma trận nghịch đảo: Ma trận vng A cấp n có ma trận nghịch đảo det A ≠ Cách tính ma trận nghịch đảo: Gọi Aij phần bù đại số phần tử aij , ta có: A-1 = det A A11 A21 An1 A12 A22 An2 A1n A2n Ann 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính Tuy nhiên cơng thức có ý nghĩa lý thuyết, khơng thể áp dụng để tính trực tiếp ma trận đảo máy tính số phép tính địi hỏi lớn Trong phần sau ta áp dụng phương pháp khử Gauss-Jordan để tính ma trận nghịch đảo với số phép tính nhỏ nhiều (khoảng n3) 2.2 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Xét hệ phương trình gồm n phương trình tuyến tính với n ẩn số x1, x2, ,xn sau: a11x1 + a12x2 + + a1nxn = b1 a21x1 + a22x2 + + a2nxn = b2 (2.1) an1x1 + an2x2 + + annxn = bn Hệ phương trình viết dạng ma trận ⎡ a11 ⎢a 21 A= ⎢ ⎢ ⎢ ⎣a n1 a12 a 22 an2 a1n ⎤ a n ⎥⎥ ,x= ⎥ ⎥ a nn ⎦ ⎛ x1 ⎞ ⎜ ⎟ ⎜ x2 ⎟ ⎜ ⎟,b= ⎜ ⎟ ⎜x ⎟ ⎝ n⎠ Ax = b, ⎛ b1 ⎞ ⎜ ⎟ ⎜ b2 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜b ⎟ ⎝ n⎠ Nếu det A ≠ nghiệm hệ (2.1) tính theo cơng thức x = A-1b Áp dụng cơng thức tính ma trận đảo ta biến đổi dẫn đến lời giải diễn tả định lý Cramer sau: Định lý Cramer Gọi Aj ma trận nhận từ ma trận A cách thay cột thứ j cột b, hệ (2.1) có nghiệm xj tính công thức xj = det A j det A Tuy nhiên thực hành người ta không dùng công thức để tính nghiệm số phép tính q lớn Người ta dùng phương pháp hữu hiệu mà giới thiệu sau 2.2.1 Phương pháp trực tiếp giải hệ phương trình tuyến tính Giả sử ta giải hệ phương trình(2.1) a Phương pháp khử Gauss Phương pháp khử Gauss dùng cách khử dần ẩn để đưa hệ phương trình cho dạng tam giác giải hệ tam giác từ giới lên trên, khơng phải tính định thức Phương pháp thực qua bước sau: Q trình xi: - Bước 0: Dùng phương trình để khử x1 n-1 phương trình cịn lại Giả sử a11≠0 (Để cho công thức đơn giản , trước khử ta chia phương trình thứ cho a11 ) Cụ thể để khử x1 hàng thứ k( k=2,3,…n) ta phải tính lại hệ số akj hàng thứ k (j=1,2, n+1) sau: akj=akj-a1j*ak1/a11 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính - Bước 1: Dùng phương trình thứ để khử x2 n-2 phương trình cịn lại phía sau Giả sử a22≠0 (Để cho cơng thức đơn giản, trước khử ta chia phương trình thứ hai cho a22) Cụ thể để khử x2 hàng thứ k (k=3,4,…n) ta phải tính lại hệ số akj hàng thứ k (j=2, n+1) sau: akj=akj-a2j*ak2/a22 …… - Bước i: Dùng phương trình i để khử xi phương trình thứ i+1,i+2, , n Giả sử aii≠0 Để cho công thức đơn giản, trước khử ta chia phương trình thứ i cho aii) Cụ thể để khử xi hàng thứ k (k=i+1,…n) ta phải tính lại hệ số akj hàng thứ k (j=i, n+1) sau: akj=akj-aij*aki/aii - Bước n-1: Dùng phương trình thứ n-1 để khử xn-1 phương trình thứ n.Giả sử an-1 n-1≠0 (Để cho công thức đơn giản, trước khử ta chia phương trình thứ n-1 cho an-1 n-1) Cụ thể để khử xn-1 hàng thứ n ta phải tính lại hệ số anj hàng thứ n (j=n-1,n,n+1) sau: anj=anj-an-1j*an-1i/an-1n-1 Kết thúc trình khử Chú ý: Trong q trình giải xi ta giả thiết a11≠0, a22≠0,a33≠0, ,an-1 n-1≠0 Nếu hệ số khơng q trình khơng tiếp tục Lúc ta phải thay đổi cách tính Giả sử khử x1 ta gặp a11=0 ta nhìn hệ số a21, a31 an1 x1 phương trình phía dưói, có hệ số khác khơng ta lấy thay cho vai trị a11 cách hốn vị hai phương trình Nếu tất hệ số số a11, a21, a31 ,an1 khơng hệ cho suy biến Vậy tốt trước khử x1 ta chọn hệ số a11, a21, a31 ,an1 hệ số có giá trị tuyệt đối lớn làm trụ thứ nhất( gọi trụ tối đại thứ nhất) hoán vị hàng thứ cho hàng có giá trị tuyệt đối lớn nhất) Tức ta chọn hàng r cho: | ar1 | = max {| ak1 | / k=1,2, ,n} Sau ta đổi hàng r cho hàng Tương tự bước khử x2, xn-1 , trước khử ta tìm trụ tối đại: | ari | = max {| aki | / k=i,i+1, ,n} ( với i=2,3,…,n-1) Sau ta đổi hàng r cho hàng i Sau thực xong q trình giải xi hệ phương trình (2.1) có dạng: Dạng1: Tại bước (bước i) ta không chia cho hệ số aii a11x1 + a12x2 + + a1nxn = b1 a22x2 + + a2nxn = b2 ann xn = bn 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính hoặc: Dạng 2: Tại bước (bước i) ta chia cho hệ số aii: x1 + a12x2 + + a1nxn = b1 x2 + + a2nxn = b2 xn = bn Xuất phát từ phương trình thứ n ta tính giá trị xi cơng thức trình giải ngược sau: Quá trình giải ngược xn = bn/ann ( xn=bn) n n j=i+1 j=i+1 xi = (bi -( ∑ aijxj) )/aii ) (bi -( ∑ aijxj) ), i =n-1, n-2, , Để việc viết chương trình đơn giản, cài đặt máy tính ta dùng mảng thay cho ma trận a vec tơ b Tức ⎡ a11 ⎢a ⎢ 21 ⎢ ⎢ ⎢⎣ a n1 a12 a1n a 22 a n an2 a nn a1,( n +1) ⎤ ⎡ a11 a 2,( n +1) ⎥⎥ ⎢a 21 = ⎢ ⎥ ⎢ ⎥ ⎢ a n ,( n +1) ⎥⎦ ⎣ a n1 a12 a1n a 22 a n an2 a nn a b1 ⎤ b2 ⎥⎥ ⎥ ⎥ bn ⎦ Ta áp dụng phép biến đổi sơ cấp vừa trình bày để biến đổi ma trận chữ nhật cấp nx(n+1) dạng ⎡1 a'12 ⎢0 ⎢ ⎢ ⎢ ⎢⎣0 a'1n a' n a'1,( n +1) ⎤ a' 2,( n +1) ⎥⎥ ⎥ ⎥ a' n ,( n +1) ⎥⎦ Ví dụ:Giải hệ phương trình sau phương pháp khử Gauss: 2x1 + 3x2 +x3 = 11 -x1 + 2x2 -x3 = 3x1 + 2x3 =9 Bước1: Hệ phương trình tương đương với: =9 h1=h3 -x1 + 2x2 -x3 = h2=h2 2x1 + 3x2 +x3 = 11 h3=h1 3x1 + 2x3 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 2: Các phương pháp số đại số tuyến tính 3x1 + + 2x3 h1=h1 =9 2x2 - x3/3 = h2=h2+h1/3 3x2 - x3/3 =5 h3=h3-2*h1/3 3x1 + +2x3 =9 h1=h1 3x2 - x3/3 =5 h2=h3 2x2 - x3/3 =3 h3=h2 Bước 2: 3x1 + + 2x3 = h1=h1 x2 - x3 /3 = h2=h2 h3=h3-2*h2/3 -x3/9 = -1/3 Vậy x3=3 x2=2 x1=1 Chương trình minh họa Sau đoạn chương trình thể (mơ tả) thuật toán khử Gauss /*Giai he phuong trinh tuyen tinh dung khu Gauss, ma tran vuong n, cac phan tu cot thu n+1 la vecto b*/ /*Dua ma tran a ve dang tam giac tren Giai he phuong trinh tuyen tinh Tra ve gia tri true neu co nghiem */ int khugauss(kmatran a,double *x,int n) { int i,j,k,h;double tmp,p;kmatran aa; int n1=n+1; for(i=1;i

Ngày đăng: 31/10/2020, 12:40

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan