Mô tả mã nguồn câu 3:

Một phần của tài liệu TIỂU LUẬN trình bày tóm tắt vấn đề về chức năng của 3 thư viện trong python numpy, sympy, matplotlib sau đó in ra chú thích từng dòng (Trang 40 - 42)

CHƯƠNG 2– PHẦN MÔ TẢ MÃ NGUỒN

2.3 Mô tả mã nguồn câu 3:

import sympy as sp; import numpy as np; import matplotlib.pyplot as plt #Khai báo thư viện

A = 84 #A là một số nguyên đại diện cho 4 chữ số của MSSV (bỏ đi các chữ số 0 ở đầu)

B = A % 2 # B là số dư khi lấy A chia cho 2 print("A B la:",A,B) # In ra kết quả cùa A và B def f_x(a): # Gọi hàm f_x biến chèn a

return A * a*a - 2 * A * a + A # Trả về biểu thức global x # Gọi biến x toàn khu vực

x = sp.Symbol('x') # Gán biến x thành ký tự def ya_tagl(a): # Gọi hàm y_tagl biến chèn a

fx = A * x*x - 2 * A * x + A # Tạo ra biểu thức sau đó gán vào fx

de_f = sp.diff(fx, x) # Tính đạo hàm của fx theo x sau đó gán vào de_f

slp = de_f.subs(x, 2) # Thay giá trị x thành 2 trong hàm de_f rồi gán vào slp return slp * (a - 2) + f_x(2) # Công thức = f'(a)(x - a) + f(a) #

# Trả về 1 phương trình tiếp tuyến (2,A)

def yb_tagl_1(a): # Gọi hàm y_tagl biến chèn a

fx = A * x*x - 2 * A * x + A # Tạo ra phương trình f(x) sau đó gán vào fx

de_f = sp.diff(fx, x) # Tính đạo hàm của fx theo x sau đó gán vào de_f

y_tt = de_f * (x - 0) - A # Phương trình tiếp tuyến tại điểm (0;-A) gán vào y_tt

x_root = sp.solve(fx - y_tt) # Nghiệm của fx trừ cho y_tt rồi gán vào x_root

y_root1 = fx.subs(x, x_root[0]) # Gán giá trị của fx tại x_root[0] vào y_root1

slp_1 = de_f.subs(x,x_root[0]) # Gán giá trị của de_f tại x_root[0] vào slp_1 return slp_1 * ( a - x_root[0]) + y_root1 # Phương trình tiếp tuyến tại điểm (x_root[0],y_root1)

def yb_tagl_2(a): # Gọi hàm y_tag2 biến chèn a

fx = A * x*x - 2 * A * x + A # Tạo ra phương trình f(x) sau đó gán vào fx

de_f = sp.diff(fx, x) # Tính đạo hàm của fx theo x sau đó gán vào de_f

y_tt = de_f * (x - 0) - A # Phương trình tiếp tuyến tại điểm (0;-A) gán vào y_tt

x_root = sp.solve(fx - y_tt) # Nghiệm của fx trừ cho y_tt rồi gán vào x_root

y_root2 = fx.subs(x, x_root[1]) # Gán giá trị của fx tại x_root[1] vào y_root2

slp_2 = de_f.subs(x,x_root[1]) # Gán giá trị của de_f tại x_root[1] vào slp_2 return slp_2 * (a - x_root[1]) + y_root2 # Phương trình tiếp tuyến tại điểm (x_root[1],y_root2)

fxt = A * x*x - 2 * A * x + A # Tạo ra phương trình f(x) sau đó gán vào fxt

de_ft = sp.diff(fxt, x) # Tính đạo hàm của fxt theo x sau đó gán vào de_ft

y_ttt = de_ft * (x - 0) - A # Phương trình tiếp tuyến tại điểm (0;-A) gán vào y_ttt

x_roott = sp.solve(fxt - y_ttt) # Nghiệm của fxt trừ cho y_ttt rồi gán vào x_roott

x1 = np.arange(-10, 15) # Tạo trục hoành chạy từ -10 -> 15 với bước nhảy là 1 rồi gán vào x1

y = list(map(f_x, x1)) # Tạo trục tung với từng giá trị của x1 theo hàm số f_x(a)

ya_tangent = list(map(ya_tagl, x1)) # Tạo ra đường dốc tại tọa độ (2,A)

yb_tangent_1 = list(map(yb_tagl_1, x1)) # Tạo ra đường dốc khi đi qua điểm có tọa độ (0,-A)

yb_tangent_2 = list(map(yb_tagl_2, x1)) # Tạo ra đường dốc khi đi qua điểm có tọa độ (0,-A)

plt.plot(x1, y, label = 'F(x)') # Tạo ra đường f(x) và tạo nhãn

plt.plot(x1, ya_tangent,label = "y = f'(2)(x - 2) + A")

# Tạo ra đồ thị có đường tiếp tuyến tại tọa độ (2,A) và đặt tên nhãn

plt.title('Cau 3a') # In ra tựa đề cho đồ thị

plt.legend() # In ra nhăn

plt.grid() # In ra đường dạng lưới cho đồ thị

plt.show() # In ra đồ thị

plt.plot(x1, y, label = 'F(x)') # Tạo ra đường f(x) và tạo nhãn

plt.plot(x1, yb_tangent_1, 'r', label = "y = f'({0})(x {0}) - {1}".format(x_roott[0], x_roott[1]))

plt.plot(x1, yb_tangent_2, 'r')

# Tạo ra đồ thị có đường tiếp tuyến tại tọa độ (0,-A) và đặt tên nhãn

plt.title('Cau 3b') # In ra tựa đề cho đồ thị

plt.legend() # In ra nhăn

plt.grid() # In ra đường dạng lưới cho đồ thị

plt.show() # In ra đồ thị

Một phần của tài liệu TIỂU LUẬN trình bày tóm tắt vấn đề về chức năng của 3 thư viện trong python numpy, sympy, matplotlib sau đó in ra chú thích từng dòng (Trang 40 - 42)

Tải bản đầy đủ (DOCX)

(47 trang)
w