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

báo cáo giữa kỳ

27 0 0
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 đề Giải tích ứng dụng cho khoa Công nghệ thông tin
Tác giả Nguyễn Thị Minh Hương
Người hướng dẫn Giảng viên 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 Công nghệ thông tin
Thể loại Bài tiểu luận
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 27
Dung lượng 2,48 MB

Nội dung

 Dễ dàng để sử dụng: Python là một ngôn ngữ bậc cao rất dễ dàng để sử dụng với số lượng từ khóa ít hơn và cú pháp đơn giản, phần code của Python được định nghĩa rõ ràng và rành mạch, gi

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN THỊ MINH HƯƠNG - 52300201

BÀI TIỂU LUẬN BÁO CÁO GIỮA KỲ GIẢI TÍCH ỨNG DỤNG CHO KHOA

CÔNG NGHỆ THÔNG TIN

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 2

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN THỊ MINH HƯƠNG - 52300201

BÀI TIỂU LUẬN BÁO CÁO GIỮA KỲ GIẢI TÍCH ỨNG DỤNG CHO KHOA

CÔNG NGHỆ THÔNG TIN

Người hướng dẫn

Giảng viên Nguyễn Thị Diễm Hằng

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, em xin được gửi lời cảm ơn chân thành nhất đến cô Nguyễn ThịDiễm Hằng Trong suốt quá trình học tập và tìm hiểu môn học, em đã nhận được rấtnhiều sự quan tâm, giúp đỡ, hướng dẫn tâm huyết và tận tình của cô Cô đã giúp emtích lũy thêm nhiều kiến thức về môn học này cũng như đưa ra những góp ý đã giúpem có thể hoàn thành bài tiểu luận này cách tốt nhất Em rất biết ơn và cảm kích vìsự hỗ trợ vô cùng to lớn của cô Mặc dù đã cố gắng hoàn thành đề tài, nhưng emnhận thấy rằng bài làm vẫn còn nhiều điểm cần cải thiện Em rất mong nhận đượcthêm sự góp ý thầy/cô để bài tiểu luận trở nên hoàn thiện hơn Em xin chân thànhcảm ơn!

TP Hồ Chí Minh, ngày 22 tháng 12 năm 2023

Tác giả Đã kí Nguyễn Thị Minh Hương

Trang 4

BÀI TIỂU LUẬN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sựhướng dẫn khoa học của Gv Nguyễn Thị Diễm Hằng Các nội dung nghiêncứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hìnhthứ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ântí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 phần tài 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ũngnhư số 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 trongquá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày 22 tháng 12 năm 2023

Tác giả Đã kí Nguyễn Thị Minh Hương

Trang 5

CHƯƠNG 2: THỰC NGHIỆM

 Cung cấp mã nguồn Hình ảnh kết quả

Trang 6

1.1.2 Các thư viện Numpy, Sympy, Matplotlib,

1.1.3 Môi trường làm việc

1.2 Trình bày các bước thực hiện câu 1a, 1b,1c

1.2.1 Trình bày các bước thực hiện câu 1a

1.2.2 Trình bày các bước thực hiện câu 1b

1.2.3 Trình bày các bước thực hiện câu 1c

Trang 7

CHƯƠNG 1 DANH MỤC HÌNH VẼ

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

1.1 Giới thiệu

1.1.1 Hình 1 Hình ảnh minh họa Python

1.1.2 Hình 2 Thư viện Numpy

1.1.2 Hình 3 Thư viện SymPy

1.1.2 Hình 3 Thư viện Matplotlib

Trang 8

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT2.1 Giới thiệu

2.1.1 Giới thiệu ngôn ngữ Python

Hình 1 Hình ảnh minh họa Python

Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng oriented), và là một ngôn ngữ bậc cao (high-level) ngữ nghĩa động (dynamicsemantics) Python hỗ trợ các module và gói (packages), khuyến khích chương trìnhmodule hóa và tái sử dụng mã

