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

Tiểu luận giữa kỳ Đại số tuyến tính cho công nghệ thông tin

23 0 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

Thông tin cơ bản

Tiêu đề Đại số tuyến tính
Tác giả Nguyễn Xuân Bằng
Người hướng dẫn Ths. Phan Hoàng Phúc Vinh
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Công nghệ thông tin
Thể loại Tiểu luận giữa kỳ
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 23
Dung lượng 2,64 MB

Nội dung

LỜI CẢM ƠN Để hoàn thành bài tiểu luận này, em xin gửi lời cảm ơn chân thành đến: Ban giám hiệu trường Đại Học Tôn Đức Thắng Thành phố Hồ Chí Minh vì đã đưa môn Đại số tuyến tính cho Cô

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN XUÂN BẰNG - 52300177

TIỂU LUẬN GIỮA KỲ

ĐẠI SỐ TUYẾN TÍNH CHO CÔNG NGHỆ THÔNG TIN

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 2

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN XUÂN BẰNG - 52300177

TIỂU LUẬN GIỮA KỲ

ĐẠI SỐ TUYẾN TÍNH CHO CÔNG NGHỆ THÔNG TIN

Người hướng dẫn

Ths.Phan Hoàng Phúc Vinh

Trang 3

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 4

LỜI CẢM ƠN

Để hoàn thành bài tiểu luận này, em xin gửi lời cảm ơn chân thành đến:

Ban giám hiệu trường Đại Học Tôn Đức Thắng Thành phố Hồ Chí Minh vì đã đưa môn Đại số tuyến tính cho Công nghệ thông tin vào chương trình giảng dạy cùng với đó là tạo điều kiện cho sinh viên về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu, thuận lợi cho việc tìm tòi, học hỏi và rút ra những kiến thức cần thiết và hữu ích

Đặc biệt, em xin cảm ơn giảng viên bộ môn – Thầy Phan Hoàng Phúc Vinh đã giảng dạy tận tình chi tiết truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập vừa qua Nhờ có những kiến thức mà thầy giảng dạy, em đã có thểbồi bổ, nắm vững và hiểu bài hơn bao giờ hết Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này Bộ môn Đại số tuyến tính cho Công nghệ thông tin là môn học thú vị, vô cùng bổ ích và có tính tư duy cao Đảm bảo cung cấp đủ kiến thức, đồng thời còn giúp sinh viên luôn có thể tư duy và

tự tìm tòi những phương hướng để ra được kết quả Do chưa có nhiều kinh nghiệm làm đề tài luận cũng như những hạn chế về kiến thức, trong bài tiểu luận chắc chắn

sẽ không tránh khỏi những thiếu sót Rất mong nhận được sự nhận xét, ý kiến đóng góp từ phía Thầy để bài tiểu luận được hoàn thiện hơn Lời cuối cùng, em xin kính chúc Thầy nhiều sức khỏe, thành công trên con đường giảng dạy và hạnh phúc trong cuộc sống

TP Hồ Chí Minh, ngày 30 tháng 4 năm 2024

Tác giả

BằngNguyễn Xuân Bằng

Trang 5

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH

TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của ThS.Phan Hoàng Phúc Vinh Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong Tiểu luận còn sử dụng một số nhận xét, đánh giá cũngnhư số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chúthích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung Tiểu luận của mình Trường Đại học Tôn Đức Thắng không

liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trìnhthực hiện (nếu có)

TP Hồ Chí Minh, ngày 30 tháng 4 năm 2024

Tác giả

BằngNguyễn Xuân Bằng

Trang 6

TÓM TẮT

Thực hiện làm 8 câu bài tập về ma trận, từ 3 ma trận tạo random ma trận A loại (10 x10) random số thuộc [1 ; 100], ma trận B loại (2 x 10) random số thuộc [1 ; 20], matrận C loại (10 x 2) random số thuộc [1 ; 20]:

12)3

