Tải bản đầy đủ (.docx) (20 trang)

ĐỒ án lập TRÌNH TÍNH TOÁN giải hệ phương trình đại số tuyến tính (n phương trình, n ẩn) bằng phương pháp cramer, phương pháp gauss – jordan

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1012.34 KB, 20 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN LẬP TRÌNH TÍNH TỐN
Giải hệ phương trình đại số tuyến tính (n phương trình, n ẩn)
bằng phương pháp Cramer, phương pháp Gauss – Jordan
Người hướng dẫn: ThS. Đỗ Thị Tuyết Hoa
Sinh viên thực hiện:
Lê Trọng Hồng Minh
Nguyễn Văn Hồng Nhân
NHĨM: 20.16A

Đà Nẵng, 08/2021


MỤC LỤC
MỤC LỤC.............................................................................................................
DANH MỤC HÌNH VẼ.......................................................................................
LỜI MỞ ĐẦU......................................................................................................
1.

TỔNG QUAN ĐỀ TÀI................................................................................

2.

CƠ SỞ LÝ THUYẾT..................................................................................

2.1. Ý tưởng.................................

2.2. Cơ sở lý thuyết......................


3.

TỔ CHỨC CẤU TRÚC DỮ LIỆU VÀ THUẬT TOÁN.............................

3.1. Phát biểu bài tốn..................

3.2. Cấu trúc dữ liệu.....................

3.3. Thuật tốn.............................
4.

CHƯƠNG TRÌNH VÀ KẾT QUẢ..............................................................

4.1. Tổ chức chương trình............

4.2. Ngơn ngữ cài đặt...................

4.3. Kết quả..................................
4.3.1. Giao diện chính của chương trình.....................................................
4.3.2. Kết quả thực thi của chương trình....................................................
4.3.3. Nhận xét đánh giá.............................................................................
5.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...................................................

5.1. Kết luận.................................

5.2. Hướng phát triển...................
TÀI LIỆU THAM KHẢO....................................................................................
PHỤ LỤC.............................................................................................................


i


DANH MỤC HÌNH VẼ
No table of figures entries found.

ii


Đồ án lập trình tính tốn

LỜI MỞ ĐẦU
Như chúng ta đã biết, cuộc sống của chúng ta vốn dĩ xoay quanh tốn học, và Đại số
tuyến tính là trung tâm của hầu hết các lĩnh vực tốn học. Khơng dừng lại ở đó, Đại số
tuyến tính cịn được ứng dụng vào trong hầu hết các ngành khoa học và kĩ thuật như
Hóa học, Hình học, Lý thuyết đồ thị, Xã hội học (Kinh tế, ...), Nén ảnh, Nhận diện
khuôn mặt, ...
Ngay cả trong lập trình máy tính, mọi tính tốn đều được biểu diễn dưới dạng số, dạng
dãy số hoặc mảng số, việc hiểu và ứng dụng được khái niệm liên quan đến đại số là
nhân tố quyết định giúp người kỹ sư có thể giải quyết được bài tốn. Với một tầm ảnh
hưởng gần như là bao quát như vậy, hiển nhiên việc tính tốn các phương trình tuyến
tính cũng là một khó khăn rất lớn đối với con người và đòi hỏi rất nhiều thời gian
nghiên cứu và tìm hiểu cũng như là tính tốn. Nhưng giờ đây, với sự phát triển mạnh
mẽ của Công nghệ thông tin, việc tính tốn cũng như nghiên cứu Đại số tuyến tính đã
trở nên dễ dàng hơn, chỉ mất vài giây hoặc thậm chí ít hơn để máy tính có thể tính tốn
được một hay nhiều phương trình tuyến tính theo nhiều phương pháp như Gauss,
Cramer, ...
Mục tiêu: Để hoàn thành tốt mục tiêu mà đồ án đề ra ở trên, ta phải tiếng hành các
cơng việc sau:

- Tìm hiểu đường hệ phương trình tuyến tính.
- Tìm hiểu phương pháp Gauss – Jordan, phương pháp Cramer.
- Triển khai ví dụ tính bằng tay cụ thể (với hệ phương trình tuyến tính tự
chọn): + Giải hệ phương trình tuyến tính bằng phương pháp Gauss.
+ Giải hệ phương trình tuyến tính bằng phương pháp Cramer.
- Xây dựng thuật toán. Đánh giá độ phức tạp
- Lập trình triển khai thuật tốn
- Đánh giá kết quả
Phạm vi và đồi tượng nghiên cứu: Giải hệ phương trình tuyến tính bằng phương
pháp Gauss và phương pháp Cramer.
Phương pháp nghiên cứu: Để thực hiện các công việc trên , em đã sử dụng các
phương pháp ngiên cứu:
-Phương pháp phân tích và tổng hợp lý thuyết.
1


