Ngoài ra, trong tiểu luận còn sử dụng một số nhận xét, đánh giá cũng như 36 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.. + int nl,n2,n3: là c
Trang 1TONG LIEN DOAN LAO ĐỘNG VIỆT NAM
TRUONG DAI HQC TON BUC THANG
KHOA CONG NGHE THONG TIN
7a
BÀI TẬP LỚN MÔN ĐẠI SÓ TUYẾN TÍNH
TIỂU LUẬN VÉ MA TRAN
Người hướng dân: GV NGUYÊN THỊ DIỄM HÀNG Người thực hiện: NGUYÊN THỊ DIỄM QUỲNH - 52200290 Ngành học: Mạng máy tính và truyền thông dữ liệu
Email: 52200290@student.tdtu.edu.vn
Lop: 22050401
Trang 2LỜI CẢM ƠN
Em xin cảm ơn cô Nguyễn Thị Diễm Hãng là giáo viên giảng dạy môn thực hành Đại Số Tuyến Tính, cảm ơn cô vì sự nhẹ nhàng trong quá trình giảng dạy, cô đã cung cấp cho em kiến thức cần và đủ để có thể hoàn thành bài tiêu luận một cách tốt
Cuối lời có điều chỉ sơ sót trong quá trình làm báo cáo tiêu luận em cũng mong quý thầy cô khoa Công Nghệ Thông Tin thương tình bỏ qua cho lần đầu làm bài báo cáo này ạ ! Em hứa sẽ rút kinh nghiệm và trao dôi sửa đôi ở những lân tới
Trang 3TIỂU LUẬN ĐƯỢC HOÀN THÀNH
TẠI TRƯỜNG ĐẠI HỌC TỒN DUC THANG
Tôi xin cam đoan đây là sản phâm tiêu luận của riêng tôi và được sự hướng dân của GV Nguyễn Thị Diễm Hằng Các nội dung nghiên cứu, kết quả trong dé 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 phan tai 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ũng như 36 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ình thực hiện (nếu có)
TP Hô Chí Minh, ngày 18 tháng 04 năm 2023
Tác giả (ky tén va ghỉ rõ họ tên) Quynh Nguyễn Thị Diễm Quỳnh
Trang 4PHAN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Phần xác nhận của GV hướng dẫn
Tp Hồ Chí Minh,ngày tháng năm (kí và ghi họ tên)
Phần đánh giá của GV chấm bài
Tp Hồ Chí Minh,ngày tháng năm (kí và ghi họ tên)
Trang 5CHƯƠNG 3 - CƠ SỞ LÝ THUYÊT / NGHIÊN CỨU THỰC NGHIỆM 10 3.1 Chèn ảnh code và kết quả bài code - ¿5s s2 22221111221 Errtei 10 EUC ác l6
CHUONG 1- Li THUYET
1.1 Tao ma tran:
® Cu phap tao ma tran ngau nhién:
A = np.andom.randint(low, high = None, size=(row, column)
Trong do:
Trang 6+ A là kết quả của ma trận được tạo
+ low,high: số nguyên từ thấp đến cao mà người nhập mặc định trong ma trận được ngăn cách bởi dấu phẩy
+ size: độ dài của ma trận gồm bao nhiêu hàng (row), bao nhiêu cột (column)
+ A là kết quả của ma trận được tạo
+ int nl,n2,n3: là các số nguyên trong mảng hay của ma trận được người dùng nhập từ ban đầu để khởi tạo mảng hay ma trận mới
1.2 Function
M6t function trong Python dugc định nghĩa như sau:
Function trén lay name lam giá trị đầu vào và trả về một string
Trong đó:
« _ deflà từ khóa được sử dụng đề định nghĩa một hàm
¢ function_name 1a tén cua function
« _ Biến trong dấu ngoặc đơn (name) là đối số bắt buộc cho function
« - Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa cua function 1.3 Chuyén vi: „
- T la mot doi tuong va la mét mang cla Numpy
- T la dao ngược vị trí cột thành dòng, dòng thành cột
1.4 Numpy.arange:
A= numpy.arange([start, |stop, [step, |dtype=None)
Trang 7- start: s6 bat dau, tùy chọn Khoáng bao gồm giá tri này Giá trị bat đầu mặc định là 0
- stop: số kết thúc, tùy chọn
- Vong lap for i in np.arange(n1,n2) Khoang cach giita cac giá trị Đối với bất
kỳ đầu ra nào, đây là khoảng cách giữa hai giá trị liền kể, out[i+I] - out[i] Kích thước bước mặc định là 1 Nếu bước được chí định, bắt đầu nl cũng phải được cung cấp 1.5 Ki Thuat slicing trong numpy array:
- Ki thuat slicing giông với slicing trong list với tuple, và hơn thế nữa nó còn có thể áp dụng với máng nhiều chiều
- Cú pháp thông thường cho máng mét chiéu nhu sau: A[start:stop:step]
start:stop:step, starf:stop:step], dấu phẩy chính là ngăn cách định nghĩa range của phép slicing
VD: A la mang 5x5 va y nghia “0:3” trong A[:3,2:] la range cho hàng, từ hàng 0 đến hang 3 con “2:” 1a range cho cột, từ cột 2 đến cột cuối cùng
1.6 AppendQ) trong python
- appendQ của Python lay một đối tượng làm đối số và thêm nó vào cuối danh sách hiện có, ngay sau phân tử cuối cùng của nó
- Mỗi khi goi append() trên một danh sách hiện có, phương thức này sẽ thêm một item mdi vao cuôi hoặc bên phải của danh sách
® Numpy.copy()
F_reversed = np.copy(F)
- Khởi tạo F_ reversed là kết quả của biêu thức
- np.copy(Œ) là sao chép lại ma trận F vào một biến khác
@ shape trong python:
Trang 81.7 Numpy.dotQ và Numpy.copy(Q
Numpy.dot()
- Néu ca hai mang ‘a’ va ‘b’ déu la mang | chiéu, thi ham dot () thực hiện
tích bên trong của các vectơ (không có liên hợp phức tạp)
- Néu ca hai mang ‘a’ va ‘b’ déu la mang 2 chiéu, thi ham dot () thực hiện
phép nhân ma trận
- Nếu *a' hoặc “b' là 0 chiều (vô hướng), thì hàm dot () thực hiện phép nhân
- Néu ‘a’ la mang N chiéu va ‘b’ 1a mang I chiều, thì hàm dot () thực hiện
tính tông trên trục cuôi cùng của a va b
- Néu ‘a’ lamang M chiéu va ‘b’ la mang N chiéu (trong do N> = 2), thi ham dot () thực hiện tính tông trên trục cuôi cùng cua ‘a’ va truc thir hai -truc cudi cung cua ‘b’
Numpy.copy(): Sử dụng numpy.copy()hàm để sao chép mang Python NumPy (ndarray) sang mang khác Phương thức này lấy máng mà bạn muốn sao chép làm đối số và trả về một bản sao mang cua đối tượng đã cho Bản sao sở hữu
dữ liệu và mọi thay đôi đối với bán sao sẽ không ảnh hưởng đến mảng ban dau
- Thuộc tính shape cho mảng có nhiều mảng trả về kích thước của mảng Nếu Ycó nhàng và mcột thì Y.shapelà (n,m) Y.shape[0] n_
1.9 Max() trong python:
- Ham max() tra vé muc cé giá trị cao nhất hoặc mục có giá trị cao nhất trong một lân lặp
- Nếu các giá trị là chuỗi, thì việc so sánh theo thứ tự bảng chữ cái được thực hiện
Củ pháp:
maxí(nl, n2, n3, .) Hoặc: max(1terable)
Trang 91.10 Hàm enumerate() trong python:
- Enumerate là một built-in function cua Python Ban co thé str dung no cho các vòng lặp của một 1terable với việc tự động sinh ra chỉ sô index
-_ Số đếm (index) bat đầu mặc định từ 0, nhưng bạn có thể đặt lại nó bằng bât kỳ một sô Integer nảo
Trang 1010
CHƯƠNG 2- NGHIÊN CỨU THỰC NGHIỆM
Những nghiên cứu thực nghiệm: trình bày các cơ sở giả thuyêt khoa học và phương pháp nghiên cứu sẽ được sử dụng trong tiểu luận;
2.1 Chèn ảnh code và kết quả bài code
pr1nt(” cau
ae print
Trang 111,21,size=
e randint
.randint
-arange(1,11):
.arange(1,i):
9+1)**i print(sum
50324
Chi C2
10, 10
„10 2,2
7288 19675827 42717.81209065
- 15930 7057401 36779.81615029
- 11632 84160423
-65749.34612148 65777.0143645 22169.27599831 46367.6406874
Trang 13„ randint(1,21;s1ze=( 10,2
print(”cau e:
is prime(m pcg var
mate lang)
„ shape[ Ø
sha
is prime ie) append 1 J Arle arb]
Trang 1515
ernquynh 3 D
import numpy
random randint( 1, 101, size=(10, 10)
random randint(1,21, s1ze=(2,10)
„ random rand1nt(1,21, s1ze=( 10,2)
Trang 16aT current_length = 6
if max_current_length > max_length:
max_length = max_current_length
max rowS = | row
elif max_current_length == max_length:
max_rows append( row print(” Re ae
for row in max_rows:
Trang 1717
® Khởi tạo ma tran ngau nhiên:
.randint(1,191, size=(19, 19) ) randint(1, 21,size=(2,10)) -randint(1, 21,size=(10,2))
Trong do:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ I cho đến 100 và có size là 10 dòng 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
- Khởi tao A băng với kêt quả của phép tính, nhập phép tính
- „T là thuộc tính của Numpy dùng để chuyên vị, chuyển cột thành dòng, dòng thành cột
-“@@ ” là nhân hai ma trận lại với nhau, còn dầu nhân “ * ” là nhân hai sô 2
-randint(1, 21,size=(2,10))
Trang 1818
Trong đó:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
® Eunction:
« _ deflà từ khóa được sử dụng dé định nghĩa một hàm
¢ BQ) la tên của function
« - Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa cua function
® Dùng vòng lặp for để ¡ số nguyên lặp từ số I đến số 10 ( lặp gán cho số mũ và lặp biêu thức tính toán của tông ma trận Sum)
Trang 1919
Trong đó:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
® Eunction:
« _ deflà từ khóa được sử dụng dé định nghĩa một hàm
« - CỌ là tên của function
« - Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa cua function
® Khởi tạo r để lưu giá trị của các hàng lẻ của ma trận ngẫu nhiên Q và sử dụng
-randint(1, 21,size=(10,2))
Trong do:
Trang 20+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
® Function:
« _ deflà từ khóa được sử dụng dé định nghĩa một hàm
¢ DQ) la tên của function
se - Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa cua function
® Khởi tạo vcctor mới D đề lưu các sô nguyên lẻ trong ma trận Q
-randint(1, 21,size=(10,2))
Trong do:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột.
Trang 2121
® Function:
« _ deflà từ khóa được sử dụng dé định nghĩa một hàm
« - E() là tên của function
« _ Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa của function
® Tạo một dcf mới đề lồng điều kiện để tìm ra số nguyên tó
1s_prime(m):
m< 2:
.sqrt(m)) + 1):
-Y nghĩa là nếu m là số tự nhiên bé hơn 2 và lặp lại việc chia số m cho các giá trị
có thê là ước của m (các số từ 2 đến m-1) bằng cách sử dụng một vòng lặp for, nếu ton tại một số được chia hết bởi m, thì chúng ta kết luận nó là hợp sô ngay lập tức Còn nếu vượt qua hết toàn bộ vòng lặp thì số đó kết luận là số nguyên tô và nó chỉ
có thể chia hết cho 1 và chính nó, thi return True, con ngược lại return False
- Tao vector P mới bằng np.array(P) có chứa giá trị các số nguyên tó
® Inra kết quả:
- Dùng câu lệnh print để có thê ¡n kết quả P ra màn hình
- Câu Í:
Trang 2222
® Khởi tạo ma trận ngâu nhiên:
.randint(1,191, size=(19, 19) ) randint(1, 21,size=(2,10)) -randint(1, 21,size=(10,2))
Trong do:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ I cho đến 100 và có size là 10 dòng 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
- Khởi tạo F là kết quả của biêu thức
- np.dot(M,P) là phép nhân ma trận giữa ma trận M va ma tran P
® Numpy.copy()
F_reversed = np.copy(F)
- Khởi tạo F_ reversed là kết quả của biêu thức
- np.copy(Œ) là sao chép lại ma trận F vào một biến khác
i % 2 == 1:
Trang 2323
- Ý nghĩa: Dùng vòng lặp for đề lặp lại các hàng trong ma trận F bằng cách
sử dụng F.shape[0] Thuộc tính shape cân khi có nhiêu mảng trả về kích thước của mảng, mà F.shape{0] là trả về kích thước của hàng
- Để tìm hàng lẻ ta dùng hàm if nếu ¡ chia hết 2 bằng 1 thì đó là lẻ và điều
kiện lông vào 1£ đó là câu lệnh B4 8= - sp HAI dé chon hang gan bang ma tran F, câu lệnh là đảo ngược các phân tử trong hàng lẻ
Trong do:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột
® Function:
Trang 2424
« _ deflà từ khóa được sử dụng dé định nghĩa một hàm
¢ FQ la tén cua function
se - Những dòng tiếp theo ở trong là nội dung hoặc định nghĩa cua function
® Tạo một dcf mới đề lồng điều kiện để tìm ra số nguyên tó
® Tạo một biên mới prime coun(s:
Trang 25- In “Output” để phân biệt kết thúc và đề lúc đầu
- Dùng for để gọi lại chỉ số lớn nhất
- In ra số hàng chứa số nguyên tô lớn nhất sau khi code của ma trận Q
- Cau h:
® Khởi tạo ma tran ngau nhiên:
.randint(1,191, size=(19, 19) ) randint(1, 21,size=(2,10))
-randint(1, 21,size=(10,2))
Trong do:
+_Q,P, Mlà kết quả của ma trận được gán dưới tên ấy
+_Q: Có số nguyên bắt đầu từ 1 cho đến 100 và có size là 10 dong 10 cột +_P: Có số nguyên bắt đầu từ I cho đến 20 và có size là 2 dòng 10 cột
+ Q: Có số nguyên bắt dau tir 1 cho đến 20 và có size là 10 dòng 2 cột