+…+(A

17)8+(A

10)9+(A

19)10, và in ra mànhình

 Câu C: Lưu các hàng lẻ của ma trận A vào một ma trận mới và in ma trận kếtquả thành màn hình

 Câu D: Lưu các số nguyên lẻ trong ma trận A vào một vectơ mới và in vectorkết quả vào màn hình

 Câu E : Lưu các số nguyên tố trong ma trận A vào một vectơ mới và in kết quảvector vào màn hình

 Câu F : Cho một ma trận D = C x B , các phần tử đảo ngược trong các hàng lẻcủa ma trận D và In ma trận kết quả lên màn hình

 Câu G: Tìm các hàng có số nguyên tố tối đa trong ma trận A và in các hàng lênmàn hình

hình

Trang 7

DANH MỤC HÌNH VẼ

Hình 1.Bài code

Hình 2.Bai code

Hình 3.Ma trận A, B, C

Hình 4.Đáp án câu A

Hình 5.Đáp án câu B

Hình 6.Đáp án câu C

Hình 7.Đáp án câu D 10

Hình 8.Đáp án câu E 11

Hình 9 Đáp án câu F 11

Hình 10 Đáp án câu G 12

Hình 11 Đáp câu H 13

Trang 8

MỤC LỤC

TÓM TẮT…… … iii

DANH MỤC HÌNH VẼ

MỤC LỤC…

CHƯƠNG 1 PHƯƠNG PHÁP GIẢI

1.1 Cơ sở lý thuyết

1.2 Phương pháp giải

CHƯƠNG 2 THỰC NGHIỆM

2.1 Mã nguồn

Hình 1 Bài code

Hình 2 Bài code

2.2 Hình ảnh kết quả

Hình 3 Ma trận A, B, C

Hình 4 Đáp án câu A

Hình 5 Đáp án câu B

Hình 6 Đáp án câu C

Hình 7 Đáp án câu D

Hình 8 Đáp án câu E

Hình 9 Đáp án câu F

Hình 10 Đáp án câu G

Hình 11 Đáp án câu H

TÀI LIỆU THAM KHẢO

Trang 10

CHƯƠNG 1 PHƯƠNG PHÁP GIẢI 1.1 Cơ sở lý thuyết

 Ngôn ngữ

 Python 3X : là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng , do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991.Python được thiết kế với ưu điểm mạnh là dễ đọc , dễ học và dễ nhớ Python là ngôn ngữ có hình thức sáng sủa , cấu trúc rõ ràng, thuận tiện cho người mới học lập trình và là được dùng rộng rãi trong phát triển trí tuệ nhân tạo

 Math là một thư viện cung cấp quyền truy cập vào các hàm toán học được xác định theo tiêu chuẩn C

 Matplotlib là một thư viện vẽ đồ thị cho ngôn ngữ lập trình Python và phần mở rộng toán học số NumPy của nó Nó cung cấp API hướng đối tượng để nhúng các biểu đồ vào các ứng dụng bằng bộ công cụ GUI có mục đích chung như Tkinter, wxPython, Qt hoặc GTK

1.2 Phương pháp giải

Trang 11

 Tạo 3 ma trận theo yêu cầu đề bài

 Sử dụng thư viện numpy và hàm np.random.randint để thực tạo ma trận với

số hàng, số cột và các số ngẫu nhiên có trong ma trận theo yêu cầu đề bài

12)3

+…+(A

17)8+(A

10)9+(A

19)10

, và in ra màn

hình.

 Dùng hàm complex_expression(A) để nhận ma trận A làm đầu vào.

 Khởi tạo biến kết quả là “result” ban đầu bằng 0

 Sử dụng vòng lặp “for” để tính từng phần tử của biểu thức

 Trong mỗi vòng lặp, tính từng phần tử thứ i trong biểu thức và cộng vào biếnkết quả “result”

 Phần tử thứ i của biểu thức được tính bằng cách chia ma trận A cho 10 + i vàlấy kết quả lũy thừa với i + 1

 Câu C: Lưu các hàng lẻ của ma trận A vào một ma trận mới và in ma trận kết quả thành màn hình.

 Gọi một hàm để nhận ma trận A làm đối số nhận vào, cụ thể gọi hàm

