Bài Tiểu Luận Sử Dụng Python Với Bài Tập Ứng Dụng Phép Toán Về Tính Định Thức Trong Kinh Tế.pdf

26 1 0
Tài liệu đã được kiểm tra trùng lặp
Bài Tiểu Luận Sử Dụng Python Với Bài Tập Ứng Dụng Phép Toán Về Tính Định Thức Trong Kinh Tế.pdf

Đ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

Trang 1

BỘ KẾ HOẠCH VÀ ĐẦU TƯ

HỌC VIỆN CHÍNH SÁCH VÀ PHÁT TRIỂN

Trí tuệ và Phát triển

SỬ DỤNG PYTHON VỚI BÀI TẬP ỨNG DỤNG PHÉP TOÁNVỀ TÍNH ĐỊNH THỨC TRONG KINH TẾ

GVHD: Trần Thị Hương TràSVTH: 1 Trần Thị ThanhTrang

2 Thân Huyền Trang3 Vũ Thị Huyền Trang4 Nguyễn Hà Vy5 Lê Quỳnh Trang Lớp: PTDLL13

HÀ NỘI – NĂM 2022

Trang 2

4 Nhiệm vụ nghiên cứu 3

5 Đối tượng nghiên cứu 4

6 Phương pháp nghiên cứu 4

B PHẦN NỘI DUNG 5

Chương 1: Giới thiệu tổng quan về ngôn ngữ lập trình Python và Định thức 5

1.1.Ngôn ngữ lập trình Python 5

1.2.Giới thiệu cách nhập dữ liệu vào phần mềm Python 10

Chương 2: Lý thuyết Định thức trong Đại số tuyến tính 11

1.1 Định nghĩa: 11

1.2 Khai triển định thức theo hàng (cột) 13

1.3 Các tính chất của định thức 15

1.4 Cách tính định thức bằng phép biến đổi sơ cấp 16

Chương 3: Sử dụng Python với bài tập ứng dụng phép toán về tính Định thức trong kinhtế 17

1.1 Giới thiệu về thư viện Numpy trong Python: 17

1.2 NumPy được viết bằng ngôn ngữ gì? 18

2.1 Định thức của ma trận vuông cấp n khi ứng dụng vào NumPy 21

2.2 Các ví dụ minh họa cho việc xử lí dữ liệu với bài toán kinh tế bằng NumPy 22

C KẾT LUẬN 25

1 Quan điểm cá nhân về đề tài nghiên cứu 25

2 Tài liệu tham khảo 25

Trang 3

A PHẦN MỞ ĐẦU.

1 Lý do chọn đề tài.

Trong thời đại 4.0 – xu hướng kết hợp giữa các hệ thống ảo và thực thể, vạn vật kết nối internet – đang thách thức ý niệm của chúng ta về vai trò thực sự của con người Cùng với đó là sự lớn dần của các con số kinh tế luôn là bài toán đau đầu thách thức các doanh nghiệp Nhưng trong thời đại số như hiện nay số lượng tìm kiếm về lập trình Python để xây dựng các phép toán về trong kinh tế ngày cànggia tăng với tốc độ chóng mặt trong nhiều năm đổ lại đây Các doanh nghiệp, công ty vừa và nhỏ luôn luôn nóng ghế cho các vị trí nhân sự phục vụ mảng đề tài này Vì vậy, chúng em chọn đề tài này để giữa phần môn Toán cao cấp để phân tích rõ hơn về mối liên hệ chặt chẽ của toán với công nghệ thông tin Từ đó giúp nhiều hơn các bạn sinh viên đang có trong mình hướng đi này hiểu hơn về quá trình học tập cần thiết đối với môn học này

2 Phạm vi đề tài

Trong khuôn khổ của tiểu luận khoa học, đề tài của nhóm em chỉ giới hạn trong việc nghiên cứu sử dụng Python vào bài tập ứng dụng về phép toán tính định thực trong kinh tế.

3 Mục đích nghiên cứu

Trong phạm vi đề tài của nhóm em, chúng em muốn nghiên cứu, tìm tòi về cách sử dụng Python để giải quyết các bài toán Nhằm giúp học sinh, sinh viên, những người muốn học về Python với bài tập ứng dụng phép toán về tính định thứctrong kinh tế.

+ Biết sử dụng Python cơ bản.

