TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HTTTKT & TMĐT BÀI THẢO LUẬN HỌC PHẦN: TOÁN CAO CẤP NHIỆM VỤ: SỬ DỤNG PYTHON GIẢI CÁC BÀI TOÁN Lớp học phần 2213AMTA1011 : Giảng viên : Lê Văn Tuấn Nhóm thực : Nhóm 0 TIEU LUAN MOI download : skknchat123@gmail.com NHIỆM VỤ 1: A Thực phép tính 1.1 a), c), d) 1.1 a) Nhập: import numpy as np A = np.array([[2, 4],[-4, 7],[0, 1]]) B = np.array([[-2, 1, -6, -1],[5, 4, 7, 10]]) print(np.dot(A,B)) Kết : [[16 18 16 38] [43 24 73 74] [ 710]] 1.1 c) Nhập: import numpy as np A = np.array([[1,1,1,1],[1,1,-1,-1],[1,-1,1,-1],[1,-1,-1,1]]) print(np.linalg.matrix_power(A,2)) Kết quả: [[4000] [0400] [0040] [0004]] 1.1 d) Nhập: import numpy as np A = np.array([[4, 7, 4],[8, 2, 5],[9, -3, 1]]) B = np.array([[5], [6], [4]]) print(np.dot(A,B)) Kết quả: [[78] 0 TIEU LUAN MOI download : skknchat123@gmail.com [72] [31]] B Tính định thức, ma trận nghịch đảo ma trận 1.8 (với m= 8) : 1.8.1 Nhập: import numpy as np A = np.array([[3, 4, 2],[6, 8, 4],[9, 12, 8]]) print(np.linalg.det (A)) Kết quả: Định thức = + Vì định thức = => khơng có ma trận nghịch đảo 1.8.2 Nhập: import numpy as np B = np.array([[1, 2, 1, 1],[2, 3, 2, 6],[-63, -1, 0, 11],[1, 1, 1, 5]]) print(np.linalg.det (B)) Kết quả: -1.1191048088221598e-13 => Định thức = -1.1191048088221598e-13 Vì định thức => khơng có ma trận nghịch đảo NHIỆM VỤ : A Tìm hạng ma trận 1.7 với = 1.7.1 Nhập: import numpy as np A = np.array([[5, -4, 3, 1],[9, 8, 6, 3],[4, 1, 3, 2]]) print(np.linalg.matrix_rank(A)) 0 TIEU LUAN MOI download : skknchat123@gmail.com Kết quả: Hạng ma trận = 1.7.2 Nhập: import numpy as np B = np.array([[1, 8, -1, 2],[2, -1, 8, 5],[1, 10, -6, 1]]) print(np.linalg.matrix_rank(B)) Kết quả: Hạng ma trận = B Tìm hạng xét tính độc lập tuyến tính, phụ thuộc tuyến tính hệ vectơ 2.4 2.5 với m = 2.4 = (1, -1, 2, 0, 3); = (2, -3, 5, 1, -4); = (4, -5, 9, 1, 8); = (2, -2, 4, 9, 6) Nhập: import numpy as np C = np.array([[1, -1, 2, 0, 3],[2, -3, 5, 1, -4],[4, -5, 9, 1, 8],[2, -2, 4, 9, 6]]) print(np.linalg.matrix_rank(C)) Kết quả: Hạng ma trận = Vì hạng ma trận = = số véc tơ (4) => Hệ độc lập tuyến tính 2.5 X1 = X2 = X3 = X4 =( 0 TIEU LUAN MOI download : skknchat123@gmail.com Nhập: import numpy as np D = np.array([[1, 0, -1, 2, -2],[2, 1, 0, 3, -5],[5, 2, -1, 8, 8-64],[-3,-1,1,-5,8+3]]) print(np.linalg.matrix_rank(D)) Kết quả: Hạng ma trận = < số véc tơ (4) Hệ phụ thuộc tuyến tính NHIỆM VỤ : Giải hệ PTTT 3.4, 3.6, 3.9 với m = k=8 3.4.1 Nhập: import numpy as np a = np.array([[9, 1, 1],[1, 9, 1],[1, 1, 9]]) b = np.array([1,8,64]) x = np.linalg.solve(a, b) print(x) Kết : [-0.70454545 0.17045455 7.17045455] Hệ có nghiệm: [-0.70454545 0.17045455 7.17045455] 3.4.2 Nhập: import numpy as np a = np.array([[2, 1, 3, 4],[0, 3, 1, 4],[-4, -2, 4, -6],[2, 4, 9, -7]]) b = np.array([4, 2, -2, 3]) x = np.linalg.solve(a, b) print(x) Kết : [ 0.46666667 -0.00833333 0.525 ] TIEU LUAN MOI download : skknchat123@gmail.com Hệ có nghiệm [ 0.46666667 -0.00833333 0.525 0.375 ] 3.6.1 Nhập: import numpy as np a = np.array([[1,1,1],[1,-2,-2],[1,4,16]]) b = np.array([0,0,0]) x = np.linalg.solve(a,b) print(x) Kết : [ -0 0.] Hệ có nghiệm [ -0 0.] 3.6.2 Nhập: import numpy as np a = np.array([[2, 3, 1, 2],[4, 5, 3, 4],[6, 7, 5, 7], [8,9,9,8]]) b = np.array([0,0,0,0]) x = np.linalg.solve(a,b) print(x) Kết : [ 0 -0 -0.] Hệ có nghiệm [ 0 -0 -0.] 3.9 Nhập: import numpy as np a = np.array([[2,-6,4,-6],[2,-1,1,1],[1,2,-1,4],[1,7,-4,11]]) b = np.array([-5,1,2,8]) x = np.linalg.solve(a,b) print(x) Kết : Traceback (most recent call last): 00 TIEU LUAN MOI download : skknchat123@gmail.com File "D:\toandaicuong\main.py", line 4, in x = np.linalg.solve(a,b) File "< array_function internals>", line 180, in solve File "D:\toandaicuong\venv\lib\sitepackages\numpy\linalg\linalg.py", line 393, in solve r = gufunc(a, b, signature=signature, extobj=extobj) File "D:\toandaicuong\venv\lib\sitepackages\numpy\linalg\linalg.py", line 88, in _raise_linalgerror_singular raise LinAlgError("Singular matrix") numpy.linalg.LinAlgError: Singular matrix Hệ vô nghiệm vô số nghiệm NHIỆM VỤ 4: A Vẽ đồ thị hàm số 6.10 đoạn [8,16] 6.10.1 : Nhập: import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.arange(8,16,0.4) y = x*(((1-2*x)**2)**(1/3)) plt.plot(x,y) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show() Kết : 00 TIEU LUAN MOI download : skknchat123@gmail.com 6.10.2 Nhập: import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.arange(8,16,0.4) y =x+3*((x**2)**1/3) plt.plot(x,y) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show() Kết : 0 TIEU LUAN MOI download : skknchat123@gmail.com 6.10.3 Nhập: import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.arange(8,16,0.4) y =x/(np.exp(x)) plt.plot(x,y) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show() Kết : 0 TIEU LUAN MOI download : skknchat123@gmail.com 6.10.4 Nhập: import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D x = np.arange(8,16,0.4) y =x*((np.log(x))**2) plt.plot(x,y) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show() Kết : 10 0 TIEU LUAN MOI download : skknchat123@gmail.com * Tìm MAX 6.10.1, Nhập: import math from scipy.optimize import fmin def f(x): return -(x* (1-2*x)**2/3) min_loc = fmin(f, 1.0) print(min_loc) print(-f(*min_loc)) Kết : Warning: Maximum number of function evaluations has been exceeded [6.338253e+28] 3.3950599605575043e+86 Ghi Giá trị max vượt giá trị lớn Python (hàm số tiến vô cùng) 6.10.2, Nhập: import math from scipy.optimize import fmin def f(x): return -(x+ 3* x**2/3) min_loc = fmin(f, 1.0) print(min_loc) 35 00 TIEU LUAN MOI download : skknchat123@gmail.com print(-f(*min_loc)) Kết : Warning: Maximum number of function evaluations has been exceeded [6.338253e+28] 4.0173451106474974e+57 Ghi Giá trị max vượt giá trị lớn Python (hàm số tiến vô cùng) 6.10.3, Nhập: import math from scipy.optimize import fmin def f(x): return -(x/math.e**x) min_loc = fmin(f, 1.0) print(min_loc) print(-f(*min_loc)) Kết : Optimization terminated successfully Current function value: -0.367879 Iterations: 10 Function evaluations: 20 [1.] 0.36787944117144233 36 00 TIEU LUAN MOI download : skknchat123@gmail.com Ghi Hàm số đạt max x = Giá trị max : 0.36787944117144233 6.10.4, Nhập: import math from scipy.optimize import fmin def f(x): return -(x*math.log(x)**2) min_loc = fmin(f, 1.0) print(min_loc) print(-f(*min_loc)) Kết : Warning: Maximum number of function evaluations has been exceeded [6.338253e+28] 2.787695426470232e+32 Ghi Giá trị max vượt giá trị lớn Python (hàm số tiến vô cùng) 6.10.5, Nhập: import math from scipy.optimize import fmin def f(x): return -(math.exp(x)/(x+1)) min_loc = fmin(f, 1.0) 37 00 TIEU LUAN MOI download : skknchat123@gmail.com print(min_loc) print(-f(*min_loc)) Kết : OverflowError: math range error 6.10.6, Nhập: import math from scipy.optimize import fmin def f(x): return -((x+1)*((math.pow(x,2)-1)**1/3)) min_loc = fmin(f, 1.0) print(min_loc) print(-f(*min_loc)) Kết : Warning: Maximum number of function evaluations has been exceeded [6.338253e+28] 8.487649901393761e+85 Ghi Giá trị max vượt giá trị lớn Python (hàm số tiến vô cùng) 6.10.7, Nhập: import math 38 00 TIEU LUAN MOI download : skknchat123@gmail.com from scipy.optimize import fmin def f(x): return -(x*((x**2-1)**1/3)) min_loc = fmin(f, 1.0) print(min_loc) print(-f(*min_loc)) Kết : Warning: Maximum number of function evaluations has been exceeded [6.338253e+28] 8.487649901393761e+85 Ghi Giá trị max vượt giá trị lớn Python (hàm số tiến vô cùng) 7.9 * Tìm MIN 7.9.1, Nhập: import math from scipy.optimize import fmin def f(x,y): return x**2 + x*y +y**2 +x-y+1 min_loc = fmin(lambda vec: f(vec[0], vec[1]), [0.1, 0.1]) print(min_loc) print(f(*min_loc)) 39 0 TIEU LUAN MOI download : skknchat123@gmail.com Kết : Optimization terminated successfully Current function value: 0.000000 Iterations: 39 Function evaluations: 76 [-1.00001244 1.00003511] 9.504592668463374e-10 Hàm số đạt (x, y) = (-1.00001244 , 1.00003511) (0, 1) Giá trị min: 9.504592668463374e-10 7.9.2, Nhập: import math from scipy.optimize import fmin def f(x,y): return 2*x**4+y**4-x**2-2*y**2 min_loc = fmin(lambda vec: f(vec[0], vec[1]), [0.1, 0.1]) print(min_loc) print(f(*min_loc)) Kết : Optimization terminated successfully Current function value: -1.125000 Iterations: 46 Function evaluations: 89 40 0 TIEU LUAN MOI download : skknchat123@gmail.com import sympy x, y = sympy.symbols ('x y', real = True) z = (x**3 + y**3)/(x**2 + y**2) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) z_x = sympy.diff(z, x) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16)) Kết : 0.07199999999999998 -0.036000000000000004 0.017999999999999988 7.2.2 : 24 TIEU LUAN MOI download : skknchat123@gmail.com Nhập : import sympy x, y = sympy.symbols ('x y', real = True) z = sympy.log(x + sympy.sqrt(x**2 + y**2)) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) z_x = sympy.diff(z, x) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16)) Kết : -0.001397542485937368 -0.0027950849718747367 -0.0007617794066409208 7.2.3 : Nhập : TIEU LUAN MOI download : skknchat123@gmail.com import sympy import sympy x, y = sympy.symbols ('x y', real = True) z = sympy exp(sympy.atan(y/x)) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) z_x = sympy.diff(z, x) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) 25 TIEU LUAN MOI download : skknchat123@gmail.com print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16)) Kết : 0.015128594525018135 0.0018910743156272686 -0.005673222946881803 7.2.4 : Nhập : import sympy x, y = sympy.symbols ('x y', real = True) z = sympy.log((sympy.sqrt(x**2 + y**2)-x)/ (sympy.sqrt(x**2 + y**2)+x)) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) z_x = sympy.diff(z, x) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16)) Kết : 0.0027950849718747393 0.005590169943749476 -0.006288941186718158 7.2.5 : TIEUNhậpLUAN: MOI download : skknchat123@gmail.com 26 import sympy x, y = sympy.symbols ('x y', real = True) z = x**(y**3) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) TIEUz _LUANx=sympyMOI.diff(z,downloadx) : skknchat123@gmail.com z xy sympy diff(z x y) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16)) Kết : OverflowError: integer division result too large for a float 7.2.6 : Nhập : import sympy x, y = sympy.symbols ('x y', real = True) z = sympy.atan((sympy.sqrt(x**2 - y**2)))/ ((sympy.sqrt(x**2 + y**2))) z_x = sympy.diff(z, x) z_xx = sympy.diff(z_x,x) z_xx = sympy.lambdify((x,y), z_xx) z_x = sympy.diff(z, x) z_xy = sympy.diff(z_x,y) z_xy = sympy.lambdify((x, y), z_xy) z_y = sympy.diff(z, y) z_yy = sympy.diff(z_y,y) z_yy = sympy.lambdify((x, y), z_yy) print(z_xx(8,16)) 27 TIEU LUAN MOI download : skknchat123@gmail.com print(z_xy(8,16)) print(z_yy(8,16)) Kết : (nan+7.040763791098415e-06j) (nan-1.408152758219683e-05j) (nan+2.816305516439366e-05j) :2: RuntimeWarning: invalid value encountered in sqrt return 3*x**2*arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(5/2) 2*x**2/(sqrt(x**2 - y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)**2) - 2*x**2/(sqrt(x**2 - y**2)*(x**2 + y**2)**(3/2)*(x**2 y**2 + 1)) - x**2/ ((x**2 - y**2)**(3/2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)) arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(3/2) + 1/ (sqrt(x**2 y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)) TIEU LUAN MOI download : skknchat123@gmail.com :2: RuntimeWarning: invalid :2: RuntimeWarning: invalid value encountered in sqrt return 3*x*y*arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(5/2) + 2*x*y/(sqrt(x**2 - y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)**2) + x*y/((x**2 - y**2)**(3/2)*sqrt(x**2 + y**2)*(x**2 y**2 + 1)) :2: RuntimeWarning: invalid value encountered in sqrt return 3*y**2*arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(5/2) 2*y**2/(sqrt(x**2 - y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)**2) + 2*y**2/(sqrt(x**2 - y**2)*(x**2 + y**2)**(3/2)*(x**2 - y**2 + 1)) - y**2/ ((x**2 - y**2)**(3/2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)) - arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(3/2) - 1/ (sqrt(x**2 - y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1)) 28 TIEU LUAN MOI download : skknchat123@gmail.com ... print(np.linalg.matrix_rank(D)) Kết quả: Hạng ma trận = < số véc tơ (4) Hệ phụ thuộc tuyến tính NHIỆM VỤ : Giải hệ PTTT 3.4, 3.6, 3.9 với m = k=8 3.4.1 Nhập: import numpy as np a = np.array([[9, 1,... plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show() Kết : 16 0 TIEU LUAN MOI download : skknchat123@gmail.com NHIỆM VỤ 5: A Tính đạo hàm hàm số 6.1 x = 6.1.1 Nhập: import...NHIỆM VỤ 1: A Thực phép tính 1.1 a), c), d) 1.1 a) Nhập: import numpy as np A = np.array([[2, 4],[-4,