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

Bài tập lớn môn Đại số tuyến tính tiểu luận về ma trận

27 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Ma trận
Tác giả Nguyễn Thị Diễm Quỳnh
Người hướng dẫn GV Nguyễn Thị Diễm Hằng
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Mạng máy tính và truyền thông dữ liệu
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 27
Dung lượng 4,7 MB

Nội dung

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 1

TONG 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 2

LỜ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 3

TIỂ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 4

PHAN 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 5

CHƯƠ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 8

1.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 9

1.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 10

10

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 11

1,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 15

15

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 16

aT 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 17

17

® 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 18

18

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 19

19

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 21

21

® 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 22

22

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

23

- Ý 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 24

24

« _ 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

Ngày đăng: 16/10/2024, 19:28

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

TÀI LIỆU LIÊN QUAN

w