Sử dụng thuật toán Cramer
MỤC LỤC MỤC LỤC 1 CHƯƠNG 1: MA TRẬN–ĐỊNH THỨC VÀ HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 2 1.1.MA TRẬN-ĐỊNH THỨC 2 1.1.1.MA TRẬN 2 1.1.2.ĐỊNH THỨC 3 1.2.HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 7 1.2.1.DẠNG TỔNG QUÁT CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 7 1.2.2.GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 10 1.2.3.PHƯƠNG PHÁP GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 14 CHƯƠNG 2 : THUẬT TOÁN-GIẢI THUẬT 19 2.1 ĐỊNH THỨC MA TRẬN 19 2.1.1 THUẬT TOÁN 19 2.1.2 GIẢI THUẬT 20 2.2 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 21 2.2.1 THUẬT TOÁN CRAMER 21 2.2.2 GIẢI THUẬT 21 CHƯƠNG 3: CHƯƠNG TRÌNH 23 3.1. TÍNH ĐỊNH THỨC VÀ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 23 3.2HÌNH ẢNH 32 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH CHƯƠNG 1: MA TRẬN–ĐỊNH THỨC VÀ HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 1.1. MA TRẬN-ĐỊNH THỨC 1.1.1. MA TRẬN a. Định nghĩa Một bảng số chữ nhật có m hàng, n cột gọi là ma trận cỡ m x n, ký hiệu là : A = [a ij ] mxn hay A = (a ij ) mxn trong đó: a ij là phần tử của ma trận A nằm ở giao điểm của hàng i và cột j. Ví dụ 1: Là ma trận 3x2 Chú ý: Khi m=n thì ta gọi ma trân A là ma trận vuông cấp n (gọi tắt là ma trận cấp n). A 11, a 22, ,a mn được gọi là các phần tử chéo. Đường thẳng đi qua các phần tử chéo được gọi là đường chéo chính. Ma trận tam giác trên: là ma trận vuông cấp n mà tất cả các phần tử nằm dưới đường chéo chính đều bằng 0, tức là a ij = 0 nếu i > j. Ma trận tam giác dưới: là ma trận vuông cấp n mà tất cả các phần tử nằm ở trên đường chéo chính đều bằng 0, , tức là a ij = 0 nếu i < j. 2 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Ma trận chéo: là ma trận vuông cấp n mà tất cả các phần tử nằm ngoài đường chéo đều bằng 0, tức là a ij = 0 nếu i ≠ j. Ma trận đơn vị: là ma trận chéo mà tất cả các phần tử nằm trên đường chéo chính đều bằng 1 và ký hiệu là I. Ma trận không: là ma trận mà tất cả các phần tử của nó đều bằng không. Ma trận không ký hiệu là O. Hai ma trận bằng nhau: Hai ma trận A và B được gọi là bằng nhau, ký hiệu A = B , nếu chúng cùng cỡ và các phần tử có cùng vị trí bằng nhau, tức là: A= B b. Các phép toán về ma trận. Phép cộng hai ma trận cùng cỡ. Phép nhân ma trận với một số. Phép nhân ma trận với ma trận. Ma trận chuyển vị. 1.1.2. ĐỊNH THỨC Xét ma trận vuông cấp n: A= 3 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Từ ma trận A, bỏ đi hàng i và cột j ta thu được ma trận vuông cấp n-1. Ta ký hiệu nó là M ij và gọi nó là ma trận con tương ứng với phần tử a ij . a. Định nghĩa Định thức của ma trận A, ký hiệu là det(A) và được định nghĩa dần như sau: A là ma trận cấp 1: A = [a 11 ] thì det(A) = a 11 |a 11 | = a 11 , gọi là định thức cấp 1. A là ma trận cấp A= Thì det(A)= là một số được định nghĩa như sau: Det(A)= = a 11 a 22 – a 12 a 21 Các số a 11 , a 12 , a 21 , a 22 gọi là các phần tử của định thức Chú ý: Định thức cấp 2 bằng tích đường chéo chính trừ đi tích đường chéo phụ. Để ký hiệu định thức, người ta dùng 2 gạch đứng đặt ở 2 bên. Ví d :ụ b. Các tính chất của định thức Tính chất 1: Định thức của ma trận chuyển vị A t bằng định thức của ma trận A, tức là : det(A t ) = det(A). 4 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Tính chất 2: Đổi chỗ 2 hàng( hay 2 cột ) của một định thức, ta được một định thức mới bằng định thức cũ đổi dấu. Tính chất 3: Một định thức có 2 hàng (hay 2 cột ) như nhau thì bằng 0. Tính chất 4: • Tính det(A) bằng cách khai triển theo hàng thứ i. Det(A) = (-1) i+1 a i1 .det(M i1 ) +(-1) i+2 a i2 .det(M i2 ) + + (-1) i+n a in .det(M in ) • Tính det(A) bằng cách khai triển theo cột thứ j. Det(A) = (-1) 1+j a 1j .det(M 1j ) +(-1) 2+j a 2j .det(M 2j ) + + (-1) n+j a nj .det(M nj ) Tính chất 5: Một định thức có một hàng( hay một cột) toàn là số không thì bằng không. Tính chất 6: Khi ta nhân các phần tử của một hàng( hay một cột) với cùng một số thực k thì ta được một định thức mới bằng định thức cũ nhân với k. Hệ quả: Khi các phần tử của một hàng (hay một cột) có một thức số chung, ta có thể đưa thừa số chung đó ra ngoài dấu ngoặc định thức. Tính chất 7: Một định thức có 2 hàng( hay 2 cột ) tỷ lệ thì bằng không. Tính chất 8: Khi tất cả các phần tử của một hàng (hay một cột ) có dạng tổng của 2 số hàng thì định thức đó có thể phân tích thành tổng của 2 định thức, chẳng hạn như: Tính chất 9: Một định thức có một hàng (hay một cột) là tổ hợp tuyến tính của các hàng khác(hay cột khác) thì định thức ấy bằng không. 5 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Tính chất 10: Khi ta cộng bội k của hàng khác ( hay bội k của cột này vào cột khác ) thì ta được một định thức mới bằng một định thức cũ. Tính chất 11: Định thức của ma trận tam giác trên bằng tích các phần tử chéo. c. Cách tính định thức bằng phép biến đổi sơ cấp Ta sử dụng các tính chất của định thức để biến đổi một định thức về dạng đơn giản như: định thức ma trận tam giác trên, định thức ma trận tam giác dưới. Các phép biến đổi về hàng ma ta hay sử dụng đó là: - Nhân 1 hàng với một số thực k ≠0(tính chất 6). - Đổi chỗ 2 hàng(tính chất 2). - Cộng k lần hàng này vào hàng khác(tính chất 10). Ví dụ:Cho một ma trận cấp 4. Tính định thức bằng cách biến đổi ma trận về dạng ma trận tam giác trên. Lấy phần tử là p1=a11, ta chia các phần tử của hàng thứ nhất cho p1=a11 thì định thức sẽ là: D/p1(theo tính chất 6), và ma trận còn lại là: Lấy hàng 2 trừ đi hàng 1 đã nhân với a21, lấy hàng 3 trừ đi hàng 1 đã nhân với a31 và lấy hàng 4 trừ đi hàng 1 đã nhân với a41(thay hàng bằng tổ hợp tuyến tính của các hàng còn lại), thì định thức vẫn là D/p1 và ma trận là: 6 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Lấy giá tri trụ là p2= a’22. Ta chia các phần tử của hàng thứ 2 cho p2 thì định thức sẽ là: D/(p1p2) và mà phần còn lại là: Lấy hàng 1 trừ đi hàng 2 đã nhân với a’12, lấy hàng 3 trừ đi hàng 2 đã nhân với a’32, và lấy hàng 4 trừ đi hàng 2 đã nhân với a’42, ta có định thức vẫn là D/(p1p2) và ma trận còn lại là: Tiếp tục lấy hàng 3, hàng 4 làm trụ, ta thu được ma trận cuối cùng là: Định thức của ma trận này là: Nên định thức của ma trận A là: D/(p1p2p3p4) (phương pháp trên còn có thể mở rộng cho ma trận cấp n) 1.2. HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 1.2.1. DẠNG TỔNG QUÁT CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH Đó là một hệ gồm m phương trình đại số bậc nhất đối với n ẩn: 7 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Trong đó: x 1 , x 2 , ,x n là các ẩn số. a ij là hệ số ở phương trình thứ i của ẩn thứ x j. b i là vế phải của phương trình thứ i. Chú ý: o Nếu m = n : Hệ (I) trở thành hệ vuông với n phương trình n ẩn. o Nếu b j =0, ∀ i thì hệ (I) gọi là hệ thuần nhất. Hệ này được viết dưới dạng ma trận là : A.x=b trong đó: A là ma trận được lập từ các hệ số: A= (a ij ) mxn A= b là vecto cột các số hạng tự do(hay gọi là ma trận vế phải): 8 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH b = = t x được gọi là ma trận ẩn(vecto cột các biến): x = = t Hệ phương trình đại số tuyến tính được gọi là: thuần nhất nếu tất cả các b i = 0, i =1, 2, , m. không thuần nhất nếu có ít nhất một b i ≠ 0. tương thích nếu hệ có ít nhất một nghiệm, tức là tồn tại một bộ giá trị của x 1 , x 2 , , x n mà khi thay vào sẽ có một đồng nhất thức. không tương thích nếu không có một nghiệm nào. xác định nếu hệ chỉ có một nghiệm duy nhất. bất định nếu tồn tại quá một nghiệm. Muốn giải hệ phương trình đại số tuyến tính thì trước hết phải xác định xem hệ đã cho tương thích hay không tương thích. Nếu là hệ tương thích thì lại phải xem hệ là xác định hay bất định. Nếu hệ phương trình là xác định thì ta đi tìm nghiệm duy nhất của nó. 9 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH Ví dụ: Hệ phương trình 2 ẩn: Hệ 3 phương trình 3 ẩn: Hệ 2 phương trình 3 ẩn: 1.2.2. GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Khi giải hệ phương trình đại số tuyến tính có thể xảy ra hai trường hợp: m = n và m ≠ n. a. Trường hợp m = n Lúc này ma trận A có dạng: A= Định nghĩa: Hệ (I) gọi là hệ Cramer nếu det (A) ≠ 0 (ma trận A không suy biến). Khi đó sẽ tồn tại ma trận nghịch đảo A -1 . Định lí (Cramer): Hệ Cramer có nghiệm duy nhất tính bằng công thức: 10 [...]... tương ứng 13 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH 1.2.3 PHƯƠNG PHÁP GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH a Giải hệ phương trình bằng phương pháp ma trận nghịch đảo 1 Xác địnhma trận hệ số A? 2 Tính ma trận nghịch đảo A-1=? 3 Tính ma trận ẩn bởi công thức: x= A-1.b Từ đó suy ra nghiệm của phương trình b Giải hệ phương trình tuyến tính bằng phương pháp Cramer Tính det(A) = ? Tính det(Aj) = ? Tính nghiệm của hệ. .. LẬP TRÌNH i=1,2, n Chú ý: Từ định lý trên, ta có 2 phương pháp giải hệ phương trình như sau: Phương pháp 1: Phương pháp ma trân nghịch đảo: 1 Xác địnhma trận hệ số A? 2 Tính ma trận nghịch đảo A-1=? 3 Tính ma trận ẩn bởi công thức: x= A-1.b từ đó suy ra nghiệm của phương trình Phương pháp 2: Phương pháp Cramer: 1 Tính det(A)=?, det(Aj)=? 2 Tính nghiệm của hệ bởi công thức: xj= Ví dụ: Giải hệ pt... thì Đổi chỗ dòng k với dòng t và detA = detA*(-1) ; Chọn trụ là akk Chia dòng k cho akk; Khử aik ở các dòng i (i=k+1, k+2,…) bằng cách: Tính: hệ số = aik Dòng i = dòng i – dòng k * hệ số Giá trị định thức det(Ak)=det(Ak)*akk Nghiệm của hệ là x[i]= det(Ak)/det(A) 22 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH CHƯƠNG 3: CHƯƠNG TRÌNH 3.1 TÍNH ĐỊNH THỨC VÀ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH #include #include... KỸ THUẬT LẬP TRÌNH Từ phương trình thứ 3, ta có: x3 = 2 Từ phương trình thứ 2, ta có: x2 =-1/3+5/3x3 = 3 Từ phương trình thứ 1, ta có: x1 =3/2-1/2x2+1/2x3 = 1 Vậy nghiệm của hệ là: x1 = 1; x2 = 3; x3 = 2 CHƯƠNG 2 : THUẬT TOÁN-GIẢI THUẬT 2.1 ĐỊNH THỨC MA TRẬN 2.1.1 THUẬT TOÁN Có rất nhiều phương pháp khác nhau để tính định thức trong ma trận như gauss,cramer,choleski,…trong đó phương pháp giải đưa ma... đây: Nếu t≠k thì đổi chỗ dòng k với dòng t và detA = detA*(-1) ; Chọn trụ là akk Chia dòng k cho akk Khử aik ở các dòng i (i=k+1, k+2,…) bằng cách: Tính: hệ số = aik Dòng i = dòng i – dòng k * hệ số Giá trị định thức det(A)=det(A)*akk 20 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH 2.2 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 2.2.1 THUẬT TOÁN CRAMER Xét hệ gồm n phương trình n ẩn: (I) A.x=b Ma trận Aj là ma trận... phải b) ,tức là: 15 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH = [A|b]= Phương pháp khử Gauss: ta sử dụng các phép biến đổi sơ cấp về, đó là: Đổi chỗ 2 hàng (đổi vị trí 2 phương trình cho nhau) Nhân, chia các phần tử của một hàng với số thực k ≠ 0 (nhân, chia 2 vế của phương trình với số thực k ≠ 0 ) Cộng bội k hàng này vào hàng khác ( công bội k phương trình này vào phương trình khác ) để biến đổi ma trận mở rộng... det(Aj) = ? Tính nghiệm của hệ bởi công thức xj = det(Aj) / det(A) Ví dụ: Giải: Ta có: A = = ;b= ; Det(A)= 5 det(A1) = 5 14 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH = det(A2) = 10 = det(A3) = -1 Vậy = = =1 ; = = =2 ; = = = -2 c Giải hệ phương trình tuyến tính bằng biến đổi sơ cấp ( pp khử Gauss) (II) Xét hệ phương trình: Ta lập ma trận mở rông bằng cách từ ma trận A, ta thêm vào vế phải của ma trận A bởi cột vế phải... có về dạng của ma trận tam giác trên Sau đó viết lại hệ phương trình đã cho ứng với ma trận mở rộng sau khi đã biến đổi, rồi giải hệ phương trình bằng cách giải ngược từ dưới lên 2 x1 + x2 − x3 = 3 x1 − x2 + 2 x3 = 2 3 x − 2 x + x = −1 2 3 1 Ví dụ: Giải: Quá trình thuận Bước 1: - Giả sử a11 ≠ 0, chia dòng 1 cho a11 (a11 là phần tử trụ) Hệ đã cho tương đương với: 1 a21 a 31 ... từ ma trận A bỏ đi cột thứ j và thay vào đó cột vế phải Lần lượt tính định thứ của các ma trận thay thế rồi tìm nghiệm theo công thức Cramer là xj = 2.2.2 GIẢI THUẬT detA = 1; o o o Với mỗi dòng k Chọn t sao cho Nếu atk=0 thì det(A)=0; dừng thuật toán Nếu atk ≠ 0 thì làm các việc sau đây: 21 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH -Thay b vào từng cột của ma trân A để tính các định thức -Cho k=1,2,3,…, n -Với mỗi... sau: Giải : ta có: A= = ; b= ; det(A1) = 98; ; Det(A) =49 = det(A2) = 49 11 ĐỒ ÁN KỸ THUẬT LẬP TRÌNH = det(A3) = 49 Ta có nghiệm của hệ đã cho là: = = 2; = =1 ; = =1 b Trường hợp m ≠ n Ta gọi: A= ( a ij )mx n là ma trận của hệ Sau khi thêm cột các số hạng tự do b vào ma trận A, ta lập được ma trận mở rộng B: A= Để giải trường hợp này, ta dựa vào định lí sau: Định lí (Croneker – Capeli): Điều kiện cần và . TRẬN–ĐỊNH THỨC VÀ HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 2 1.1.MA TRẬN-ĐỊNH THỨC 2 1.1.1.MA TRẬN 2 1.1.2.ĐỊNH THỨC 3 1.2.HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 7 1.2.1.DẠNG TỔNG QUÁT CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH. THUẬT LẬP TRÌNH Ví dụ: Hệ phương trình 2 ẩn: Hệ 3 phương trình 3 ẩn: Hệ 2 phương trình 3 ẩn: 1.2.2. GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH Khi giải hệ phương trình đại số tuyến tính có thể. GIẢI THUẬT 20 2.2 HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 21 2.2.1 THUẬT TOÁN CRAMER 21 2.2.2 GIẢI THUẬT 21 CHƯƠNG 3: CHƯƠNG TRÌNH 23 3.1. TÍNH ĐỊNH THỨC VÀ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH 23 3.2HÌNH