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 kinh tế...17 1.1.. Trong khuôn khổ của tiểu luận khoa h
Trang 1BỘ 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ÁN
Trang 2MỤC LỤC
A PHẦN MỞ ĐẦU 3
1 Lý do chọn đề tài 3
2 Phạm vi đề tài 3
3 Mục đích nghiên cứu 3
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 kinh tế 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 44 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- 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 6a) Các phép toán số học với số nguyên.
*Ví dụ 1:
Kết quả:
Trang 7Python cho phép tính toán với các số nguyên có giá trị lớn
Trang 9c 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 101.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:
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 11Trườ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
- Định nghĩa: Nghịch thế là cặp (j , j ) thoản mãn h k j h > j k 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ế.1 2 n
Trang 13Dấ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ần
1.2 Khai triển định thức theo hà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 14A = 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 ij i+j ij
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:
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
* 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 166 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
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:
Trang 17x 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ức trong 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ệu
ma 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 191.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ình
ra 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 20OUTPUT:
[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 )
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 21np.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)
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
Trang 22Numpy hỗ trợ chúng ta việc tính gần đúng, ta không phải tính 1 cách dài dòng dễ dẫn tới nhầm lẫn nữa:
*Ví dụ: Cho định thức cấp 3 như sau, hãy dùng NumPy để xử lí số liệu:
Trang 23*Ví dụ 3: Cho bảng:
Báo cáo phân tích doanh thu theo danh mục sản phẩm của Apple trong 4 quý
đánh thuế 10% số doanh thu thu được thì doanh thu sau thuế của hãng sẽ là:
Column1 iPhone Mac iPad SmartWatch Dịch vụ
Quý 1 $50.57 $10.44 $7.65 $7.80 $19.80
Quý 2 $40.67 $7.38 $7.22 $8.08 $19.60
Quý 3 $40.67 $7.38 $7.22 $8.08 $19.60
Quý 4 $42.63 $11.51 $7.17 $9.65 $19.19
Trang 25C K T LU N Ế Ậ
1 Quan điểm cá nhân về đề tài nghiên cứu
Định thức là một trong những công cụ rất quan trọng trong Đại số tuyến tính và có
nhiều ứng dụng trong toán học Phương pháp định thức cho phép tiếp cận những kiến thức toán học một cách gọn gàng sáng sủa, đồng thời sử dụng định thức còn làphương pháp giiar toán rất hiệu quả Nó có tác dụng tích cực trong việc phát triển
tư duy cho người học toán
Đồng thời mảng kiến thức này cũng đóng góp rất nhiều điều hữu ích cho mảng phân tích dữ liệu trong kinh tế, đặc biệt là những dữ liệu lớn Qua đây chúng ta thấy được mối liên hệ mật thiết như nào trong toán và công nghệ kết hợp hoàn hảo,
bổ trợ lẫn nhau, giúp ích rất nhiều đặc biệt là với sinh viên chuyên ngành Big Data của Học viện Chính sách và Phát triển (APD) thì mảng kiến thức này quả thực hữu
ích
Như vậy, qua bài viết này, mình cùng các bạn đã ôn tập lại các kiến thức cơ bản
nhất về định thức cũng như các hàm xử lý trong thư viện Numpy của Python Nhờ Numpy, các phép tính phức tạp với định thức đôi khi chỉ cần vài dòng lệnh là có thể hoàn thành Tất nhiên, những kiến thức đề cập ở trên chưa phải là đủ để các bạn có thể bước chân vào thế giới Machine Learning Những vấn đề nâng cao hơn của định thức và Numpy
2 Tài liệu tham khảo
Chương 1:
1.1.itplus-academy.edu.vn
Chương 2:
1.2 Giao trình TOÁN CAO CẤP cho các nhà kinh tế (Nhà xuất bản Đại học Kinh
tế quốc dân 2016) _trang113
Chương 3:
1.1 codelearn.io/sharing/tim-hieu-thu-vien-numpy-trong-python
và vn.got-it.ai
Trang 262.2 www.thegioididong.com