Đồ án lập trình tính tốn
-Phương pháp nghiên cứu tài liệu.
-Phương pháp hỏi ý kiến của giảng viên hướng dẫn.
Cấu trúc của đồ án môn học:
Cấu trúc của đồ án gồm những chương sau:
Chương 1: TỔNG QUAN ĐỀ TÀI
Chương 2: CƠ SỞ LÝ THUYẾT
-Cơ sở lý luận cho việc xây dựng một hệ thống thông tin:Lý thuyết tổ chức cấu trúc dữ
liệu và thuật toán.
Chương 3: TỔ CHỨC CẤU TRÚC DỮ LIỆU VÀ THUẬT TỐN
-Tiến hành xây dựng thuật tốn.
Chương 4: CHƯƠNG TRÌNH VÀ KẾT QUẢ
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN


2


Đồ án lập trình tính tốn

1. TỔNG QUAN ĐỀ TÀI
{Nội dung A {Font: Time New Roman; thường; cỡ chữ: 13; dãn dòng: 1,3; căn
lề: justified}
2.

CƠ SỞ LÝ THUYẾT

2. 1. Ý tưởng




Viết hàm tìm nghiệm của ma trận bằng phương pháp Gauss – Jordan:
○ Biến đổi ma trận thành ma trận bậc thang.
○ Tìm nghiệm của ma trận.
Viết hàm tìm nghiệm của ma trận bằng phương pháp Cramer:
○ Tính định thức của ma trận.
○ Tìm nghiệm của ma trận.

2.2. Cơ sở lý thuyếts
2.2.1 Phương pháp Gauss – Jordan
Phương pháp khử Gauss-Jordan là một phương pháp để giải hệ phương trình
đại số tuyến tính ở dạng ma trận. Đây là phương pháp được phát triển dựa trên
phương pháp khử Gauss.
Mục tiêu: biến đổi ma trận về dạng ma trận đường chéo để giải ma trận

mà khơng cần phải qua bước tính định thức nào.

2.2.2 Định thức
Xét ma trận vuông cấp n :

Với mỗi số hạng aij (số hạng nằm ở hàng i và cột j), ma trận nhận được từ A
bằng cách bỏ đi hàng thứ i và cột thứ j được gọi là ma trận bù của A đối với số hạng aij
, ký hiệu là Aij.
3


Đồ án lập trình tính tốn
Ví dụ: cho ma trận vng cấp 3:

Ta có thể thành lập các ma trận bù cấp 2, chẳng hạn
Định nghĩa định thức ma trận vuông:
Định thức của ma trận vuông A∈M n,ký hiệu det(A) hay |A|, là số thực được
định nghĩa bằng quy nạp theo n như sau :


Với n = 1, nghĩa là A = a11, thì det(A) = a11.



Với n≥2, A = (aij)n ×n, thì :

det(A) = (−1)1+1 a11det( A11)+(−1)1+2 a12det( A12)+…+ (−1)1+n a1 ndet( A1 n)
n

⇔det(A) =


∑❑(−1)1 + j a1 jdet( A1 j)
j=1

Định lý khai triển định thức theo một hàng hay một cột bất kỳ
cho ma trận A = (aij)n ×n, 1≤ i0, j0 ≤n. Khi đó:
n

det(A) =

∑❑(−1)i

+ j
0

a io

+ j

det( Ai j).
0

(1.1)

j=1
n

det(A) =

∑❑(−1)i + j


0

ai j0det( Ai j0).

(1.2)

i=1

công thức (1.1) gọi là công thức khai triển theo hàng iovà cơng thức (1.2) là cơng thức
khai triển theo cột j0.
ví dụ: Tính định thức:

4


Đồ án lập trình tính tốn
Tính định thức của ma trận A. Chúng ta khai triển định thức này theo
hàng 1:
Các tính chất của định thức:
(I) det( At
) = detA ví
dụ:

(II) Nếu đổi chỗ hai hàng (hoặc cột) bất kì của định thức thì định thức đổi dấu

(IV)
định
Hệ Quả: (1) Nếu các phần tử của một hàng có thừa số chung thì ta có thể
đưa thừa số đó ra ngồi dấu định thức.

(2) det(λA) = λndet(A), λ ∈R.
(3) Nếu A có một hàng bằng khơng thì định thức của nó
bằng
khơng.
(4)

Nếu A có hai hàng bằng nhau hay tỉ lệ với nhau thì định

thức của nó bằng khơng.
ví dụ:


5


Đồ án lập trình tính tốn
(V)
thức

Nếu thêm vào một hàng của định thức bội λ của hàng khác thì định

khơng đổi.
ví dụ:

(VI) Định thức của ma trận chéo bằng tích các phần tử trên đường chéo chính.
ví dụ:

-Định thức của ma trận tam giác bằng tích các phần tử trên đường chéo
chính.
ví dụ:


(VII) Cho A, B là các ma trận vng cấp n. Khi đó det(AB) = det(A).det(B)
ví dụ: cho 2 ma trận

det(A) = 5; det(B) = (-3)
det(AB) = -15 = 5.(-3) = det(A).det(B)
6


Đồ án lập trình tính tốn
2.2.3 Phương pháp Cramer
Hệ phương trình Cramer là hệ phương trình tuyến tính có số phương trình bằng số
ẩn số và định thức của ma trận các hệ số khác 0.
ví dụ: cho hệ phương trình
Hệ phương trình có 3 phương trình, 3 ẩn và det(A) = = 7 ≠ 0 nên nó là hệ
phương trình Cramer.
Các
phương
pháp giải
hệ phương
trình
cramer
Ngồi phương pháp chung là phương pháp khử ẩn liên tiếp Gauss đã trình bày
ở phần trên, đối với hệ Cramer có thêm hai phương pháp như sau:
I)
ma

