Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
3,48 MB
Nội dung
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 BÀI TIỂU LUẬN GIỮA KÌ MƠN ĐẠI SỐ TUYẾN TÍNH CHO CƠNG NGHỆ THÔNG TIN MIDTERM ESSAY: Applied Linear Algebra for IT Người hướng dẫn: PHẠM QUỐC HUY Người thực hiện: NGÔ XN BÌNH – 52200270 Lớp : 22050401 Khố THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023 : 26 i LỜI CẢM ƠN Tôi muốn gửi lời cảm ơn chân thành tới Thầy giúp đỡ tơi hồn thành tiểu luận Sự hỗ trợ dẫn từ Thầy giúp tơi vượt qua khó khăn thách thức trình nghiên cứu viết tiểu luận Thật sự, lời khuyên góp ý từ Thầy giúp tơi cải thiện tiểu luận mình, giúp tơi hiểu rõ chủ đề mà nghiên cứu Tôi biết khơng có q giá kiến thức mà Thầy truyền đạt cho Với giúp đỡ Thầy, tơi hồn thành tiểu luận cách thành cơng tự tin Tơi chân thành cảm kích đánh giá cao tình cảm quan tâm Thầy dành cho sinh viên Một lần nữa, tơi xin cảm ơn Thầy nhiều trợ giúp tơi hồn thành tiểu luận Sự giúp đỡ động viên Thầy niềm động lực to lớn tôi, hy vọng tiếp tục học hỏi phát triển hướng dẫn Thầy tương lai Trân trọng, Ngơ Xn Bình ii TIỂU LUẬN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tôi xin cam đoan sản phẩm đồ án riêng / hướng dẫn TS Nguyễn Văn A; Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngồi ra, đồ án cịn sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hoàn toàn chịu trách nhiệm nội dung đồ án Trường đại học Tơn Đức Thắng khơng liên quan đến vi phạm tác quyền, quyền tơi gây q trình thực (nếu có) TP Hồ Chí Minh, ngày 17 tháng năm 2023 Tác giả (ký tên ghi rõ họ tên) Ngô Xuân Bình iii PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN Phần xác nhận GV hướng dẫn _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) Phần đánh giá GV chấm _ _ _ _ _ _ _ Tp Hồ Chí Minh, ngày tháng năm (kí ghi họ tên) iv TĨM TẮT Tập trung giải toán biến đổi ma trận ngơn ngữ lập trình python đưa lời giải chi tiết cho 1 MỤC LỤC LỜI CẢM ƠN i TIỂU LUẬN ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG ii PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN iii TÓM TẮT iv MỤC LỤC CHƯƠNG – PHƯƠNG PHÁP GIẢI QUYẾT BÀI TẬP 1.1 Bài 1d: Lưu số nguyên lẻ ma trận A vào vector mới, in véc tơ kết hình 1.2 Bài 1e: Lưu số nguyên tố ma trận A vào véc tơ mới, in vector tổng hình 1.3 Bài 1f: Cho ma trận D = CB, đảo ngược phần tử hàng lẻ ma trận D in ma trận kết hình 1.4 Bài 1g: Đối với ma trận A, tìm hàng có số ngun tố nhiều in hàng hình 1.5 Bài 1h: Đối với ma trận A, tìm hàng có dãy số lẻ liền kề dài in hàng hình CHƯƠNG – MÃ NGUỒN VÀ ĐẦU RA .10 2.1 Triển khai ma trận ban đầu hàm bổ trợ .10 2.2 Bài 1a: 10 2.2.1 Mã nguồn .10 2.2.2 Đầu 10 2.3 Bài 1b: .11 2.3.1 Mã nguồn .11 2.3.2 Đầu 11 2.4 Bài 1c: 12 Document continues below Discover more from: Đại số tuyến tính DSTT 501032 Đại học Tơn Đức Thắng 152 documents Go to course Chuong Huong dan chi 17 tiet BT Đại số tuyến tính 100% (5) Ơn tập chéo hố ma trận addad Đại số tuyến tính 88% (24) Unit - Keeping fit 11 444444444444444444444 Đại số tuyến tính CÂU HỎI ƠN THI CUỐI KỲ vât liệu xây dựng Đại số tuyến tính 10 100% (4) 100% (2) ƠN TẬP CUỐI KÌ ĐSTT CHO CNTT (THAM KHẢO)-… Đại số tuyến tính 100% (2) BT VE NHA - tập Đại số tuyến tính 100% (1) 2.4.1 Mã nguồn .12 2.4.2 Đầu 12 2.5 Bài 1d: 12 2.5.1 Mã nguồn .12 2.5.2 Đầu 12 2.6 Bài 1e: 13 2.6.1 Mã nguồn .13 2.6.2 Đầu 13 2.7 Bài 1f: 14 2.7.1 Mã nguồn .14 2.7.2 Đầu 14 2.8 Bài 1g: .14 2.8.1 Mã nguồn .14 2.8.2 Đầu 15 2.9 Bài 1h: .15 2.9.1 Mã nguồn .15 2.9.2 Đầu 16 CHƯƠNG – PHƯƠNG PHÁP GIẢI QUYẾT BÀI TẬP 1.1 Bài 1d: Lưu số nguyên lẻ ma trận A vào vector mới, in véc tơ kết hình Để chọn phần tử lẻ ma trận A lưu chúng vào vector có tên Z Ta sử dụng đoạn code sau "Z = A[A % == 1]" Cách thức hoạt động đoạn code: “A % == 1” tạo ma trận boolean có kích thước với ma trận A, phần tử “True” tương ứng với phần tử ma trận A số lẻ, “False” số chẵn Sau đó, sử dụng ma trận boolean để chọn phần tử ma trận A cách sử dụng toán tử “[]” cách để truy xuất phần tử mảng theo điều kiện Cụ thể, phần tử chọn có số tương ứng với phần tử ma trận boolean “True” Kết vector chứa phần tử lẻ ma trận A 1.2 Bài 1e: Lưu số nguyên tố ma trận A vào véc tơ mới, in vector tổng hình Để lưu số nguyên lẻ ma trận A vào vector ta cần hàm “is_prime(n)” "def is_prime(n): if n < 2: return False for i in range(2, int(np.sqrt(n))+1): if n % i == 0: return False return True" Cách thức hoạt động hàm “is_prime(n)”: Nếu n < 2, khơng phải số nguyên tố hàm trả “False” Ngược lại, n >= 2, bắt đầu kiểm tra tính ngun tố n, Để kiểm tra n có phải số nguyên tố hay không, dùng vòng lặp với biến i từ đến “int(np.sqrt(n)) + 1” Nếu n chia hết cho i (n % i == 0), nghĩa n số nguyên tố hàm trả False Nếu khơng có số i từ đến mà chia hết cho n, nghĩa n số nguyên tố hàm trả “True” Sau chuẩn bị xong hàm “is_prime(n)” ta bắt đầu giải toán: "X = [] for i in range(A.shape[0]): for j in range(A.shape[1]): if is_prime(A[i][j]): X.append(A[i][j])" Trước tiên ta khởi tạo danh sách rỗng X để lưu trữ số ngun tố Sau đó, vịng lặp chạy qua hàng ma trận A (được đại diện biến i) vòng lặp thứ hai chạy qua cột ma trận A (được đại diện biến j) Trong vòng lặp, kiểm tra xem giá trị phần tử vị trí (i, j) có phải số ngun tố hay khơng cách sử dụng hàm “is_prime(n)” Nếu giá trị số ngun tố, giá trị thêm vào danh sách X cách sử dụng phương thức append() danh sách Cuối cùng, duyệt qua toàn phần tử ma trận A, danh sách X chứa tất số nguyên tố có ma trận A 1.3 Bài 1f: Cho ma trận D = CB, đảo ngược phần tử hàng lẻ ma trận D in ma trận kết hình 5 Để đảo ngược phần tử hàng lẻ ma trận “D = C.B” ta phải tạo ma trận D cú pháp “D = np.dot(C, B)” Sau ta bắt đầu giải tốn: “for i in range(D.shape[0]): if i % == 0: continue D[i, :] = D[i, ::-1]” Ta dùng vòng lặp for duyệt qua hàng ma trận D, xác định biến i Trong vòng lặp, số hàng i số chẵn, câu lệnh “continue” thực thi để bỏ qua hàng tiếp tục vòng lặp đến hàng Nếu số hàng i số lẻ, phần tử hàng đảo ngược cách sử dụng phép gán "D[i, :] = D[i, ::-1]" gán phần tử bị đảo ngược hàng lẻ thứ i vào hàng lẻ ma trận D Trong đó, “D[i, :]” slice ma trận D, định tất phần tử hàng thứ i “D[i, ::-1]” slice ma trận D, định tất phần tử hàng thứ i đảo ngược thứ tự chúng 1.4 Bài 1g: Đối với ma trận A, tìm hàng có số nguyên tố nhiều in hàng hình Để tìm hàng có nhiều số nguyên tố ma trận A, ta cần dùng hàm định nghĩa trước 1.1.2 Task 1e tạo hàm mới: hàm “is_prime(n)” để xác định số nguyên tố hàng ma trận hàm “count_primes(row)” để đếm số nguyên tố xác định hàng ma trận “def count_primes(row): count = for num in row: if is_prime(num): count += return count” Cách thức hoạt động hàm “count_primes(row)”: “count_primes(row)” nhận đầu vào hàng (row) ma trận trả số lượng số nguyên tố hàng Hàm bắt đầu cách khởi tạo biến count với giá trị ban đầu Sau đó, hàm lặp qua phần tử num hàng kiểm tra xem num có phải số ngun tố khơng cách gọi hàm “is_prime(n)” (đã định nghĩa đoạn code trước đó) Nếu num số nguyên tố, count tăng lên Cuối cùng, hàm trả giá trị biến count, số lượng số nguyên tố hàng Sau chuẩn bị xong hàm con, ta bắt đầu giải toán: “max_count = max_rows = [] for i in range(A.shape[0]): count = count_primes(A[i]) if count > max_count: max_count = count max_rows = [A[i]] elif count == max_count: max_rows.append(A[i])” Cụ thể, đoạn mã bắt đầu cách khởi tạo biến max_count = biến max_rows danh sách rỗng Tiếp theo, vòng lặp for sử dụng để duyệt qua hàng ma trận A, đánh số hàng biến i 7 Với hàng, hàm “count_primes(row)” sử dụng để đếm số lượng số nguyên tố hàng lưu kết vào biến count Tiếp theo, kiểm tra xem giá trị count có lớn giá trị max_count hay khơng Nếu có, max_count cập nhật thành count max_rows đặt danh sách chứa hàng Nếu giá trị count với max_count tại, hàng thêm vào danh sách max_rows Cuối cùng, vịng lặp kết thúc, hàng có số lượng số nguyên tố lớn lưu danh sách max_rows Vì kết cuối trả danh sách nên in hình cách thơng thường, mà ta phải dùng vịng lặp for: “for row in max_rows: print(row)” 1.5 Bài 1h: Đối với ma trận A, tìm hàng có dãy số lẻ liền kề dài in hàng hình Để tìm hàng ma trận A có chuỗi số lẻ liên tiếp dài ta làm sau: “odd_rows = [] longest_seq_length = for i in range(A.shape[0]): current_seq_length = max_seq_length = for j in range(A.shape[1]): if A[i][j] % != 0: current_seq_length += if current_seq_length > max_seq_length: max_seq_length = current_seq_length else: current_seq_length = if max_seq_length > longest_seq_length: longest_seq_length = max_seq_length odd_rows = [i] elif max_seq_length == longest_seq_length: odd_rows.append(i)” Dòng “odd_rows = []” khởi tạo danh sách trống để lưu số hàng chứa chuỗi số lẻ liên tiếp dài Dòng thứ hai “longest_seq_length = 0” khởi tạo giá trị ban đầu độ dài chuỗi số lẻ liên tiếp dài Sau đó, vịng lặp “for i in range(A.shape[0])”: sử dụng để duyệt qua tất hàng ma trận A Trong vòng lặp này, biến current_seq_length khởi tạo lại thành max_seq_length khởi tạo thành Tiếp theo, vòng lặp thứ hai “for j in range(A.shape[1])”: sử dụng để duyệt qua tất phần tử hàng xét Nếu phần tử số lẻ, biến current_seq_length tăng lên đơn vị Nếu current_seq_length > max_seq_length, max_seq_length current_seq_length cập nhật với giá trị Nếu phần tử số chẵn, biến current_seq_length khởi tạo lại thành 0, chuỗi số lẻ bị phá vỡ Sau duyệt qua tất phần tử hàng tại, kiểm tra max_seq_length cho hàng > longest_seq_length Nếu vậy, longest_seq_length cập nhật với giá trị max_seq_length, danh sách odd_rows cập nhật lại để chứa số hàng Nếu max_seq_length = longest_seq_length, thêm số hàng vào danh sách odd_rows, hàng có độ dài chuỗi số lẻ liên tiếp với chuỗi số lẻ liên tiếp dài tìm thấy trước Cuối cùng, danh sách odd_rows chứa số hàng có chuỗi số lẻ liên tiếp dài Các số sử dụng để truy cập in hàng tương ứng ma trận A Vì kết cuối trả danh sách nên in hình cách thơng thường, mà ta phải dùng vịng lặp for: “for row in odd_rows: print(A[row])” 10 CHƯƠNG – MÃ NGUỒN VÀ ĐẦU RA 2.1 Triển khai ma trận ban đầu hàm bổ trợ 2.2 Bài 1a: Tính , in kết hình 2.2.1 Mã nguồn 2.2.2 Đầu 2.3 Bài 1b: Tính , in hình 11 2.3.1 Mã nguồn 2.3.2 Đầu 12 2.4 Bài 1c: Lưu hàng lẻ ma trận A thành ma trận in ma trận kết hình 2.4.1 Mã nguồn 2.4.2 Đầu 2.5 Bài 1d: Lưu số nguyên lẻ ma trận A vào vector mới, in véc tơ kết hình 2.5.1 Mã nguồn 2.5.2 Đầu 13 2.6 Bài 1e: Lưu số nguyên tố ma trận A vào véc tơ mới, in vector tổng hình 2.6.1 Mã nguồn 2.6.2 Đầu 14 2.7 Bài 1f: Cho ma trận D = CB, đảo ngược phần tử hàng lẻ ma trận D in ma trận kết hình 2.7.1 Mã nguồn 2.7.2 Đầu 2.8 Bài 1g: Đối với ma trận A, tìm hàng có số ngun tố nhiều in hàng hình 2.8.1 Mã nguồn 15 2.8.2 Đầu 2.9 Bài 1h: Đối với ma trận A, tìm hàng có dãy số lẻ liền kề dài in hàng hình 2.9.1 Mã nguồn 16 2.9.2 Đầu More from: Đại số tuyến tính DSTT 501032 Đại học Tôn Đức Thắng 152 documents Go to course 17 Chuong Huong dan chi tiet BT Đại số tuyến tính 100% (5) Ơn tập chéo hố ma trận addad Đại số tuyến tính 88% (24) Unit - Keeping fit 11 444444444444444444444 Đại số tuyến tính 100% (4) CÂU HỎI ÔN THI CUỐI KỲ vât liệu xây dựng Đại số tuyến tính 100% (2) Recommended for you Correctional Administration Criminology 96% (113) English - huhu 10 10 Led hiển thị Preparing Vocabulary FOR UNIT Led hiển thị 100% (3) 100% (2) Trac nghiem reading tieng anh lop 11 unit the… Học viện An ninh nhân dân 100% (1)