odd_rows_matrix(A)

 Sử dụng slicing để lấy các hàng lẻ của ma trận A, “result = A[::2, :]” sẽ lấycác hàng có chỉ số chẵn (bắt đầu từ hàng đầu tiên) của ma trận A

 Gọi một hàm để lấy các hàng lẻ của ma trận A ra

 Câu D: Lưu các số nguyên lẻ trong ma trận A vào một vectơ mới và in vector kết quả vào màn hình.

Trang 12

 Chúng ta lọc các số nguyên lẻ từ ma trận A bằng [A % 2 == 1], nó sẽ trả vềmột ma trận boolean với giá trị True ở những vị trí mà phần tử tương ứngtrong A là số lẻ

 Câu E: Lưu các số nguyên tố trong ma trận A vào một vectơ mới và in kết quả

vector vào màn hình.

 Dùng hàm is_prime(n) để kiểm tra xem một số nguyên n có phải là số nguyên

tố hay không Số nguyên tố là số chỉ có hai ước số dương đó là một và chínhnó

 Nếu n nhỏ hơn hoặc bằng 1 hàm trả về False vì số nguyên tố phải lớn hơn 1

 Nếu n nhỏ hơn hoặc bằng 3, hàm sẽ trả về True vì 2 và 3 là số nguyên tố

 Nếu n chia hết cho 2 hoặc 3 hàm sẽ trả về False

 Nếu n chia hết cho bất kì số nguyên nào từ 5 đến căn bậc hai của n thì trả vềFalse còn nếu không chia hết thì trả về True

 Dùng hàm prime_numbers_vector(A) để nhận vào ma trận A và trả về mộtvector chứa tất cả các số nguyên tố trong A

 Dùng hàm np.vectorize(is_prime) (A) để áp dụng hàm is_prime (n) lên mỗiphần tử của A, tạo ra một ma trận Boolean với giá trị của A, tạo ra một matrận Boolean với giá trị True tại những vị trị tương ứng trong ma trận A là sốnguyên tố

 Câu F: Cho một ma trận D = C x B , các phần tử đảo ngược trong các hàng lẻ của ma trận D và In ma trận kết quả lên màn hình.

 Dùng hàm np.dot() để thực hiện phép nhân giữa hai ma trận B và C

 D[::2, :]: Lấy ra mỗi hàng thứ hai từ ma trận D (bắt đầu từ hàng đầu tiên) Ký hiệu ::2 nghĩa là “bắt đầu từ đầu, đến cuối, với bước là 2”, nghĩa là nó sẽ lấy ramỗi phần tử thứ hai

 np.flip(D[::2, :], axis=1): Lật ngược các hàng đã được lấy ra ở trên theo trục ngang (axis=1)

 Câu G: Tìm các hàng có số nguyên tố tối đa trong ma trận A và in các hàng lên màn hình.

Trang 13

 Sử dụng hàm max_prime_rows =[] để khởi tạo một danh sách rỗng để lưu cáchàng có số lượng số nguyên tố tối đa.

 Đặt giá trị ban đầu cho số lượng số nguyên tố tối đa bằng 0 (max_prime_count

= 0)

 Sử dụng hàm map để áp dụng hàm is_prime cho mỗi phần tử hàng, sau đó sum

để tính tổng số lượng số nguyên tố trong hàng

 Nếu số lượng số nguyên tố trong hàng hiện tại lớn hơn số lượng số nguyên tố tối đa đã tìm được trước đó, thì cập nhật số lượng số nguyên tố tối đa và danh sách các hàng có số lượng số nguyên tố tối đa ( if prime_count >

max_prime_count)

 Nếu số lượng số nguyên tố trong hàng hiện tại bằng với số lượng số nguyên tốtối đa đã tìm được trước đó, thì thêm hàng hiện tại vào danh sách các hàng có

