Độ dốc Nd Python

Thư viện numdifftools là một bộ công cụ được viết bằng _Python để giải các bài toán phân biệt số tự động trong một hoặc nhiều biến. Sự khác biệt hữu hạn được sử dụng theo cách thích ứng, kết hợp với phương pháp ngoại suy Richardson để cung cấp kết quả chính xác tối đa. Người dùng có thể cấu hình nhiều tùy chọn như;

Các phương pháp được cung cấp là

  • Phát sinh. Tính các đạo hàm của bậc 1 đến 10 trên bất kỳ hàm vô hướng nào
  • định hướng. Tính đạo hàm có hướng của hàm n biến
  • Dốc. Tính toán vectơ gradient của hàm vô hướng của một hoặc nhiều biến
  • Giacôbê. Tính toán ma trận Jacobian của hàm có giá trị vectơ của một hoặc nhiều biến
  • Hessian. Tính toán ma trận Hessian của tất cả các đạo hàm riêng cấp 2 của hàm vô hướng của một hoặc nhiều biến
  • Hessdiag. Chỉ tính các phần tử đường chéo của ma trận Hessian

Tất cả các phương pháp này cũng tạo ra ước tính lỗi trên kết quả

Numdifftools cũng cung cấp giao diện dễ sử dụng cho các công cụ phái sinh được tính toán bằng _AlgoPy. Algopy là viết tắt của Sự khác biệt thuật toán trong Python. Mục đích của AlgoPy là đánh giá các dẫn xuất bậc cao hơn ở chế độ tiến và lùi của Phân biệt thuật toán [AD] của các hàm được triển khai dưới dạng chương trình Python

Bắt đầu

Trực quan hóa các dẫn xuất bậc cao của hàm tanh

>>> import numpy as np
>>> import numdifftools as nd
>>> import matplotlib.pyplot as plt
>>> x = np.linspace[-2, 2, 100]
>>> for i in range[10]:
..    df = nd.Derivative[np.tanh, n=i]
..    y = df[x]
..    h = plt.plot[x, y/np.abs[y].max[]]

>>> plt.show[] # doctest: +SKIP

Tính đạo hàm bậc 1 và bậc 2 của exp[x], tại x == 1

>>> fd = nd.Derivative[np.exp]        # 1'st derivative
>>> fdd = nd.Derivative[np.exp, n=2]  # 2'nd derivative
>>> np.allclose[fd[1], 2.7182818284590424]
True
>>> np.allclose[fdd[1], 2.7182818284590424]
True

bình phương nhỏ nhất phi tuyến tính

>>> xdata = np.reshape[np.arange[0,1,0.1],[-1,1]]
>>> ydata = 1+2*np.exp[0.75*xdata]
>>> fun = lambda c: [c[0]+c[1]*np.exp[c[2]*xdata] - ydata]**2
>>> Jfun = nd.Jacobian[fun]
>>> np.allclose[np.abs[Jfun[[1,2,0.75]]], 0] # should be numerically zero
True

Tính độ dốc của tổng[x**2]

>>> fun = lambda x: np.sum[x**2]
>>> dfun = nd.Gradient[fun]
>>> np.allclose[dfun[[1,2,3]], [ 2.,  4.,  6.]]
True

Tính toán tương tự với giao diện dễ sử dụng của AlgoPy

>>> import numdifftools.nd_algopy as nda
>>> import numpy as np
>>> fd = nda.Derivative[np.exp]        # 1'st derivative
>>> fdd = nda.Derivative[np.exp, n=2]  # 2'nd derivative
>>> np.allclose[fd[1], 2.7182818284590424]
True
>>> np.allclose[fdd[1], 2.7182818284590424]
True

bình phương nhỏ nhất phi tuyến tính

>>> xdata = np.reshape[np.arange[0,1,0.1],[-1,1]]
>>> ydata = 1+2*np.exp[0.75*xdata]
>>> fun = lambda c: [c[0]+c[1]*np.exp[c[2]*xdata] - ydata]**2
>>> Jfun = nda.Jacobian[fun, method='reverse']
>>> np.allclose[np.abs[Jfun[[1,2,0.75]]], 0] # should be numerically zero
True

Tính độ dốc của tổng[x**2]

>>> fun = lambda x: np.sum[x**2]
>>> dfun = nda.Gradient[fun]
>>> np.allclose[dfun[[1,2,3]], [ 2.,  4.,  6.]]
True

Xem thêm

scipy. linh tinh. phát sinh

Tài liệu và mã

Numdifftools hoạt động trên Python 2. 7+ và Python3. 0+

Bản phát hành chính thức có sẵn tại. http. //pypi. con trăn. org/pypi/numdifftools

Tài liệu chính thức có sẵn tại. http. // numdifftools. đọcthedocs. io/vi/mới nhất/

Tối tân. https. //github. com/pbrod/numdifftools

Cài đặt

Nếu bạn đã cài đặt pip, thì chỉ cần gõ

$ pip cài đặt numdifftools

để có được phiên bản ổn định mới nhất. Sử dụng pip còn có ưu điểm là mọi yêu cầu đều được cài đặt tự động

bài kiểm tra đơn vị

Để kiểm tra xem hộp công cụ có hoạt động hay không, hãy dán phần sau vào phiên python tương tác

________số 8

Nhìn nhận

Gói numdifftools cho Python được viết bởi Per A. Brodtkorb dựa trên hộp công cụ phân biệt số thích ứng được viết bằng Matlab bởi John D'Errico

Sau đó, gói đã được mở rộng với một số chức năng được tìm thấy trong mô hình thống kê. công cụ. mô-đun numdiff được viết bởi Josef Perktold dựa trên. Việc triển khai các số phức hợp dựa trên việc triển khai matlab được mô tả trong báo cáo dự án dựa trên [GLD12]. Để hoàn thiện, phương pháp tính trọng số và điểm trong các công thức sai phân hữu hạn tổng quát cũng như phương pháp cộng các hệ số taylor của hàm giải tích phức sử dụng FFT, đã được bổ sung

Chủ Đề