1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu và trình bày việc giải hệ phương trình tuyến tính bằng việc sử dụng phương pháp khử gauss

14 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Điều này càng được khẳng định, khi mà mọi chương trình đào tạo chính quy về các ngành liên quan đến tin học, Đại số tuyến tính luôn luôn là mt trong những học phần cơ bản mà sinh viên p

Trang 1

1

Lời nói đầu

Như chúng ta đã biết, cuc cách mạng công nghiệp 4.0 đã chính thức nổ ra, đánh dấu mt kỷ nguyên mới – kỷ nguyên của công nghệ thông tin và dữ liệu lớn Tại thời điểm này, những cỗ máy, với những công cụ toán học cũng như công cụ từ những ngành khoa học phụ trợ, đã thực sự có thể đc lập “tư duy”, tự mình tìm kiếm những thông tin có giá trị từ mt mớ thông tin khổng lồ, hỗn đn Những tư tưởng về học máy, về trí tuệ nhân tạo giờ đây đã len lỏi vào từng ngõ ngách trong cuc sống Từ những thứ đơn giản như những cỗ máy bán nước, việc mua sắm gia đình tới những quy trình phức tạp như phẫu thuật ni soi, quản lý xuất nhập cảnh, … tất cả đều dần dần sử dụng trí tuệ nhân tạo như là mt cách thức để nâng cao tối đa tính hiệu quả cũng như đ chính xác

Tuy vậy, đa số vẫn không chú ý rằng, ẩn sau những khái niệm tưởng như cao siêu ấy, đơn thuần chỉ là những công thức toán học Những mô hình học máy phức tạp kia, thực chất chỉ là những lần lặp với mục tiêu tối giản hàm mục tiêu, … Sau cùng, mọi thứ chúng ta đang có ở đây cũng chỉ là những kiến thức toán học đã được xây dựng từ trước

Toán học cũng có nhiều lĩnh vực Dù vậy, có thể khẳng định rằng, Đại số tuyến tính đóng mt vai trò quan trọng nhất trong Khoa học máy tính Từ việc xử lý ảnh, dựng hình đến việc dựng các mô hình tensors liên kết với nhau tạo thành mạng neuron, … tất cả chúng về bản chất đều là những thao tác trên ma trận số Điều này càng được khẳng định, khi mà mọi chương trình đào tạo chính quy về các ngành liên quan đến tin học, Đại số tuyến tính luôn luôn là mt trong những học phần cơ bản mà sinh viên phải vượt qua đầu tiên

Có thể khái quát được, việc nghiên cứu Đại số tuyến tính gói gọn trong việc xem xét những hệ phương trình tuyến tính Những xem xét này đã có từ rất lâu đời: Những nhà toán học Trung Hoa đã nhắc đến nó trong tập Cửu chương về nghệ thuật

Trang 2

toán học (The Nine Chapters on the Mathematical Art) Hay toán học cận đại cũng ghi nhận những nghiên cứu của Decartes hay Leibniz về những hệ phương trình tuyến tính này

Hiểu được t m quan tr ng c a c a vầ ọ ủ ủ ấn đề này, trong báo cáo l n này, nhóm 8-Hoàng ầMinh Đức và Ph m Nh t Quang s ạ ậ ẽ đi tìm hiểu và trình bày vi c gi i h ệ ả ệ phương trình tuyến tính bằng việc s dử ụng phương pháp khử Gauss nh m gi i ra nghiằ ả ệm đúng của hệ phương trình

Xin cảm ơn TS Hà Thị Ngọc Yến đã giúp chúng tôi chỉnh sửa và hoàn thành báo cáo lần này Do hạn chế về thời gian cũng như về kiến thức nên báo cáo ắt hẳn sẽ không tránh khỏi những thiếu sót Quý bạn đọc có góp ý, xin vui lòng gửi đến địa chỉ duc.hmbk@gmail.com Mọi đóng góp mang tính xây dựng đều được hoan nghênh!

Chương I Kiến Thức Cơ bản

