Hướng dẫn gauss-legendre quadrature python - trăn vuông gauss-legendre
Tôi đang cố gắng giải quyết các tích phân kép thông qua phương thức số quadratre của Gauss, Legendre trong Python mà không sử dụng bất kỳ thư viện nào có các phương thức số. Nhưng tôi không thể làm cho thuật toán hoạt động khi tôi có chức năng là giới hạn của tích hợp. Đây là những gì tôi đã thử: Show
trong đó hàm 2 trả về các trọng số và nút.[Edit] Tôi quản lý để làm điều đó. Nó chỉ cần một vài điều chỉnh. Dưới đây là 8 kho lưu trữ công cộng phù hợp với chủ đề này ...
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Đền Gauss-Legendre
Cập nhật ngày 3 tháng 12 năm 2018FORTRANgauss-legendre topic page so that developers can more easily learn about it. Thư viện toán học thu thập các thuật toán quadratre phổ biến được triển khai trong MATLAB để xấp xỉ nhanh và chính xác của các tích phân xác định. Cập nhật ngày 30 tháng 7 năm 2021Matlabgauss-legendre topic, visit your repo's landing page and select "manage topics." Đây là những dự án tôi đã thực hiện cho một khóa học phân tích số với bạn bè của tôi. Đền Gauss-Legendre. Tính toán các điểm và trọng số mẫu cho Quad Gauss-Legendre [GL]. Các điểm mẫu là gốc của đa thức Legendre Legendre \ (P_N (x) \). Các điểm và trọng số mẫu này tích hợp chính xác các đa thức của mức độ \ (2n - 1 \) hoặc ít hơn trong khoảng \ ([ - 1, 1] \) với hàm trọng lượng \ (w (x) = 1 \). Xem 2.2.10 trong [AS] để biết thêm chi tiết.\(P_n(x)\). These sample points and weights correctly integrate polynomials of degree \(2n - 1\) or less over the interval \([-1, 1]\) with weight function \(w(x) = 1\). See 2.2.10 in [AS] for more details. Tham sốnintthứ tự bậc hai Mubool, tùy chọnbool, optionalNếu đúng, hãy trả lại tổng của các trọng số, tùy chọn. ReturnsxndarrayxndarrayĐiểm lấy mẫu wndarrayndarrayTrọng lượng MufloatfloatTổng trọng lượng Người giới thiệu BẰNGMilton Abramowitz và Irene A. Stegun, biên tập. Cẩm nang về các chức năng toán học với các công thức, đồ thị và bảng toán học. New York: Dover, 1972. GL(1,2)(1,2)Gauss-Legendre Quadrature, Wikipedia, https://en.wikipedia.org/wiki/gauss%E2%80%93legendre_quadrature Ví dụ >>> from scipy.special import roots_legendre, eval_legendre >>> roots, weights = roots_legendre(9) 3 giữ rễ và 4 giữ các trọng số cho phương trình Gauss-Legendre.>>> roots array([-0.96816024, -0.83603111, -0.61337143, -0.32425342, 0. , 0.32425342, 0.61337143, 0.83603111, 0.96816024]) >>> weights array([0.08127439, 0.18064816, 0.2606107 , 0.31234708, 0.33023936, 0.31234708, 0.2606107 , 0.18064816, 0.08127439]) Xác minh rằng chúng tôi có gốc bằng cách đánh giá đa thức về Legendre Legendre ở mức độ 9 tại 3. Tất cả các giá trị xấp xỉ bằng 0:>>> eval_legendre(9, roots) array([-8.88178420e-16, -2.22044605e-16, 1.11022302e-16, 1.11022302e-16, 0.00000000e+00, -5.55111512e-17, -1.94289029e-16, 1.38777878e-16, -8.32667268e-17]) Ở đây, chúng tôi sẽ chỉ ra làm thế nào các giá trị trên có thể được sử dụng để ước tính tích phân từ 1 đến 2 của F (t) = t + 1/t với cầu phương Gauss-Legendre [GL]. Đầu tiên xác định chức năng và giới hạn tích hợp. >>> def f(t): ... return t + 1/t ... >>> a = 1 >>> b = 2 Chúng tôi sẽ sử dụng 6 để biểu thị tích phân xác định của f từ t = a đến t = b. Các điểm mẫu trong 3 là từ khoảng [-1, 1], vì vậy chúng tôi sẽ viết lại tích phân với sự thay đổi đơn giản của biến:x = 2/(b - a) * t - (a + b)/(b - a) với nghịch đảo: t = (b - a)/2 * x + (a + 2)/2 Then: integral(f(t), a, b) = (b - a)/2 * integral(f((b-a)/2*x + (a+b)/2), x=-1, x=1) Chúng ta có thể xấp xỉ tích phân sau với các giá trị được trả về bởi 8.Ánh xạ các gốc được tính toán ở trên từ [-1, 1] đến [a, b]. >>> t = (b - a)/2 * roots + (a + b)/2 Xấp xỉ tích phân là tổng trọng số của các giá trị hàm. 0So sánh với kết quả chính xác, đó là 3/2 + log (2): 1 |