(object- Lịch sử hình thành Python

Python là một ngôn ngữ lập trình do Guido van Rossum tạo ra và lần đầu ra mắt vàonăm 1991 Từ đó, Python đã trải qua nhiều phiên bản phát triển đáng kể Dưới đâylà một số phiên bản quan trọng của Python:

 Python 1.0: Phát hành vào năm 1994 với các tính năng như lambda, map, filter và reduce

 Python 2.0: Ra mắt vào ngày 16 tháng 10 năm 2000, với nhiều tính năng mớinhư hỗ trợ Unicode và xử lý danh sách nhanh hơn

 Python 3.0: Phát hành vào ngày 3 tháng 12 năm 2008, Python 3.0 mang lại nhiều cải tiến như in hàm và hỗ trợ tốt hơn cho việc xử lý chuỗi

Python đã trải qua nhiều phiên bản khác nhau và ngày càng được cải tiến và hoàn thiện hơn Điều này cho thấy sự phát triển liên tục và cam kết của cộng đồng lập trình đối với ngôn ngữ này

 Các đặc điểm của ngôn ngữ Python:

Trang 9

 Dễ dàng để sử dụng: Python là một ngôn ngữ bậc cao rất dễ dàng để sử

dụng với số lượng từ khóa ít hơn và cú pháp đơn giản, phần code của Python được định nghĩa rõ ràng và rành mạch, giúp người đọc dễ dàng hiểu

 Thư Viện Rộng Lớn: Python có một thư viện chuẩn khá rộng lớn và dễ

dàng tích hợp với UNIX, Windows và Macintosh

 Là ngôn ngữ thông dịch: Trình thông dịch thực thi code theo từng dòng (và

bạn không cần phải biên dịch ra file chạy), điều này giúp cho quá trình debugtrở nên dễ dàng hơn

 Là ngôn ngữ lập trình hướng đối tượng và hỗ trợ các phương thức lập

trình theo hàm và theo cấu trúc

 Hỗ Trợ Đa Dạng: Python hỗ trợ lập trình GUI, mã nguồn mở và có thể tích

hợp với các ngôn ngữ lập trình khác

Nhờ vậy mà Python đang dần trở thành xu hướng lập trình trên thế giới: Python khi sử dụng trên máy chủ có thể tạo ra các ứng dụng nền web (web

application). Python có thể chạy song song cùng các phần mềm khác để dễ phân luồng

công việc. Python có thể kết nối dễ dàng đến cơ sở dữ liệu, hay cả việc đọc và ghi file. Với Python, việc xử lý Big Data và các phép toán phức tạp trở nên dễ

dàng. Dễ dàng sử dụng Python để tạo ra các sản phẩm demo một cách nhanh

chóng

Như vậy, Python không chỉ có lịch sử phát triển đáng kể mà còn có những đặc điểmvà ứng dụng đa dạng, giúp nó trở thành một trong những ngôn ngữ lập trình phổbiến và mạnh mẽ nhất hiện nay

2.1.2 Các thư viện Numpy, Sympy, Matplotlib,…

Trang 10

a, Thư viện Numpy:

Hình 2 Hình ảnh minh họa thư viện NumPy

NumPy (Numeric Python): là một thư viện phổ biến và mạnh mẽ trong Python,

được sử dụng để tạo và quản lý mảng, thực hiện các phép toán logic và thực hiệncác phép toán số học tuyến tính NumPy hỗ trợ tích hợp với nhiều ngôn ngữ như Cvà C++

Các hàm quan trọng trong NumPy:

np.array(): Chuyển đổi một đối tượng thành mảng NumPy.np.zeros() và np.ones(): Tạo mảng chứa toàn số 0 hoặc 1.np.arange(): Tạo mảng theo dãy số

np.linspace(): Tạo mảng với số lượng phần tử cố định trong khoảng giữa hai giátrị

np.shape() và np.reshape(): Lấy hình dạng hoặc thay đổi hình dạng của mảng.np.sum(), np.mean(), np.min(), np.max(): Các hàm thống kê trên mảng

Ví dụ: Từ thư viện Numpy ta có thể tạo và sử dụng mảng NumPy cũng như một số

hàm thống kê cơ bản như sau:

import numpy as np # Tạo ma ng 1 chiề u

mang_1d = np array ([ 1 , , , , , , , , , 2 3 4 5 6 7 8 9 10 ]) # Tạo ma ng 2 chiề u

mang_2d = np array ([[ 4 , 5 , 6 ], [ , , 7 8 9 ]]) # Tính tổ ng, trung bình, tổ- i thiề u, tổ- i đa cu a ma ng

tong_mang_1d = np sum ( mang_1d )

trung_binh_mang_2d np mean ( mang_2d )

min_mang_1d = np min mang_1d ( )

max_mang_2d = np max mang_2d ( ) #In ra kề- t qua 

Trang 11

print ( "Giá trị nho  nhấ- t:" , min_mang_1d )

print ( "Giá trị lớn nhấ- t:" , max_mang_2d )

b, Thư viện Sympy:

Hình 3 Hình ảnh minh họa thư viện SymPy

SymPy là một thư viện Python dành cho toán học biểu tượng Nó nhằm mục đích

trở thành một hệ thống đại số máy tính (CAS) đầy đủ tính năng trong khi vẫn giữmã đơn giản nhất có thể để dễ hiểu và dễ mở rộng SymPy được viết hoàn toàn bằngPython

Một số hàm quan trọng trong SymPy và ví dụ

a, Hàm solve

Trong SymPy hàm solve được sử dụng để giải phương trình hoặc hệ phương trình

Ví dụ:

import sympy as sp #Tạo ra ký hiệu x

x = sp symbols ( 'x' ) #Giai phương trình x^2+4x+4

Trang 12

import sympy as sp # Tạo ra ký hiệu x

x = sp symbols ( 'x' ) # Xác định biề u thức

k_qua ( f 2

print ( k_qua )

Ngoài ra, còn rất nhiều hàm khác có trong thư viện SymPy để tạo các biến và hàm,

cũng như mở rộng và đơn giản hóa các câu lệnh toán học một cách tượng trưng và giải các phương trình, bất phương trình và thậm chí cả hệ phương trình / bất phươngtrình Vì thế, với khả năng mạnh mẽ và linh hoạt, SymPy là một công cụ hữu ích cho những người làm việc trong lĩnh vực toán học và khoa học máy tính sử dụng Python

c, Thư viện Matplotlib:

Hình 4.Hình ảnh minh họa thư viện Matplotlib

Trang 13

Matplolib là một thư viện phổ biến trong Python được sử dụng để hiển thị dữ liệu

dưới dạng biểu đồ hai chiều và ba chiều Thư viện này thường được sử dụng trong các ứng dụng khoa học và có khả năng hiển thị dữ liệu dưới nhiều dạng biểu đồ khác nhau

Các hàm quan trọng trong Matplotlib bao gồm:

1 plot(): Dùng để vẽ biểu đồ đường 2 scatter(): Dùng để vẽ biểu đồ phân tán 3 bar(): Dùng để vẽ biểu đồ cột 4 hist(): Dùng để vẽ biểu đồ histogram 5 xlabel() và ylabel(): Dùng để đặt nhãn cho trục x và trục y 6 title(): Dùng để đặt tiêu đề cho biểu đồ.

Ví dụ về cách sử dụng các hàm từ thư viện Matplotlib để vẽ biểu đồ

import matplotlib pyplot as plt

import numpy as np #Tạo một ma ng các giá trị từ 0 đề- n 10 với 100 điề m cách đề u nhau

x = np linspace ( 0 , 10 , 100 ) #Tính giá trị sin cu a mổO i phấ n tư trong ma ng x và lưu vào ma ng y

y np sin ( ) #Vẽ biề u đổ đường dựa trền dữ liệu x và y plt plot ( , y )

#Đặt tền cho trục x plt xlabel ( 'Trục x' ) #Đặt tền cho trục y plt ylabel ( 'Trục y' ) #Đặt tền biề u đổ plt title ( 'Biề u đổ hàm sin' ) #Hiề n thị biề u đổ đã vẽ plt show ()

Tóm lại, Matplotlib là một công cụ linh hoạt, dễ sử dụng để tạo và tùy chỉnh đồ thị

và biểu đồ, là lựa chọn hàng đầu trong cộng đồng Python cho công việc trực quan hóa dữ liệu

2.1.3 Môi trường làm việc

Môi trường làm việc trong Python rất đa dạng và linh hoạt Dưới đây là một số môi trường phổ biến:

PyCharm IDE:

 PyCharm là một môi trường phát triển tích hợp (IDE) phổ biến nhất cho Python

Trang 14

Python Virtual Environment:

 Python Virtual Environment (môi trường ảo Python) cho phép tạo ra các môitrường làm việc cô lập để quản lý các gói và framework cho các dự án Python khác nhau

Visual Studio Code:

 VS Code cung cấp nhiều tính năng hiệu quả như hỗ trợ biên tập, debug, tíchhợp Git, và tùy chỉnh cao

 Nó hỗ trợ nhiều ngôn ngữ lập trình và cung cấp các extension mạnh mẽ nhưHTML Snippets, CSS Peek, và Live Server cho phát triển web

2.2 Trình bày các bước thực hiện câu 1a, 1b, 1c

2.2.1 Trình bày các bước thực hiện câu 1a

Bước 1: Import thư viện

import sympy as sp

import matplotlib pyplot as plt

import numpy as np

import mathImport các thư viện cần thiết: ‘sympy’ để thực hiện các phép toán biểu diễn ký hiệuvà giải phương trình, ‘matplotlib’ dùng để vẽ đồ thị và ‘math’, ‘numpy’ để thựchiện các phép toán học

Bước 2: Gán giá trị cho biến A

Trang 15

Hàm np.linspace(-1500, 1500, 40) dùng để tạo một mảng các giá trị gồm 40 phầntử, bắt đầu từ -1500 và kết thúc tại 1500 Nhằm tạo ra một dãy giá trị để tính toán vàvẽ đồ thị của hàm số.

Bước 4: Định nghĩa 2 hàm f(x), g(x); tính toán giá trị y tương ứng

def ( ): x

\ \ return ** 2 - 2 A x - A** 2 def ( ): x

\ \ return - ** x 2 + 4 * * A x + A** 3

y1 ( ) x y2 ( ) x

 Dòng 1: plt.plot(x, y1, 'red', label='f(x)=x^2- 2Ax -A^2') dùng để vẽ đồ thị

f(x) bằng màu đỏ và hiển thị nhãn là f(x)=x^2- 2Ax -A^2

 Dòng 2: plt.plot(x, y2, 'blue', label='g(x)= -x^2 + 4Ax +A^3') dùng để vẽ đồ

thị g(x) bằng màu xanh và hiện thị nhãn là 'g(x)= -x^2 + 4Ax +A^3'

Bước 6: Tìm điểm giao của hai hàm

Trang 16

 Dòng 3: Hàm g_x được định nghĩa : = -x_m**2 + 4*A*x_m + A**3 cũng

chính là g(x)

 Dòng 4: sp.solve((g_x) - (f_x), x_m) dùng để giải phương trình (g_x) – (f_x)

chính là giải phương trình g_x=f_x là tìm hoành độ giao điểm để tìm ra đượcđiểm giao nhau của f(x) và g(x)

Bước 7: Vẽ các điểm giao nhau và in ra tọa độ của chúng

dem = 1

for root in x_roots : \ \ y_root ( root ) \ \ plt plot ( root , y_root , 'go' , label = 'Giao điề m' if dem == else '' )

\ \ print ( "1a Giao điề m { dem } : ( { float( root ) , { float( y_root ) )" ) \ \ dem += 1

 Đầu tiên, biến dem được sử dụng để đếm số lần lặp qua các điểm giao nhau.Mỗi lần lặp, chúng ta lấy một giá trị root từ danh sách x_roots, sau đó tínhgiá trị y tương ứng với điểm giao nhau bằng cách đưa giá trị root vào hàm sốf(x) ‘y_root = f(root)

 Sau khi tính được giá trị y, chúng ta sử dụng plt.plot để vẽ điểm giao nhautrên đồ thị Điểm này sẽ được đánh dấu bằng màu xanh lá cây ‘go’ Nếu đâylà lần lặp đầu tiên (với dem == 1), chúng ta sẽ thêm chú thích "Giao điểm"vào điểm đó Điều này giúp tránh chú thích nhiều lần khi có nhiều điểm giao Cuối cùng, chúng ta in ra tọa độ cụ thể của điểm giao nhau thứ 1 và thứ 2 :

print(f"1a Giao điểm {dem}: ({float(root)}, {float(y_root)})") Sử dụng float

để in ra số thực

 Biến dem được tăng lên sau mỗi lần lặp để đếm số lần lặp và quản lý chú

thích trên đồ thị

Bước 8: Thêm tiêu đề, nhãn trục, chú thích và lưới cho đồ thị

plt title ( 'Cấu 1a' ) plt xlabel ( "x" ) plt ylabel ( "y" ) plt legend () plt grid ( linestyle = ' ' ) plt show ()

 Dòng 1: Thêm tiêu đề cho đồ thị là ‘Câu 1a’  Dòng 2,3 : Đặt tên cho trục x là ‘x’, đặt tên cho trục y là ‘y’  Dòng 4: Dùng để thêm chú thích vào đồ thị

 Dòng 5: Dùng để vẽ lưới

Trang 17

 Dòng 6: Hiển thị đồ thị

2.2.2 Trình bày các bước thực hiện câu 1b

Bước 1: Khai báo biến x

x = sp symbols ( 'x' )Khai báo biến ký hiệu x bằng cách sử dụng sp.symbols('x')

Bước 2: Gán giá trị cho biến A

Hàm f(x) được định nghĩa: x**2 – 2*A*x – A**2

Bước 4: Viết phương trình tiếp tuyến

x_0 = 0

y_0 A** 2

f_dhb1 sp diff ( fx , x hsgoc f_dhb1 subs ( , x_0 )

ttuyen hsgoc ( - x x_0 ) + y_0

Vì phương trình tiếp tiếp có dạng y=y’(x0)(x-x0)+y0 nên Dòng 1, 2: Gán giá trị cho x0, y0 Với x0=0, y0=-A^2 Dòng 3: ‘f_dhb1 = sp.diff(fx, x)’ dùng để tính đạo hàm f’(x) Dòng 4: ‘hsgoc = f_dhb1.subs(x, x_0)’ dùng để tính giá trị của đạo hàm tại

điểm x_0 cũng chính là hệ số góc của tiếp tuyến (y’(x0))

 Dòng 5: ‘ttuyen = hsgoc * (x - x_0) + y_0’ chính là phương trình tiếp tuyếnvới dạng y=y’(x0)(x-x0)+y0

Bước 5: Tạo mảng giá trị x cho đồ thị

x_gtri np linspace ( 1500 , 1500 , 40 )Hàm np.linspace(-1500, 1500, 40) dùng để tạo một mảng các giá trị gồm 40 phầntử, bắt đầu từ -1500 và kết thúc tại 1500 Nhằm tạo ra một dãy giá trị để tính toán vàvẽ đồ thị của hàm số

Bước 6: Tính giá trị y tương ứng với mỗi giá trị x của f(x) và tiếp tuyến

Trang 18

ttuyen_gtri [ = ttuyen subs( x , val ) for val in x_gtri ]

Bước 7: Vẽ đồ thị của f(x) và tiếp tuyến

plt plot ( x_gtri , f_gtri , 'blue' , label = f(x)=x^2- 2Ax -A^2' ) plt plot ( x_gtri , ttuyen_gtri , 'orange' , label = 'Tiề- p tuyề- n T' ) plt plot ( x_0 , y_0 , 'go' ) \

 Dòng 1 plt.plot(x_gtri, f_gtri, 'blue', label='f(x)= x^2- 2Ax -A^2'): dùng đểvẽ đồ thị f(x) bằng màu xanh ‘blue’ và hiển thị nhãn là f(x)=x^2- 2Ax -A^2

 Dòng 2 plt.plot(x_gtri, ttuyen_gtri, 'orange', label='Tiếp tuyến T'): dùng đểvẽ tiếp tuyến T bằng màu cam ‘orange’và hiển thị nhãn là ‘Tiếp tuyến T’

 Dòng 3 plt.plot(x_0, y_0, 'go'): dùng để vẽ giao điểm của f(x) và tiếp tuyến

T Điểm này được đánh dấu bằng màu xanh lá cây ‘go’

Bước 8: Dịch chuyển đồ thị f(x) ban đầu xuống 4A^3 đơn vị

dich_chuyen = fx - 4 * A** 3

Đồ thị mới chính là lấy đồ thị f(x) ban đầu trừ cho 4A^3 : ‘fx - 4 * A**3’

Bước 9: Tính giá trị giá trị y cho hàm số đã dịch chuyển tại mỗi giá trị x trong

 Dòng 2: Vẽ đồ thị của hàm số đã dịch chuyển bằng cách sử dụng giá trị x, y

từ mảng x_gtriy_dich_chuyen Đồ thị hàm dịch chuyển này được vẽ màuđỏ ‘red’ và được chú thích là 'f(x) dịch chuyển'

Bước 10: Giải phương trình f(x) dịch chuyển −T=0

x_root sp solve ( dich_chuyen - ttuyen , x y_root [ ttuyen subs( , x root ) for root in x_root ]

 Dòng 1: x_root = sp.solve(dich_chuyen - ttuyen, x) sử dụng hàm

sp.solve để giải phương trình ‘dich_chuyen - ttuyen = 0’ chính là phương trình f(x) dịch chuyển −T=0 Nhằm tìm tọa độ x của các điểm giao nhau giữa f(x) dịch chuyển và đường tiếp tuyến T

Dòng 2: tính toán tọa độ y tương ứng của các điểm giao nhau bằng

cách thay thế từng tọa độ x (gốc) vào phương trình của đường tiếp tuyến

Ngày đăng: 26/09/2024, 16:16