File "D:\toandaicuong\main.py", line 4, in x = np.linalg.solvea,b File "", line 180, in solve File "D:\toandaicuong\venv\lib\site- packages\numpy\linalg\linalg.py", line 393, in solve
Trang 1TRƯỜ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 hiện : Nhóm 8
Trang 3[72]
[31]]
B Tính định thức, ma trận nghịch đảo của các ma trận bài 1.8 (với m= 8) :
Trang 4Kết quả: 3
Hạng của ma trận = 3
B Tìm hạng và xét tính độc lập tuyến tính, phụ thuộc tuyến tính của các hệ vectơ trong bài 2.4
và 2.5 với m = 8 2.4.
print(np.linalg.matrix_rank(C))
Kết quả: 4
Hạng ma trận = 4
Vì hạng ma trận = 4 = số véc tơ (4) => Hệ độc lập tuyến tính
2.5
X1 = X2 = X3 = X4 = (
Trang 5Nhậ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]])
Kết quả : [-0.70454545 0.17045455 7.17045455]
Hệ có nghiệm: [-0.70454545 0.17045455 7.17045455]
Kết quả : [ 0.46666667 -0.00833333 0.525 0.375
]
Trang 6 Hệ có nghiệm [ 0.46666667 -0.00833333 0.525 0.375 ]
b = np.array([0,0,0,0])
x = np.linalg.solve(a,b) print(x)
np.array([[2,-6,4,-6],[2,-1,1,1],[1,2,-1,4],[1,7,-b = np.array([-5,1,2,8])
x = np.linalg.solve(a,b) print(x)
Kết quả : Traceback (most recent call last):
Trang 7File "D:\toandaicuong\main.py", line 4, in <module>
x = np.linalg.solve(a,b) File "< array_function internals>", line 180, in solve File "D:\toandaicuong\venv\lib\site-
packages\numpy\linalg\linalg.py", line 393, in solve
r = gufunc(a, b, signature=signature, extobj=extobj) File "D:\toandaicuong\venv\lib\site-
packages\numpy\linalg\linalg.py", line 88, in _raise_linalgerror_singular
raise LinAlgError("Singular matrix") numpy.linalg.LinAlgError: Singular matrix
Hệ vô nghiệm hoặc vô số nghiệm
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 quả :
Trang 86.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 quả :
Trang 96.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 quả :
Trang 106.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 quả :
Trang 116.10.5
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 =(np.exp(x))/(x+1) plt.plot(x,y)
plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 126.10.6
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)*(((x**2)-1)**(1/3)) plt.plot(x,y)
plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 136.10.7
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*(((x**2)-1)**(1/8)) plt.plot(x,y)
plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 14x = np.arange(8,16,0.4)
y = np.arange(1,8,0.4)
X, Y = np.meshgrid(x, y)
z = (1/3)*(((X**2)+(Y**2))**(1/3)) fig = plt.figure()
ax = Axes3D(fig) ax.plot_surface(X, Y, z) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 157.3.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 = np.arange(1,8,0.4)
X, Y = np.meshgrid(x, y)
z = (X**2)*(np.log(X+Y)) fig = plt.figure()
ax = Axes3D(fig) ax.plot_surface(X, Y, z) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 167.3.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 = np.arange(1,8,0.4)
X, Y = np.meshgrid(x, y)
z = np.log((X*Y)+(((X**2)*(Y**2))**(1/3))) fig = plt.figure()
ax = Axes3D(fig) ax.plot_surface(X, Y, z) plt.xlabel("Truc x") plt.ylabel("Truc y") plt.title('Toan cao cap') plt.show()
Kết quả :
Trang 17NHIỆM VỤ 5:
A Tính đạo hàm các hàm số trong bài 6.1 tại x =
8 6.1.1
Nhập:
import sympy
x = sympy Symbol ('x')
y = x**2/3 - 2/(sympy.sqrt(x))
Trang 18y1 = y.diff(x) y1 = sympy.lambdify(x, y1) print (y1(8))
y1 = sympy.lambdify(x, y1) print (y1(8))
y1 = sympy.lambdify(x, y1) print (y1(8))
Trang 19y = sympy.log((x**2 -sympy.sin(x)),3) y1 = y.diff(x)
y1 = sympy.lambdify(x, y1) print (y1(8))
y1 = sympy.lambdify(x, y1) print (y1(8))
y1 = sympy.lambdify(x, y1) print (y1(8))
Kết quả:
1.016192175717281
6.1.7.
Trang 20y1 = sympy.lambdify(x, y1) print (y1(8))
Kết quả:
-0.27117052521989
B Tính các đạo hàm riêng cấp 1, 2 các hàm số trong bài 7.2 tại (8, 16)
z_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
Trang 21Nhậ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_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
print(z_y(8, 16))
Kết quả:
0.05590169943749474 0.034549150281252626
z_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
print(z_y(8, 16))
Trang 22Kết quả:
0.05590169943749474 0.034549150281252626
z_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
print(z_y(8, 16))
Kết quả:
-0.11180339887498948 0.05590169943749472
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
print(z_y(8, 16))
Kết quả:
OverflowError: integer division result too large for a float
Trang 23z_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
<lambdifygenerated-2>:2: RuntimeWarning: invalid value encountered in sqrt
return -y*arctan(sqrt(x**2 - y**2))/(x**2 + y**2)**(3/2)
- y/(sqrt(x**2 - y**2)*sqrt(x**2 + y**2)*(x**2 - y**2 + 1))
nan nan Giải thích : Lỗi do tập xác định vì => x>y mà x<y (8<16) => không thỏa mãn
Trang 24z_x = sympy.diff(z, x) z_x = sympy lambdify((x, y), z_x) z_y = sympy.diff(z, y)
z_y = sympy lambdify((x, y), z_y) print(z_x(8, 16))
print(z_y(8, 16))
Kết quả:
0.049043278413829036 -1.222631678483764
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 quả :
0.07199999999999998 -0.036000000000000004 0.017999999999999988
7.2.2 :
Trang 25Nhậ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 quả :
-0.001397542485937368 -0.0027950849718747367 -0.0007617794066409208
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)
Trang 26print(z_xx(8,16)) print(z_xy(8,16)) print(z_yy(8,16))
Kết quả :
0.015128594525018135 0.0018910743156272686 -0.005673222946881803
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 quả :
0.0027950849718747393 0.005590169943749476 -0.006288941186718158
7.2.5 :
Nhập :
Trang 27import 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) 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))
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))
Trang 28print(z_xy(8,16)) print(z_yy(8,16))
Kết quả :
(nan+7.040763791098415e-06j) (nan-1.408152758219683e-05j) (nan+2.816305516439366e-05j)
<lambdifygenerated-1>: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))
<lambdifygenerated-2>: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))
<lambdifygenerated-3>: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))
Trang 29z_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 quả :
0.3736782927273071 0.015783190515072154 4.0303693439438755
NHIỆM VỤ 6:
6.10
* Tìm MIN 6.10.1,
Nhập: import math
from scipy.optimize import fmin
Trang 30def f(x): return x* (1-2*x)**2/3 min_loc = fmin(f, 1.0)
print(min_loc) print(f(*min_loc))
Kết quả :
Optimization terminated successfully.
Current function value: 0.000000 Iterations: 15
Function evaluations: 30 [0.5]
1.3147681753683518e-31
Ghi chú Hàm số đạt min tại x = 0.5
Giá trị min: 1.3147681753683518e-31
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) print(f(*min_loc))
Trang 31Kết quả :
Optimization terminated successfully.
Current function value: -0.250000 Iterations: 18
Function evaluations: 36 [-0.5]
print(min_loc) print(f(*min_loc))
Kết quả :: OverflowError: math range error
Trang 32print(min_loc) print(f(*min_loc))
Kết quả :
Optimization terminated successfully.
Current function value: 0.000000 Iterations: 10
Function evaluations: 20 [1.]
Trang 33min_loc = fmin(f, 1.0) print(min_loc)
print(f(*min_loc))
Kết quả :
Optimization terminated successfully.
Current function value: 1.000000 Iterations: 17
Function evaluations: 34 [-8.8817842e-16]
print(min_loc) print(f(*min_loc))
Kết quả :
Optimization terminated successfully.
Current function value: -0.395062
Trang 34Iterations: 16 Function evaluations: 32 [0.33330078]
print(min_loc) print(f(*min_loc))
Kết quả :
Optimization terminated successfully.
Current function value: -0.128300 Iterations: 15
Function evaluations: 30 [0.57734375]
-0.12830005979537965
Ghi chú Hàm số đạt min tại x = 0.57734375
Giá trị min: -0.12830005979537965
Trang 35print(min_loc) print(-f(*min_loc))
Ghi chú Giá trị max vượt quá giá trị lớn nhất của
Python (hàm số tiến ra 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)
Trang 36Ghi chú Giá trị max vượt quá giá trị lớn nhất của
Python (hàm số tiến ra 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 quả :
Optimization terminated successfully.
Current function value: -0.367879 Iterations: 10
Function evaluations: 20 [1.]
0.36787944117144233
Trang 37print(min_loc) print(-f(*min_loc))
Ghi chú Giá trị max vượt quá giá trị lớn nhất của
Python (hàm số tiến ra 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)
Trang 38print(min_loc) print(-f(*min_loc))
print(min_loc) print(-f(*min_loc))
Ghi chú Giá trị max vượt quá giá trị lớn nhất của
Python (hàm số tiến ra vô cùng)
6.10.7,
Nhập: import math
Trang 39from 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))
Ghi chú Giá trị max vượt quá giá trị lớn nhất của
Python (hàm số tiến ra vô cùng)
vec[1]), [0.1, 0.1]) print(min_loc) print(f(*min_loc))
Trang 40Kết quả :
Optimization terminated successfully.
Current function value: 0.000000 Iterations: 39
Function evaluations: 76 [-1.00001244 1.00003511]
9.504592668463374e-10 Hàm số đạt min tại (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 quả :
Optimization terminated successfully.
Current function value: -1.125000 Iterations: 46
Function evaluations: 89
Trang 41import 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 quả :
0.07199999999999998 -0.036000000000000004 0.017999999999999988
7.2.2 :
24
Trang 42Nhậ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 quả :
-0.001397542485937368 -0.0027950849718747367 -0.0007617794066409208