Phương pháp 1. Dùng ma trận nghịch đảo A−1 để giải phương trình

trận:

AX=B⇔X= A−1B
II)

Phương pháp 2. Dùng định thức (cơng thức Cramer). Xét Ai, i = 1 ,n là

ma trận nhận được từ A bằng cách thay cột thứ i bằng cột các hệ số tự do. Khi đó, hệ
Cramer có nghiệm duy nhất xi =

det (Ai)
, i = 1 ,n.
det ( A)

ví dụ: Cho hệ phương trình tuyến tính:

7


Đồ án lập trình tính tốn
Dùng định thức(cơng thức Cramer) để tìm nghiệm của phương trình:
Nghiệm của phương trình là:

x 1=

det (A )
1

det ( A)

3.


TỔ CHỨC CẤU TRÚC DỮ LIỆU VÀ THUẬT TỐN

3. 1. Phát biểu bài tốn
Đầu vào(input):
o Nhập từ bàn phím hoặc từ file có sẵn số ẩn của hệ phương
trình và ma trận hệ phương trình.
Đầu ra(output):
o In ra màn hình nghiệm của ma trận.
o Lưu nghiệm vào file output có sẵn (/data/result.out).
3.2. Cấu trúc dữ liệu
Mảng, mảng 2 chiều.
3.3. Thuật tốn
Trình bày các thuật tốn và phân tích độ phức tạp của các thuật tốn.
Minh

4.

CHƯƠNG TRÌNH VÀ KẾT QUẢ

4. 1. Tổ chức chương trình
4. 2. Ngơn ngữ cài đặt
Chương trình được sử dụng ngơn ngữ C++ được biên dịch bằng GCC phiên bản

9.2.0.
8


Đồ án lập trình tính tốn
4.3. Kết quả
4.3.1. Giao diện chính của chương trình

Màn hình console:

Hình 4.1. Màn hình giao diện chính chương trình
Tại giao diện chính, người dùng nhập từ bàn phím lựa chọn 1, 2 hay 3 ứng với giải
nghiệm bằng phương pháp Gauss – Jordan, giải nghiệm bằng phương pháp Cramer
hoặc kết thúc chương trình. Nếu chọn 1 hoặc 2, màn hình console chuyển tới giao
diện nhập dữ liệu.

9


Đồ án lập trình tính tốn

Hình 4.2. Màn hình giao diện nhập dữ liệu của chương trình
Nếu chọn 1 (Nhập dữ liệu thủ cơng), chương trình sẽ u cầu nhập số ẩn của hệ
phương trình và các hệ số. Nếu chọn 2 (Đọc dữ liệu từ file có sẵn), chương trình
sẽ yêu cầu nhập tên file.

Hình 4.3. Nhập dữ liệu bằng phương pháp thủ công

10


Đồ án lập trình tính tốn

Hình 4.4. Nhập dữ liệu bằng phương pháp đọc từ file

Hình 4.5. File chứa dữ liệu đầu vào

4.3.2. Kết quả thực thi của chương trình

-

Kết quả khi giải bằng phương pháp Gauss – Jordan:

11


Đồ án lập trình tính tốn

Hình 4.6. Kết quả thực thi bằng phương pháp Gauss – Jordan

-

Kết quả khi giải bằng phương pháp Cramer:

12


Đồ án lập trình tính tốn

Hình 4.7, 4.8. Kết quả thực thi bằng phương pháp Cramer
13


Đồ án lập trình tính tốn

-

Kết quả trên file output:


4.3.3. Nhận xét đánh giá

5.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5. 1. Kết luận
5. 2. Hướng phát triển

14


Đồ án lập trình tính tốn

TÀI LIỆU THAM KHẢO
[1]

Tên tác giả, Tên tài liệu, Tên nhà xuất bản, năm xuất bản

[2]

Tên chủ sở hữu, Tên bài viết, url, ngày truy cập

15


Đồ án lập trình tính tốn

PHỤ LỤC
Sinh viên bỏ Code từng phần vào đây. {Font: Time New Roman; thường; cỡ

chữ: 12; dãn dòng: 1,3; căn lề: justified}

16



×