1.1 Hệ phương trình tuyến tính – Các khái niệm cơ bản1.1.1 Hệ phương trình tuyến tính

Hệ phương trình tuyến tính m phương trình n ẩn có dạng:

𝑎11𝑥1+ 𝑎12𝑥2+ ⋯ + 𝑎1𝑛𝑥𝑛= 𝑏1𝑎 𝑥21 1+ 𝑎22𝑥2+ ⋯ + 𝑎2𝑛𝑥𝑛= 𝑏2

𝑎𝑚1𝑥1+ 𝑎𝑚2𝑥2+ ⋯ + 𝑎𝑚𝑛𝑥𝑛= 𝑏𝑚(1.1)

Trong đó, các hệ số 𝑎𝑖𝑗, 𝑏𝑖 thuc trường K Trong phạm vi báo cáo ta coi K ≡R Từ đây ta có các định nghĩa sau:

Trang 3

…𝑎𝑛1 𝑎𝑛2… 𝑎𝑛𝑛

…𝑎𝑛1 𝑎𝑛2… 𝑎𝑛𝑛 𝑏𝑛

]

c Ma trận B thu được từ ct hệ số tự do, gọi là ma trận hệ số tự do của hệ

𝐵 = [𝑏1𝑏2…𝑏𝑛]

Như vậy, nếu gọi X là ma trận ct biểu diễn các ẩn của hệ phương trình, thì hệ phương trính từ đây có thể viết được dưới dạng:

Trang 4

Mt hệ phương trình có thể có duy nhất nghiệm, vô số nghiệm hoặc không có nghiệm

1.1.3 Biến đổi tương đương

Hai hệ phương trình được gọi là tương đương nếu hai hệ phương trình đó có cùng không gian nghiệm

Các phép biến đổi sơ cấp của hệ phương trình là các phép biến đổi:a Nhân mt phương trình nào đó của hệ với mt số khác 0

b Cng vào mt phương trình nào đó của hệ với mt phương trình khác đã nhân với mt số khác 0

c Đổi chỗ hai phương trình của hệ

Từ đây, ta có thể rút ra mt số nhận xét sau:

- Các phép biến đổi sơ cấp của hệ phương trình tương ứng với các phép biến

đổi trên hàng của ma trận mở rng của hệ

- Khi thực hiện các phép biến đổi sơ cấp, ta thu được mt hệ phương trình mới tương đương với hệ phương trình ban đầu

1.1.4 Các kết quả quan trọng

a Hệ phương trình Cramer Định lý - Cramer

Trang 5

5

Mt hệ phương trình Cramer là mt hệ phương trình mà số ẩn bằng số phương trình và định thức của ma trận hệ số khác không

Từ đây, ta có thể phát biểu định lý Cramer

Định lý 1.1 (Cramer): Hệ phương trình Cramer luôn có duy nhất nghiệm Chứng minh:

Xét hệ phương trình Cramer: AX=B

Do đây là hệ phương trình Cramer nên ta có: det(A) ≠ 0

Như vậy tồn tại ma trận nghịch đảo của A là 𝐴−1.Nhân cả hai vế của hệ phương trình ban đầu với 𝐴−1ta được:

𝑎 𝑥𝑚1 1+ 𝑎𝑚2𝑥2+ ⋯ + 𝑎𝑚𝑛𝑥𝑛= 𝑏𝑚

Có nghiệm khi và chỉ khi hạng của ma trận hệ số bằng hạng của ma trận mở rng Từ đây, ta rút ra hai hệ quả quan trọng sau:

Hệ quả 1.2.1:Nếu hệ phương trình (1.1) với n ẩn có 𝑟𝐴= 𝑟A󰋀= 𝑛 thì hệ có nghiệm duy nhất

Trang 6

Chứng minh:

Giả sử hệ có 𝑟𝐴= 𝑟A󰋀= 𝑛 Khi đó tồn tại định thức con cơ sở của của M(định thức con khác 0), cả A và A󰋀 Bây giờ chúng ta sẽ chứng minh rằng mỗi dòng của A󰋀 khác với n dòng đầu tiên là tổ hợp tuyến tính của n dòng này.Khi đó hệ phương trình đã cho tương đương với hệ phương trình:

𝑎11𝑥1+ 𝑎12𝑥2+ ⋯ + 𝑎1𝑛𝑥𝑛= 𝑏1𝑎 𝑥21 1+ 𝑎22𝑥 + ⋯ + 𝑎2 2𝑛𝑥𝑛= 𝑏2

…𝑎𝑟1 𝑎𝑟2 … 𝑎𝑟𝑟|

Bởi vì mỗi dòng thứ i của , là tổ hợp tuyến tính của r dòng đầu tiên nên hệ đã A󰋀cho tương đương với:

𝑎11𝑥1+ 𝑎12𝑥2+ ⋯ + 𝑎1𝑛𝑥𝑛= 𝑏1− 𝑎1 𝑟+1()𝑥(𝑟+1)− ⋯ − 𝑎1𝑛 𝑛𝑥𝑎 𝑥21 1+ 𝑎22𝑥2+ ⋯ + 𝑎2𝑛𝑥𝑛= 𝑏2− 𝑎2(𝑟+1)𝑥(𝑟+1)− ⋯ − 𝑎2𝑛 𝑛𝑥

𝑎 𝑥𝑟1 1+ 𝑎𝑟2𝑥2+ ⋯ + 𝑎𝑟𝑟𝑥𝑟= 𝑏𝑟− 𝑎𝑟(𝑟+1)𝑥(𝑟+1)− ⋯ − 𝑎𝑟𝑛𝑥𝑛 (1.3)

Trang 7

7

Đây là mt hệ phương trình Cramer r phương trình r ẩn 𝑥1, 𝑥2, 𝑥 , … , 𝑥3 𝑟.Với mỗi b giá trị (𝑐𝑟+1, … , 𝑐𝑛) của các ẩn (𝑥𝑟+1, … , 𝑥𝑛) ta được mt nghiệm của (1.3) là (𝑐1, … , 𝑐𝑟).Khi đó (𝑐1, 𝑐2, … , 𝑐𝑟, 𝑐𝑟+1, … , 𝑐𝑛) là nghiệm của (1.1)

*Nhận xét: Những hệ quả của định lý Kronecker Capelli rất qua trọng, nó là cơ sở giúp cho chúng ta thực hiện phương pháp khử Gauss khi cài đặt phương pháp giải quyết những trường hợp phương trình vô nghiệm hoặc có vô số nghiệm

Chương II Phương pháp Gauss (Sử dụng cho ma tr n vuông)

2.1 Ý tưởng phương pháp

Phương pháp Gauss (Gauss Elimination) là mt phương pháp giải đúng hệ phương trình tuy n tính Nó s dế ử ụng những phép biến đổi cơ bản, biến ma tr n m rậ ở ng của hệ phương trình tuyến tính về dạng ma tr n hình thang (Row echelon form), ậsau đó sẽ giải lần lượ ừng phương trình của hệ theo thứ tự từ dưới lên, khi mà các t tphương trình ở dưới sẽ đơn giản hơn (ít ẩn hơn), và khi đó việc tìm từng giá tr cị ủa ẩn thỏa mãn hệ phương trình sẽ dễ dàng hơn

2.2 Nội dung phương pháp

Như đã nói ở trên, phương pháp Gauss là việc thực hiện những phép biến đổi tương đương trên ma trận mở rng c a h ủ ệ phương trình tuyến tính, hoặc phép th ếđể ả gi i hệ phương trình này Và ở đây, nhóm em xin được phép trình bày phương pháp Gauss cho ma tr n vuông cậ ấp n (n phương trình – n ẩn):

*Cho ma trận:

𝐸1: 𝑎11𝑥1+ 𝑎12𝑥 + ⋯ + 𝑎1𝑛𝑥𝑛2 = 𝑏1𝐸2: 𝑎21𝑥1+ 𝑎22𝑥 + ⋯ + 𝑎2 2𝑛𝑥𝑛= 𝑏2