số lượng số nguyên tố tối đa ( elif prime_count == max_prime_count)

 Câu H: Tìm các hàng có chuỗi số lẻ liền kề dài nhất và in các hàng lên màn hình.

 Dùng hàm max_odd_sequence_rows để khởi tạo một danh sách rỗng để lưucác hàng có chuỗi số lẻ dài nhất

 Đặt giá trị ban đầu cho độ dài chuỗi số lẻ dài nhất bằng 0(max_odd_sequence_length = 0 )

 Khởi tạo hai biến để theo dõi độ dài của chuỗi lẻ hiện tại (current_length ) vàchuỗi số lẻ dài nhất trong hàng ( max_length)

 Kiểm tra số hiện tại có phải là số lẻ hay không ( if num % 2 != 0 )

 Nếu số hiện tại là số lẻ thì tăng độ dài của chuỗi số lẻ hiện tại lên 1( current_length += 1)

 Sử dụng câu lệnh (if else) để kiểm tra nếu độ dài của chuỗi số lẻ hiện tại lớnhơn độ dài chuỗi số lẻ dài nhất đã tìm được thì cập nhật độ dài chuỗi số lẻ dàinhất còn nếu số hiện tại không phải số lẻ thì trả lại độ dài chuỗi số lẻ hiện tạibằng 0

Trang 14

 Sử dụng (if elif ) để kiểm tra nếu độ dài chuỗi số lẻ trong hàng lớn hơn độ dàichuỗi số lẻ đã tìm được thì cập nhật độ dài chuỗi số lẻ dài nhất và danh sáchcác hàng có chuỗi số lẻ dài nhất, còn nếu độ dài chuỗi số lẻ dài nhất tronghàng bằng với độ dài chuỗi số lẻ dài nhất đã tìm được trước đó thì thêm hànghiện tại vào danh sách các hàng có chuỗi số lẻ dài nhất

Trang 15

CHƯƠNG 2 THỰC NGHIỆM

2.1 Mã nguồn

Hình 1 Bài code

Trang 16

Hình 2 Bài code

2.2 Hình ảnh kết quả

Trang 17

Hình 3 Ma trận A, B, C

Hình 4 Đáp án câu A

Trang 18

Hình 5 Đáp án câu B

Hình 6 Đáp án câu C

Trang 19

Hình 7 Đáp án câu D

các số nguyên lẻ trong ma trận A:Hàng 1:61, 45, 27, 59, 51, 55Hàng 2:43, 57, 41, 17, 67, 55Hàng 3:29, 51, 33, 89, 85, 45Hàng 4:11, 5, 71, 11, 77, 45Hàng 5:83, 67, 23, 9Hàng 6:75, 57, 75, 81, 95 Hàng 7:89, 11, 57, 3

Hàng 8:19, 47, 45, 9, 75, 89, 95 Hàng 9:87, 59, 85, 89, 11, 59, 73 Hàng 10:99, 11, 63, 59, 31, 55

Trang 21

Hình 10 Đáp án câu G

Ta thấy:

hàng 1 có 3 số nguyên tốhàng 2 có 5 số nguyên tốhàng 3 có 4 số nguyên tốhàng 4 có 4 số nguyên tố, tương tự nhưvậy thì thấy hàng có nhiều số nguyên tốnhất là hàng 9 có 6 số nguyên tố Vậykết quả in ra màn hình là hàng 9

Trang 22

Hình 11 Đáp án câu H

Nhìn vào hình ma trận A: ta thấy Hàng 1, 3, 5, 8 đều có chuỗi số lẻ dàinhất là 3 số

Trang 23

TÀI LIỆU THAM KHẢOTiếng Việt

 Ngô Việt Hùng [2023], Giáo trình đại số tuyến tính, Hà Nội

Tiếng Anh

 Allan B Downey [2023], Think Python.

Link: https://www.greenteapress.com/thinkpython/thinkpython.pdf

Ngày đăng: 02/10/2024, 19:11

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN