Hướng dẫn lập trình ngôn ngữ python: Toán cao cấp

Hướng dẫn lập trình ngôn ngữ python

(Cho học phần Toán cao cấp)

Tài liệu ngắn này chúng tôi viết dựa theo một số tài liệu trên internet nhằm giúp các bạn sinh viên làm quen với việc sử dụng một ngôn ngữ lập trình để giải các bài toán của học phần Toán cao cấp.

MỤC LỤC

Chủ đề 0. Hello World

Chủ đề 1. Tính toán trên trường số thực

Chủ đề 2. Vectơ, ma trận và định thức

Chủ đề 3. Giải hệ phương trình tuyến tính

Chủ đề 4. Dạng toàn phương

Chủ đề 5. Vẽ đồ thị của hàm số

Chủ đề 6. Tìm giới hạn

Chủ đề 7. Tính đạo hàm

Chủ đề 8. Tìm giá trị lớn nhất – nhỏ nhất

Chủ đề 9. Tính tích phân hàm một biến

Chủ đề 10. Phương trình vi phân

Chủ đề 11. Phương trình sai phân

Phụ lục: Download, cài đặt và chạy “Hello World”

Tài liệu:

Lưu ý:

0. Các bạn SV làm Bài tập nhóm đặt câu hỏi ở phần comment

1. Các bạn SV gặp vấn đề thì chịu khó tìm câu trả lời ở phần comment. Tôi sẽ KHÔNG trả lời những câu hỏi mà đã trả lời trước ở phần comment.

2. Tôi không giải đáp hộ các bạn những lỗi kỹ thuật (những lỗi do bạn gõ lệnh sai). Tôi chỉ giải đáp những vấn đề mang tính nguyên lý. Nhóm làm không được thì không có điểm.

3. Để làm được, các bạn cần đọc kỹ + chạy thử các VD trong Tài liệu hướng dẫn, kiểm tra kỹ câu lệnh mình viết có đúng như hướng dẫn không.

4. Nếu gặp lỗi, xem kỹ xem có phải lỗi do TXĐ (hàm số không xác định). Nếu là lỗi do TXĐ thì chỉ cần copy câu lệnh + giải thích vì sao hàm số không xác định.

5. Khi các bạn đặt câu hỏi, phải copy đầy đủ các câu lệnh & thông báo lỗi thì tôi mới giải đáp được.

30 bình luận

  1. thầy ơi pt sai phân x(n+1) -(9^n)*x(n)=3^(n^2+2n) em viết là x[n] = math.pow(9,n-1)*x[n-1] + math.pow(3,(n-1)**2 + 2*(n-1)) thì hiện lỗi như sau:Traceback (most recent call last):
    File “D:/toancaocap/main.py”, line 8, in
    x[n] = math.pow(9,n-1)*x[n-1] + math.pow(3,(n-1)**2 + 2*(n-1))
    OverflowError: Python int too large to convert to C long

    Không biết em sai chỗ nào ạ? Em cảm ơn thầy

  2. Tôi đã chỉnh sửa lại tài liệu, bạn download lại và làm theo hướng dẫn mới nhé.

  3. Em thưa thầy, đạo hàm riêng cấp 1 x^(y^3) import sympy
    import numpy as np
    x, y = sympy.symbols(‘x y’,real=True)
    np.seterr(invalid=’ignore’)
    z = x**(y**3)
    z_x = sympy.diff(z, x)
    z_x = sympy.lambdify((x, y), z_x)
    print(z_x(7, 16))

    lỗi: Traceback (most recent call last):
    File “D:\toancaocap\main.py”, line 8, in
    print(z_x(7, 16))
    File “”, line 2, in _lambdifygenerated
    OverflowError: integer division result too large for a float

    Em tính mấy bài đạo hàm đều bị lỗi như này ạ, thầy xem giúp em với ạ

  4. thưa thầy, em tìm giới hạn của các hàm logarit dạng log(a+bx) bị lỗi ạ,
    thầy cho em xin cách khắc phục ạ,
    em cảm ơn!

  5. Thầy ơi cho con hỏi NV4 có bị nhầm bài tập không ạ?

  6. thầy ơi căn bậc ba thì lũy thừa thì âm numpy không hỗ trợ
    em thay y = x*((1 – 2*x)**(2/3) thành y = x*((1 – 2*x)**pow(2, 3)) có đúng không ạ
    import numpy as np
    from matplotlib import pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D

    x = np.arange(3, 13, 0.05)
    y = x*((1 – 2*x)**pow(2, 3))
    plt.plot(x,y)
    plt.xlabel(“Truc x”)
    plt.ylabel(“Truc y”)
    plt.title(‘Toan cao cap’)
    plt.show()

    • à em nhầm như kia là sai

    • thầy ơi căn bậc ba thì lũy thừa thì âm numpy không hỗ trợ

      import numpy as np
      from matplotlib import pyplot as plt
      from mpl_toolkits.mplot3d import Axes3D

      x =np.arange(3, 13, 0.05)
      y = x*((1-2*x)**(2/3))
      plt.plot(x,y)
      plt.xlabel(“Truc x”)
      plt.ylabel(“Truc y”)
      plt.title(‘Toan cao cap’)
      plt.show()

      lỗi RuntimeWarning: invalid value encountered in power ạ

  7. à em nhầm như kia là sai

  8. thưa thầy.nv1 bài 1.8 tính định thức và ma trận nghịch đảo

    import numpy as np
    _A = ([3,4,2],[6,8,4],[9,12,1])
    A = np.array(_A)
    print(np.linalg.inv(A))

    run được : Traceback (most recent call last):
    File “D:\toancaocap\venv\main.py”, line 28, in
    print(np.linalg.inv(A))
    File “”, line 5, in inv
    File “C:\Users\LAPTOP DELL\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\numpy\linalg\linalg.py”, line 545, in inv
    ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
    File “C:\Users\LAPTOP DELL\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\numpy\linalg\linalg.py”, line 88, in _raise_linalgerror_singular
    raise LinAlgError(“Singular matrix”)
    numpy.linalg.LinAlgError: Singular matrix

    Process finished with exit code 1.

    Vậy có nghĩa là đây là ma trận suy biến, không có nghịch đảo đúng không ạ? Em làm theo công thức thầy hướng dẫn rồi ạ

  9. thầy ơi cho em hỏi là căn bậc ba thì vị lỗi lũy thừa âm numpy không nhận thì phải làm sao ạ

    import numpy as np
    from matplotlib import pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D

    x =np.arange(3, 13, 0.05)
    y = x*((1-2*x)**(2/3))
    plt.plot(x,y)
    plt.xlabel(“Truc x”)
    plt.ylabel(“Truc y”)
    plt.title(‘Toan cao cap’)
    plt.show()
    lỗi RuntimeWarning: invalid value encountered in power ạ

  10. thầy ơi cho em hỏi là căn bậc ba thì vị lỗi lũy thừa âm numpy không nhận thì phải làm sao ạ

    import numpy as np
    from matplotlib import pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D

    x =np.arange(3, 13, 0.05)
    y = x*((1-2*x)**(2/3))
    plt.plot(x,y)
    plt.xlabel(“Truc x”)
    plt.ylabel(“Truc y”)
    plt.title(‘Toan cao cap’)
    plt.show()
    lỗi RuntimeWarning: invalid value encountered in power ạ

  11. thầy ơi, ở nhiệm vụ 4 thầy cho sai bài tập hay sao ý ạ (không phải bai 5.3 5.4 mà là 4.3 4.4 ạ)

  12. thầy ơi , nv3 là giai hẹ PTTT cu bài 3.4 3.6 3.9 mà 3 bài thầy cho m=k=numpy=10 rồi thì tìm gì nữa ạ ?

  13. Thầy ơi cho con hỏi là tính đạo hàm khác với hướng dẫn nhưng vẫn ra kết quả đúng như này có được không ạ
    import numpy as np
    from sympy import *
    x = Symbol(‘x’)
    y = x**(2/3) – 2/sqrt(x)
    y1 = y.diff(x)
    y1 = lambdify(x, y1)
    print(y1(11))
    ⇨ 0.32717299758274865

  14. em thưa thầy tính đạo hàm riêng cấp 1 của câu 1 bài 7.2 e có nhập như này
    x, y = sympy.symbols(‘x y’,real=True)
    z = Fraction(x**3 + y**3, x**2 + y**2)
    z_x = sympy.diff(z, x)
    z_x = sympy.lambdify( (x,y), z_x)
    print(z_x(6,14))
    và nó bảo lỗi ở dòng 1 ko xác định được sympy. Thầy xem giúp em với ạ. Em cảm ơn thầy ạ.

Bình luận về bài viết này