Bộ môn Khoa học Dữ liệu Thực hành Toán cao cấp 2019 Trang 1 THỰC HÀNH TOÁN CAO CẤP TÀI LIỆU PHỤC VỤ SINH VIÊN NGÀNH KHOA HỌC DỮ LIỆU Nhóm biên soạn TS Hoàng Lê Minh – Khưu Minh Cảnh – Hoàng Thị Kiều A[.]
Bộ mơn Khoa học Dữ liệu THỰC HÀNH TỐN CAO CẤP TÀI LIỆU PHỤC VỤ SINH VIÊN NGÀNH KHOA HỌC DỮ LIỆU Nhóm biên soạn: TS Hồng Lê Minh – Khưu Minh Cảnh – Hoàng Thị Kiều Anh – Lê Thị Ngọc Huyên – … TP.HCM – Năm 2019 Thực hành Tốn cao cấp - 2019 Trang Bộ mơn Khoa học Dữ liệu MỤC LỤC CHƯƠNG 8: HÀM NHIỀU BIẾN VÀ ỨNG DỤNG (tiếp theo) Một số lưu ý sử dụng sympy (phần 2) Giới thiệu Solveset Sympy Giới thiệu biến đổi với hàm nhiều biến Bài toán tối ưu nhân tử Lagrange BÀI TẬP CHƯƠNG 13 Thực hành Toán cao cấp - 2019 Trang Bộ môn Khoa học Dữ liệu CHƯƠNG 8: HÀM NHIỀU BIẾN VÀ ỨNG DỤNG (tiếp theo) Mục tiêu: - Bổ sung lưu ý sử dụng sympy, hàm solveset - Hàm nhiều biến - Bài toán tối ưu hóa hàm nhiều biến với nhân tử Lagrange Nội dung chính: Một số lưu ý sử dụng sympy (phần 2) Dưới số lưu ý sử dụng sympy mà người sử dụng cần biết: Để tạo danh sách (list) giá trị, gán giá trị vào dấu [ ] brackets (ví dụ: x = [1,2,3,4,5]) Để lấy giá trị thứ i list x sử dụng x[i - 1] Lưu ý điều có nghĩa truy cập đến phần tử (thứ 1) x[0],… Các liệu dạng tuples giống với kiểu lists khó sử dụng Về cách tạo giống, cần đưa phần tử vào dấu ngoặc đơn, ví dụ: x = (2,3,4) Tuy nhiên, cách sử dụng, kiểu tuple khác với list hai điểm Điểm khác biệt khơng thể cập nhật/thay đổi giá trị sau tạo chúng Điều hữu ích muốn tạo liệu mà ngăn thay đổi (cố ý vơ tình đó, ví dụ: ghi nhận thông tin thời điểm hộp đen hành trình) Thực hành 1a: Minh họa sử dụng Tuple >>> y = (3, 5, 7) >>> y (3, 5, 7) >>> y[1] >>> y[1]= ……………………………………………………………… sinh viên ghi nhận lỗi Thực hành Toán cao cấp - 2019 Trang Bộ môn Khoa học Dữ liệu Nếu muốn chia số nguyên, ý tưởng tốt nên sử dụng gói from future import division Vì sử dụng gói ngăn cản Python cắt bớt trị trả cách sử dụng lệnh floor() [tuy nhiên, phiên 3.x, dường điều không cần thiết] Thực hành 1b: >>> from future import division >>> 10/3 ……………………………………………………………… sinh viên ghi nhận giá trị Khi có phương trình giá trị (một biến), sử dụng phương thức thay subs để thay giá trị Ví dụ, ta có: x + 14 biết x = 1, thực lệnh thay sau (x + 14).subs(x, 1) để nhận giá trị 15 Thực hành 1c: >>> import sympy >>> from sympy import Symbol >>> x = Symbol('x') >>> y = x + >>> y.subs(x, 14) ……………………………………………………………… sinh viên ghi nhận giá trị Ngồi ra, sử dụng phương thức thay biến cho biểu thức Ví dụ: muốn thay biến x thành biến y biểu thức pi - 17*x, đó, Thực hành Tốn cao cấp - 2019 Trang Bộ môn Khoa học Dữ liệu thực câu lệnh sau: (pi - 17*x).subs(x, y) để tạo pi - 17*y Nếu y hàm theo x biểu thức tính tốn giá trị (và cuối thể x) Tuy nhiên, thay x biến (được khái báo) biểu thức biểu diễn theo biến (như ví dụ y bên trên) Minh họa: Thực hành 1d: >>> import sympy >>> from sympy import Symbol >>> x = Symbol('x') >>> from sympy import pi >>> z = pi - 18*x >>> z.subs(x, y) ……………………………………………………………… sinh viên ghi nhận giá trị >>> t = Symbol('t') >>> z = pi - 18*x >>> z.subs(x, t) ……………………………………………………………… sinh viên ghi nhận giá trị Giới thiệu Solveset Sympy Để giải phương trình, Sympy hỗ trợ lệnh Solve hay ấn tượng Tuy nhiên, lệnh Solve có số giới hạn sau: Lệnh Solve không quán output nhiều loại phương trình tốn học Xét ví dụ thực hành sau: Thực hành 2: >>> from sympy import solve, sin >>> x = Symbol('x') >>> y = Symbol('y') Thực hành Toán cao cấp - 2019 Trang Bộ môn Khoa học Dữ liệu >>> solve(x-1,x) # phuong trinh =1 ………………………………………………………………… sinh viên điền vào >>> solve(x**2-1,x) # phuong trinh =1 ………………………………………………………………… sinh viên điền vào >>> solve(x**2+1,x) # phuong trinh −1=0 ………………………………………………………………… sinh viên điền vào >>> solve(sin(x),x) # phuong trinh sin =0 ………………………………………………………………… sinh viên điền vào Nhiều tham số đầu vào có nhiều Nhiều tham số khơng cần làm cho người sử dụng tương đối khó để giải Trong số trường hợp, việc tìm kiếm giá trị max hàm sử dụng điểm cực trị (critical points) khơng thể đảm bảo hàm solve Từ đó, sympy hỗ trợ thêm lệnh Solveset để khắc phục số vấn đề lệnh Solve Cụ thể sau: Rõ ràng giao diện đầu vào ra! Theo đó, phải khai báo thêm ConditionSet để hỗ trợ đầu Ở đầu vào, hàm Solveset có phương trình, kể biến tham số domain giải Solveset trả nghiệm vơ tận Ví dụ: giải sin = 0, trả nghiệm 2nπ|n ∈ Z ∪ 2nπ + π|n ∈ Z Thực hành 3: Thử nghiệm solveset >>> from sympy import solveset >>> solveset(sin(x),x) ………………………………………………………………… sinh viên điền vào ………………………………………………………………… Khai báo rõ domain nghiệm Domain nghiệm miền nghiệm Trong Sympy, có miền nghiệm, mặc định nghiệm phức (domain = S.Complexes) Ví dụ: giải phương trình sau: Thực hành Tốn cao cấp - 2019 Trang Bộ mơn Khoa học Dữ liệu - Phương trình: Thực hành 4: + = >>> from sympy import solveset, S >>> from sympy.abc import x, y, z >>> solveset(x**2 + 1, x) # mac dinh la mien so phuc: domain = S.Complexes ………………………………………………………………… sinh viên điền vào >>> solveset(x**2 + 1, x, domain = S.Reals) # mien so thuc ………………………………………………………………… sinh viên điền vào - Phương trình: = : (miền thực nghiệm {0} miền phức họ nghiệm khác) Chi tiết sau: Thực hành 5: >>> from sympy import solveset, S >>> from sympy.abc import x, y, z >>> from sympy import E >>> solveset(e**x-1, x) # mac dinh la mien so phuc: domain = S.Complexes ………………………………………………………………… sinh viên điền lỗi vào >>> solveset(E**x-1, x) # mac dinh la mien so phuc: domain = S.Complexes ………………………………………………………………… sinh viên điền vào >>> solveset(E**x-1, x, domain = S.Reals) ………………………………………………………………… sinh viên điền vào - Phương trình phức hợp Ví dụ: sin + −9 =0 Phương trình có nghiệm hợp tập: −3, ∪ x|x ∈ ℝ ⋀ x + sin x = Thực hành Toán cao cấp - 2019 Trang ... Bài toán tối ưu nhân tử Lagrange BÀI TẬP CHƯƠNG 13 Thực hành Toán cao cấp - 2019 Trang Bộ môn Khoa học Dữ liệu CHƯƠNG 8: HÀM NHIỀU BIẾN VÀ ỨNG DỤNG (tiếp theo). .. MỤC LỤC CHƯƠNG 8: HÀM NHIỀU BIẾN VÀ ỨNG DỤNG (tiếp theo) Một số lưu ý sử dụng sympy (phần 2) Giới thiệu Solveset Sympy Giới thiệu biến đổi với hàm nhiều biến ... sung lưu ý sử dụng sympy, hàm solveset - Hàm nhiều biến - Bài tốn tối ưu hóa hàm nhiều biến với nhân tử Lagrange Nội dung chính: Một số lưu ý sử dụng sympy (phần 2) Dưới số lưu ý sử dụng sympy mà