+ Hiểu và vận dụng một số phép toán, hàm có sẵn trong ngôn ngữ lập trình.+ Giúp càng nhiều người tiếp cận dễ dàng hơn với Python và ứng dụng bài tập phép toán tính định thực trong kinh tế.

- Cũng qua đề tài, nhóm chúng em muốn cùng các bạn sinh viên trao đổi, trau dồi kĩ năng nhằm góp phần nâng cao trình độ và khả năng mở rộng kiến thức.

Trang 4

4 Nhiệm vụ nghiên cứu.

Sinh viên hoàn thành nội dung đề tài, báo cáo thành chuyên đề nộp và thuyếttrình trong phần thi giữa kì phần môn Toán cao cấp để cùng các bạn trao đổi và bổ sung những thiếu sót của đề tài Giao lưu học hỏi, trao đổi kinh nghiệm với các bạntrong lớp.

5 Đối tượng nghiên cứu

Nghiên cứu về cách sử dụng Python và ứng dụng vào bài tập về tính định thực trong kinh tế cho những người mới bắt đầu

6 Phương pháp nghiên cứu.

Phương pháp phân tích, tổng hợp.

Trang 5

B PHẦN NỘI DUNG.

Chương 1: Giới thiệu tổng quan về ngôn ngữ lập trình Python và Định thức.

1.1.1.Lịch sử ra đời.- Lịch sử của Python:

Python là một ngôn ngữ lập trình được tạo ra bởi Guido Van Rossum Thiết kế bắt đầu vào cuối những năm 1980 và được phát hành lần đầu tiên vào tháng 2 năm 1991.

- Tại sao Python được tạo ra?

Vào cuối những năm 1980, Guido Van Rossum làm việc trong Amoeba, phân phốimột nhóm hệ điều hành Ông muốn sử dụng một ngôn ngữ thông dịch như ABC (ABC có cú pháp rất dễ hiểu) để truy cập vào những cuộc gọi hệ thống Amoeba Vì vậy, ông quyết định tạo ra một ngôn ngữ mở rộng Điều này đã dẫn đến một thiết kế của ngôn ngữ mới, chính là Python sau này.

- Tại sao lại có tên là Python?

Ồ, Python không phải được đặt theo tên của con rắn thần Python trong thần thoại Hy Lạp đâu Rossum là fan của một sê-ri chương trình hài cuối những năm 1970, và cái tên “Python” được lấy từ tên một phần trong sê-ri đó “Monty Python’s Flying Circus”.

- Các phiên bản Python đã phát hành:

Python 1.0 (bản phát hành chuẩn đầu tiên)

Python 1.6 (Phiên bản 1.x cuối cùng) 01/1994 05/09/2000 Python 2.0 (Giới thiệu list comprehension)

Python 2.7 (Phiên bản 2.x cuối cùng)

16/10/2000 03/07/2010 Python 3.0 (Loại bỏ cấu trúc và mô-đun trùng lặp)

Python 3.8.5 (Bản mới nhất tính đến thời điểm cập nhật bài)

03/12/2008 20/07/2020

1.1.2 Giới thiệu các phép toán trong P.

Trang 6

a) Các phép toán số học với số nguyên.

*Ví dụ 1:

Kết quả:

Trang 7

Python cho phép tính toán với các số nguyên có giá trị lớn Ví dụ:

Hiển thị kết quả 2021 lũy thừa 20: Chương trình:

a = 2021 n = 20 s = a**n

Trang 8

print("Chu vi hình tròn là: ",C)

Kết quả:

Trang 9

c Các phép toán quan hệ

Chú ý: Kết quả của các phép toán quan hện cho giá trị logic (True or False)

d Các phép toán logic

Chú ý: Một trong những ứng dụng của phép toán logic là để tạo ra các biểu thức phứctạp từ các quan hệ đơn giản

Trang 10

1.2 Giới thiệu cách nhập dữ liệu vào phần mềm Python

Trong Python để nhập liệu ta dùng hàm input() Giá trị nhập vào của hàm input() thường là kiểu chuỗi, do đó ta cần chuyển kiểu nếu như muốn lưu trữ giá trị nhập vào không phải kiểu chuỗi

Bây giờ trong PyCharm ta tạo một tập tin tên là: HocNhapLieu.py với các lệnh sau:

1 2 3 4

print("Mời bạn nhập cái gì đó:")s=input()

print("Bạn nhập:",s)print("Kiểu dữ liệu:",type(s))

Bạn chạy File HocNhapLieu.py, sau đó nhập một vài dữ liệu để kiểm tra:

Trường hợp 1: Bạn nhập giá trị là 113, ta có kết quả:

Bạn quan sát ta nhập 113,, nhưng kiểu dữ liệu vẫn là chuỗi str

Trường hợp 2: Bạn nhập giá trị là 9.5, ta có kết quả:

Trường hợp 3: Bạn nhập giá trị là Obama, ta có kết quả:

Trang 11

Trường hợp 4: Bạn nhập giá trị là True, ta có kết quả:

Bạn thấy đó, mọi trường hợp điều là kiểu chuỗi str (cho dù bạn nhập loại dữ liệu nào đi nữa)

Chương 2: Lý thuyết Định thức trong Đại số tuyến tính 1.1 Định nghĩa:

1.1.1 Hoán vị: Cho A = {1,2,3,…,n}

- Hoán vị của n phần tử là 1 cách sắp xếp n phần tử đó theo thứ tự khác nhau - Số hoán vị: n!

- Ví dụ: A= {1,2,3} => số hoán vị: 3! 1.1.2 Nghịch thế: Xét hoán vị {j , j , …, j }12n

- Định nghĩa: Nghịch thế là cặp (j , j ) thoản mãn hk jh > jk với h < k

(Trên một phép thế nào đó người ta xác định cặp số mà số đứng trước lại lớn hơn số đứng sau gọi là một nghịch thế.)

- Ví dụ: (1,3,5,2,4) có nghịch thế là: (3,2); (5,2); (5,4) - Ký hiệu: N (j , j , , j ) = số nghịch thế.12n

Trang 12

- Ví dụ: N (2,4,3,1) = 4

N (3,4,5,1,2) = 61.1.3 Định thức:

- Trong đại số tuyến tính, định thức là một hàm cho mỗi ma trận vuông , tương Aứng với số vô hướng, ký hiệu là det( ) A

- Ý nghĩa hình học của định thức là tỷ lệ xích cho thể tích khi được coi là một Abiến đổi tuyến tính.

* Với mỗi ma trận vuông A cấp n:

a11 a a a12 13 1n 21 22 aa a23 a2n an1 an2 an3 ann

tồn tại một số thực được gọi là định thức của ma trận A, được kí hiệu:

a11 a a a1n12 13 a21 22 a a23 a2n an1 an2 an3 ann

- Cách tính định thức theo định nghĩa: Xét ma trận A vuông cấp n, định thức của A: det A = |A| = ∑ (-1)N(j1,j2,…,jn)

det(A)= |A| =

Trang 13

Dấu "+" trước 3 tích sau: Tích 3 phần tử nằm trên đường chéo chính, tích 3 phần tửlà 3 đỉnh của 1 tam giác có 1 cạnh song song với đường chéo chính (không có 2 phần tử nào cùng hàng, cùng cột)

Dấu "-" trước 3 tích sau: Tích 3 phần tử nằm trên đường chéo phụ, tích 3 phần tử là 3 đỉnh của 1 tam giác có 1 cạnh song song với đường chéo phụ (không có 2 phầntử nào cùng hàng, cùng cột).

a) Định thức con tương ứng với phần tử aij (ký hiệu: M ) ij

- Là định thức thu được bằng cách bỏ đi hàng i, cột j của A.

1 4 7

Trang 14

A = 2 5 8 => M22 = 1 7 = -12 3 6 9 3 9

b) Phần bù đại số tương ứng với phần tử aij

Kí hiệu: A = (-1) det M iji+jij

Ví dụ: 1 4 7

A = 2 5 8 => A23 = - 1 4 = 6 3 6 9 3 6

c) Khai triển định thức theo hàng (cột) - Khai triển định thức theo hàng i: det A = ∑

❑ (-1) a det M i +jijij

- Khai triển định thức theo cột j: det A = ∑

(-1) aij det M i+jij

* Ví dụ: Tìm x?

2 0 x 2

x x 0 2 = 0 (C3) x x x 2 x 2 0 x x 2 x = 0 2 x 0 2 2 x 2ó x (4x + 2x + 2x – 8 – 2x – x ) = 0 2223

-x + 2x + 4x – 8 = 032ó X= 2

Trang 15

* Note: Đị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

1.3 Các tính chất của định thức.

Tính chất 1: Định thức của một ma trận vuông bằng định thức của ma trận chuyển vị của nó

det (A) = det (A’)