𝐸𝑛: 𝑎𝑚1𝑥1+ 𝑎𝑚2𝑥2+ ⋯ + 𝑎𝑚𝑛𝑥𝑛= 𝑏1 (1)

- Ta tách h ệ phương trình trên thành dạng ma trận: AX = B

trong đó:

Trang 8

A =[

𝑎11 𝑎12 ⋯ 𝑎1𝑛𝑎21 𝑎22 ⋯ 𝑎2𝑛

𝑎𝑛1 𝑎𝑛2 ⋯ 𝑎𝑛𝑛 ]

; 𝑋 = [𝑥1𝑥2⋮𝑥𝑛

] ; 𝐵 = [𝑏1𝑏2⋮𝑏𝑛

] - Từ các ma tr n trên, ta xây d ng ma tr n b sung: ậ ự ậ ổ

𝐴 = [

𝑎11 𝑎12 ⋯ 𝑎1𝑛 𝑏1𝑎21 𝑎22 ⋯ 𝑎2𝑛 𝑏2

𝑎𝑛1 𝑎𝑛2 ⋯ 𝑎𝑛𝑛 𝑏𝑛]

- Tiếp theo, chúng ta s ẽ thực hiện phương pháp Gauss theo 2 quá trình +) Quá trình thuận:

Giả s ử𝑎11≠ 0, ta sẽ thực hi n thao tác sau: ệ

((𝐸𝑗) − 𝑎𝑖𝑖𝑎𝑗𝑖 × (𝐸𝑖 )) → (𝐸𝑗 ) với m i j = i + 1, i + 2, , nỗCác thao tác này s ẽ khử ệ ố ủ h s c a biến 𝑥𝑖 trong mỗi hàng dưới hàng th i v i ứ ớmỗi i = 1,2, , n − 1 Ma trận cu i cùng s có dố ẽ ạng như sau:

𝑎11𝑥1+ 𝑎12𝑥2+ ⋯ + 𝑎1𝑛𝑥𝑛 = 𝑎1.𝑛+1 𝑎22𝑥 + ⋯ + 𝑎 𝑥2 2𝑛 𝑛= 𝑎2.𝑛+1

𝑎𝑛𝑛𝑥𝑛= 𝑎𝑛.𝑛+1

Trong đó các phần tử ở ct n+1 tương ứng với 𝑏1 2, 𝑏 ,… , 𝑏𝑛 +) Quá trình ngh ch: ị

Bước 1: Giải phương trình hàng 𝐸𝑛 ta được 𝑥𝑛= 𝑎𝑛.𝑛+1𝑎𝑛.𝑛

(Lưu ý: Nếu hàng 𝐸𝑛 g m toàn nh ng s 0 thì b ồ ữ ố ỏ qua bước này và đặt 𝑥𝑛= 𝑡 p t c gi i nhđể tiế ụ ả ững bước ti p theo) ế

Trang 9

9

Bước 2: S d ng nghiử ụ ệm đã thu đượ ừ việc t c giải phương trình hàng 𝐸𝑛 ta giải phương trình ở hàng 𝐸𝑛−1 và s có ẽ 𝑥𝑛−1=𝑏𝑛−1− 𝑎𝑛−1.𝑛 × 𝑥𝑛

𝑎𝑛−1.𝑛−1Bước 3: Tương tự như trên, ta lần lượt giải ngược t ừ dưới lên các 𝑥𝑛−2, 𝑥 , … 𝑛−3 và có công th c tứ ổng quát như sau:

𝑥𝑖= 𝑎𝑖,𝑛+1− ∑𝑛𝑗= 𝑖+1𝑎𝑖𝑗×𝑥𝑗

𝑎𝑖𝑖 với mỗi 𝑖 = 𝑛 − 1, 𝑛 − 2, … , 2, 1 Đểhiểu rõ hơn, ta đến với mt số ví d ụ như sau:

Ví d ụ 1:

-2x + 3y + 3z = -9 3x - 4y + z = 5 -5x + 7y + 2z = -14

- Ta t o ra ma tr n b sung ạ ậ ổ 𝐴 (: −2 3 33 4 1−5 7 2 |

−95−14) - Biến đổi trên hàng để đưa về ma tr n b c thang ậ ậ 𝐴′:

(1 −10 −1 −1140 0 0 |

0) - Lần lượt giải t ừ dưới lên ta s ẽ thu được {𝑦 = −11𝑡 − 17𝑥 = −15𝑡 −21

𝑧 = 𝑡 Ví d 2: ụ

x + y + z = 2 3x - - 2z = 4 y 5x + y - z = 10

- Ta t o ra ma tr n b sung ạ ậ ổ 𝐴 (: 1 13 −1 −215 1 −1 |

2410)

Trang 10

- Biến đổi trên hàng để đưa về ma tr n b c thang ậ ậ 𝐴′: (0 4 51 1 10 0 −1 |

222)

- Lần lượt giải t ừ dưới lên ta s ẽ thu được {𝑦 = 3𝑥 = 1𝑧 = −2

2.3 Thu t toán:

Input: Ma tr n m rậ ở ng của hệ phương trình tuyến tính n ẩn n phương trình Output: Nghi m c a h ệ ủ ệ phương trình tuyến tính (ho c h ặ ệ phương trình không có nghiệm duy nhất)

Phần 1: Đưa về ma tr n b c thang ậ ậVới i=1:

B1: Ch n s p nhọ ố ỏ nhất th a mãn iỏ ≤ 𝑝 ≤ 𝑛 và 𝑎 ≠ 0,𝑝𝑖 𝑛ế𝑢 không có p thỏa mãn thì tăng i lên 1 đơn vị

B2: N u pế ≠ 𝑖 thì đổi ch hàng p và hàng i ỗB3: Với j = i + 1, i + 2,….n

Xét 𝑚𝑖𝑗=𝑎𝑖𝑗𝑎𝑖𝑖 𝑡ℎự𝑐 n phép gán (hiệ 𝐸𝑗− 𝐸𝑖 𝑀𝑖𝑗) → 𝐸𝑗

B4: K t thúc vòng lế ặp và tăng i lên 1 đơn vị, nếu i nhỏ hơn n và lặ ại bướp l c 1 Phần 2: Kiểm tra các hàng

B5: Nếu 𝑎 ≠ 0𝑛𝑛 : 𝑥𝑛=𝑎𝑛,𝑛+1𝑎𝑛𝑛

B6: V i m i i= n 1, n ớ ỗ – – 2,… 1 thì: 𝑥𝑖=𝑎𝑛,𝑛+1−∑𝑛𝑗=𝑛+1𝑎𝑖𝑗 𝑗.𝑥

Xuất output: nghi m c a h ệ ủ ệ phương trình (𝑥1, … 𝑥𝑛) B7: Nếu {𝑎𝑛𝑗= 0 𝑗 = 1, 𝑛 ∀ 

𝑎𝑛,𝑛+1≠ 0

Trang 11

11 Xuất output: “hệ phương trình vô nghiệm” Xét hàng 𝐸𝑛

B8: Nếu 𝑎 = 0 ∀𝑗 = 1,𝑛 + 1𝑛𝑗  → 𝑋ó𝑎 hàng 𝐸𝑛

gán n = n 1 và th c hi– ự ện B9 đến khi các hàng có ít nh t 1 ph n t ấ ầ ử≠ 0 Phần 3: Trường hợp h có vô s nghi m ệ ố ệ

B9: V i i = 1, j = i, ki m tra ớ ể i ≤ 𝑚 Nếu sai chuy n tể ới bước cuối B10: V i hàng i ch n s j nhớ ọ ố ỏ nhất sao cho 𝑎 ≠ 0𝑖𝑗 , lưu j vào mảng 𝑎1[i]=j

và ti p tế ục tăng j thêm 1 đơn vị

B11: Lưu vị trí j ng v i hàng i vào m ng a[i]=j ứ ớ ảB12: Tăng ij thêm 1 đơn vị

2.3 M t s ví d v i code: ộ ố ụ ớ

1 Gi i h ả ệ phương trình: {3𝑥𝑥11− 𝑥+ 𝑥22− 2𝑥+ 𝑥33= 2= 45𝑥1+ 𝑥2− 𝑥3= 10K t quế ả:

Đánh giá ví dụ: Đây là mt ví dụ cơ bản, dễ thấy khi đưa về dạng ma trận thì (𝑟𝑎𝑛𝑘(𝐴 = 𝑟𝑎𝑛𝑘(𝐴 ))  nên h có nghi m duy nhệ ệ ất Điều đó chứng tỏ trong điều ki n t t code hoạt đng ổn ệ ố

2 Gi i h ả ệ phương trình: {0𝑥1𝑥1+ 0𝑥2+ 𝑥2+ 2𝑥+ 0𝑥33= 5= 45𝑥1+ 𝑥 − 2𝑥32 = 7K t quế ả:

Trang 12

Đánh giá ví dụ: Dễ thấy h trên vô nghiệ ệm, code đưa về ế k t qu ả đúng là do đã ểm tra như bướki c B7 của thu t toán ậ

3 Gi i h ả ệ phương trình: {−2𝑥3𝑥11− 4𝑥2+ 3𝑥2+ 𝑥3+ 3𝑥3= 5= −9−5𝑥1+ 7𝑥2+ 2𝑥3= −14K t quế ả:

Đánh giá ví dụ: Hệ phương trình trên lấy từ Ví d 1ụ , và code cho k t qu ế ảtương tự khi ta gi i b ng tay ả ằ

*Phân công:

Lí thuyết: Cả hai cùng tìm hiểu lí thuyết của phương pháp

Thuật toán: Đức là người chịu trách nhiệm nắm vững lí thuyết.Từ đó viết thuật toán cho phương pháp

Code: Quang kiểm tra phần thuật toán Đức viết và trình bày code theo thuật toán Thêm đó Quang sẽ chuẩn bị slide báo cáo

*Đánh giá:

Ở đây ta nêu ra mt số đặc điểm của phương pháp gauss: -Là mt phương pháp giải đúng nghiệm của phương trình

Trang 13

13 -Chia ra làm hai bước:Bước thuận và bước nghịch

-Ý tưởng đơn giản, tuy nhiên việc cài đặt hơi phức tạp bởi các trường hợp đặc biệt có khá nhiều

*So sánh với các phương pháp khác:

-Sai số tính toán khuếch đại hơn so với phương pháp Gauss Jordan do phương pháp Gauss-Jordan có áp dụng kĩ thuật chọn phần tử tri

Trang 14

Lời kết

Trên đây là phần trình bày về phương pháp Gauss mà nhóm mình đã tìm hiểu Đây là mt phương pháp đơn giản nhưng khá hữu hiệu để giải đúng những hệ phương trình tuyến tính có kích thước nhỏ Tuy vậy, nó cũng có mt số hạn chế về tốc đ, khả năng thực hiện song song, … Do vậy, nó thường được sử dụng ở những hệ có hàng ngàn phương trình Với những hệ có hàng triệu phương trình, những phương pháp lặp như lặp Jacobi, lặp Gauss Seidel… thường được lựa chọn vì những lợi ích về tốc đ mà nó mang lại.

Do hạn chế về thời gian và kiến thức nên phần trình bày của chúng mình có thể mt vài kiến thức còn bị thiếu sót Rất mong quý bạn đọc có thể thông cảm, hoặc hơn nữa, có thể góp ý sửa đổi bổ sung giúp cho báo cáo hoàn chỉnh hơn

Cảm ơn TS Hà Thị Ngọc Yến đã giúp nhóm mình nhận xét, sửa đổi, đánh giá bài báo cáo lần này!

Ngày đăng: 29/05/2024, 17:54

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

TÀI LIỆU LIÊN QUAN

w