Các tính chất của định thức đúng với dòng đều đúng với cột.

3 5 = 13 -1 5 = 13

Tính chất 2: det (AB) = det (A) det(B)

Tính chất 3: Nếu đổi chỗ 2 hàng (2 cột) của định thức => định thức đổi dấu

Ví dụ: 1 4 77 4 1 2 5 8 = ─ 8 5 2 3 6 9 9 6 3

Tính chất 4: Nếu định thức có 1 hàng (1 cột) = 0 => định thức bằng 0 Nếu định thức có 2 hàng (2 cột) tỉ lệ => định thức bằng 0 Tính chất 5: Nếu nhân 1 hàng với k ≠ 0 thì định thức mới gấp k lần định thức cũ.

* Hệ quả: -Nếu A là ma trận vuông cấp n thì det (kA) = k detAn

Ví dụ: A3x3; |A|=4 => det (2A) = 2 4 = 323 -Rút nhân tử chung của 1 hàng (1 cột) ra ngoài định thức

Trang 16

6 4 1 = 3 2 2 2 1 9 8 1 3 4 1

Tính chất 6: Cộng vào 1 hàng (1 cột) tổ hợp tuyến tính các hàng khác (cột khác)thì định thức không đổi.

Ví dụ:

1 2 3 x (-1) 1 2 3 4 5 6 x (-1) = 4 5 6 = 0 5 7 9 0 0 0

Tính chất 7: Tính chất tách định thức.

a1 + a a + a a + a a a1’ 22’ 33’ 12 a3 a1’ a a2’ 3’ b b12 b3 = b b b123 + b1 b2 b3 c c12 c3 c1 c2 c3 1 2 3ccc

1.4 Cách tính định thức bằng phép biến đổi sơ cấp.

- Phép biến đổi sơ cấp: Đổi chỗ 2 hàng (2 cột).Nhân 1 hàng (1 cột) với k ≠ 0.

Cộng vào 1 hàng (1 cột) 1 tổ hợp tuyến tính các hàng khác (cột khác).Sử dụng phép BĐSC để đưa định thức bất kỳ về định thức tam giác hoặc

định thức có nhiều số 0

*Ví dụ 1:

1 -3 2 7 x (-1) x (-3) x (-2) 1 -3 2 7 1 - 3 2 7

Trang 17

1 -2 1 6 ó 0 1 -1 -1 x (-11) 0 1 -1 -1ó 3 -9 7 2 0 0 1 -19 0 0 1 -19 x-6 2 5 -1 -2 0 11 -5 -16 0 0 6 -5

1 -3 2 7 ó 0 1 -1 -1 = 109 0 0 1 -19 0 0 0 109 *Ví dụ 2: Tìm x?

1+ x 1 1 1 x (-1) x (x-1) 1+x 1 1 1 -x -x 0 1 1-x 1 1 = 64 -x -x 0 0 = 64 (c4) (-1) -x 0 x = 64 1 1 1+x 1 -x 0 x 0 x2 x x 1 1 1 1-x x2 x x 0

(-1) (-x) x x 1 1 0 = 64 x (x + 1 - 1) = 64 x = 64 x = 8 x = 8 342 -1 0 1 x = -8 x 1 1

Chương 3: Sử dụng Python với bài tập ứng dụng phép toán về tính Định thứctrong kinh tế.

* Phương pháp xử lý Định thức trong Python bằng thư viện Numpy

1.1 Giới thiệu về thư viện Numpy trong Python:

1.1.1 Tại sao lại chọn NumPy để tính toán thay vì các thư viện toán học khác? - Numpy (Numeric Python) là một thư viện toán học phổ biến cốt lõi và mạnh mẽ phục vụ cho khoa học máy tính của Python

Trang 18

- Thư viện này cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệuma trận và mảng lớn và nhiều chiều, có kích thước lớn với các hàm đã được tối ưu với tốc độ xử lý nhanh hơn rất nhiều lần

- Numpy đặc biệt hữu ích khi thực hiện các hàm liên quan tới Đại Số Tuyến

1.2 NumPy được viết bằng ngôn ngữ gì?

NumPy là một thư viện Python được viết một phần bằng Python và hầu hết các phần được viết bằng C hoặc C++ Và nó cũng hỗ trợ các phần mở rộng bằng các ngôn ngữ khác, thường là C++ và Fortran.

1.2.1 Cài đặt thư viện:

- Để cài đặt thư viện Numpy trong Python, chúng ta tiến hành: + Mở Command Prompt.

+ Gõ dòng lệnh “pip install numpy”

Pip là viết tắt của từ Preferred Installer Program: Là một tiện ích dòng lệnh cho phép cài đặt, cài đặt lại hoặc gỡ các gói PyPI (thư viện) bằng các câu lệnh đơn giản.

Trang 19

1.2.2 Sử dụng thư viện Numpy:1.2.2.1 Khai báo thư viện:

- Để tiến hành sử dụng thư viện Numpy, từ màn hình lập trình Python, ta nhập dòng lệnh “import numpy as np”

import numpy as np*Giải thích: Cấu trúc import:

import (name, globals=None, locals=None, fromlist=(), level= )0-Trong đó:

+ Name: tên Module cần nhập (Module là cách mà chúng ta phân hóa chương trìnhra các nhánh nhỏ cho dễ quản lý và gọi lại khi cần thiết => Làm cho chương trình có khả năng tái sử dụng, bảo trì cao)

+ Globals và locals: xác định cách để diễn giải tên

+ Fromlist: Tên của các đối tượng hoặc mô hình con _ nên được nhập từ module cung cấp theo tên.

+ Level: Chỉ định sử dụng với import tuyệt đối hay tương đối.

Đây là một câu lệnh khởi đầu, vì vậy nhóm chỉ giới thiệu sơ bộ với các bạn là khai báo như dòng trên, không nên đào sâu khái niệm.

1.2.2.2 Khởi tạo mảng:a) Khởi tạo mảng một chiều.

#Khở i tạo mả ng một chiề u với kiề u dữ liệu các phầ n tử là Integerảrr np.ảrrảy([=1,3,4,5,6], dtype =int)

#Khở i tạo mả ng một chiề u với kiề u dữ liệu mặc địnhảrr np.ảrrảy([=1,3,4,5,6])

Trang 20

print(arr)OUTPUT:[1 3 4 5 6]

b) Khởi tạo mảng hai chiều.ảrr1 np.ảrrảy([(=4, ,5 6), (1,2,3)], dtype =int)

OUTPUT:[[4 5 6]4[1 2 3]]

c) Khởi tạo mảng ba chiềuảrr2 np.ảrrảy(([(=2,4,0,6), (4, , , )],7 5 6 [(0, , ,3 2 1), (9,4,5,6)],

[(5, , ,8 6 4), (1,4,6,8)]), dtype )=int

OUTPUT:[[[2 4 0 6]4 [4 7 5 6]]4[[0 3 2 1]4 [9 4 5 6]]4[[5 8 6 4]4 [1 4 6 8]]]

d) Khởi tạo với các hàm có sẵn

np.zeros((3,4), dtype = int): Tạo mảng hai chiều các phần tử 0 với kích

thước 3x4.

Trang 21

np.ones((2,3,4), dtype = int): Tạo mảng 3 chiều các phần tử 1 với kích

thước 2x3x4.

np.arange(1,7,2): Tạo mảng với các phần tử từ 1 - 6 với bước nhảy là 2.np.full((2,3),5): Tạo mảng 2 chiều các phần tử 5 với kích thước 2x3.np.eye(4, dtype=int): Tạo ma trận đơn vị với kích thước là 4x4.np.random.random((2,3)): Tạo ma trận các phần tử ngẫu nhiên với kích

thước 2x3.1.2.2.3 Thao tác với mảng

dtype: Kiểu dữ liệu của phần tử trong mảng.shape: Kích thước của mảng.

size: Số phần tử trong mảng.ndim: Số chiều của mảng.

print("Kích thửớc cu ả mả ng:", ảrr2.shảpe)print("Số? phầ n tử trong mả ng:", ảrr2.size)print("Số? chiề u cu ả mả ng:", ảrr2.ndim)

Kiểu dữ liệu của phần tử trong mảng: int32Kích thước của mảng: (3, 2, 4)

Số phần tử trong mảng: 24Số chiều của mảng: 3

2.1 Định thức của ma trận vuông cấp n khi ứng dụng vào NumPy.

- Khi bạn đã biết cách trình bày một ma trận, chúng ta đi vào tính định thức Định thức của MT vuông A, kí hiệu là det(A) _ Chú ý: Định thức là SỐ chứ không phải MA TRẬN.

Ngày đăng: 22/05/2024, 16:21

Tài liệu cùng người dùng

Tài liệu liên quan