Hướng dẫn python double integral trapezoidal rule - quy tắc hình thang tích phân kép python

Tôi có hàm hai chiều $ f (x, y) = \ exp (y-x) $. Tôi muốn tính toán tích phân kép $ \ int_ {0}^{10} \ int_ {0}^{10} f (x, y) dx dy $ bằng cách sử dụng bẫy numpy. Sau khi đọc được, họ nói tôi chỉ nên lặp lại cái bẫy hai lần nhưng nó không hoạt động. Tôi đã thử những điều sau

import numpy as np

def distFunc(x,y):
    f = np.exp(-x+y)
    return f

# Values in x to evaluate the integral.
x = np.linspace(.1, 10, 100)
y = np.linspace(.1, 10, 100)

list1=distFunc(x,y)
int_exp2d = np.trapz(np.trapz(list1, y, axis=0), x, axis=0)

Mã luôn đưa ra lỗi

IndexError: list assignment index out of range

Tôi không biết làm thế nào để khắc phục điều này để mã có thể hoạt động. Tôi nghĩ rằng bẫy bên trong là để tích hợp dọc theo y trước tiên chúng tôi kết thúc bằng thứ hai dọc theo x. Cảm ơn bạn.

numpy.trapz (y, x = none, dx = 1.0, trục = -1) [nguồn]#trapz(y, x=None, dx=1.0, axis=- 1)[source]#

Tích hợp dọc theo trục đã cho bằng cách sử dụng quy tắc hình thang tổng hợp.

Nếu X được cung cấp, sự tích hợp xảy ra theo trình tự dọc theo các yếu tố của nó - chúng không được sắp xếp.

Tích hợp y (x) dọc theo mỗi lát 1D trên trục đã cho, tính toán \ (\ int y (x) dx \). Khi x được chỉ định, điều này tích hợp dọc theo đường cong tham số, tính toán \ (\ int_t y (t) dt = \ int_t y (t) \ left. )} dt \).\(\int y(x) dx\). When x is specified, this integrates along the parametric curve, computing \(\int_t y(t) dt = \int_t y(t) \left.\frac{dx}{dt}\right|_{x=x(t)} dt\).

Parametersyarray_likeyarray_like

Mảng đầu vào để tích hợp.

xarray_like, tùy chọnarray_like, optional

Các điểm mẫu tương ứng với các giá trị y. Nếu X không có, các điểm mẫu được giả định là cách nhau DX đều nhau. Mặc định là không có.

DXSCALAR, tùy chọnscalar, optional

Khoảng cách giữa các điểm mẫu khi x không có. Mặc định là 1.

Trục, tùy chọnint, optional

Trục dọc theo đó để tích hợp.

Trở lại hoặc ndarraytrapzfloat or ndarray

Tích hợp xác định của mảng y = n chiều xấp xỉ dọc theo một trục duy nhất theo quy tắc hình thang. Nếu y là một mảng 1 chiều, thì kết quả là một chiếc phao. Nếu N lớn hơn 1, thì kết quả là một mảng chiều N-1.

Ghi chú

Hình ảnh [2] minh họa quy tắc hình thang-Vị trí trục y của các điểm sẽ được lấy từ mảng Y, theo khoảng cách trục x giữa các điểm sẽ là 1.0, thay vào đó, chúng có thể được cung cấp với mảng X hoặc với vô hướng DX. Giá trị trả về sẽ bằng với diện tích kết hợp dưới các đường màu đỏ.

Người giới thiệu

1

Trang Wikipedia: https://en.wikipedia.org/wiki/trapezoidal_rule

2

Hình ảnh minh họa: https://en.wikipedia.org/wiki/file:composite_trapezoidal_rule_illustration.png

Ví dụ

>>> np.trapz([1,2,3])
4.0
>>> np.trapz([1,2,3], x=[4,6,8])
8.0
>>> np.trapz([1,2,3], dx=2)
8.0

Sử dụng X giảm tương ứng với việc tích hợp ngược lại:

>>> np.trapz([1,2,3], x=[8,6,4])
-8.0

Tổng quát hơn x được sử dụng để tích hợp dọc theo đường cong tham số. Điều này tìm thấy khu vực của một vòng tròn, lưu ý chúng tôi lặp lại mẫu đóng đường cong:

>>> theta = np.linspace(0, 2 * np.pi, num=1000, endpoint=True)
>>> np.trapz(np.cos(theta), x=np.sin(theta))
3.141571941375841

>>> a = np.arange(6).reshape(2, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.trapz(a, axis=0)
array([1.5, 2.5, 3.5])
>>> np.trapz(a, axis=1)
array([2.,  8.])

Làm thế nào để bạn mã hóa quy tắc hình thang trong Python?

Quy tắc hình thang được thực hiện trong một hàm Python riêng biệt lấy hàm toán học chung \ (f (x) \) làm đối số, cùng với dữ liệu đầu vào cho vấn đề: giới hạn tích hợp \ (a \) và \ (b \) vàtham số độ phân giải số \ (n \).

Làm thế nào để bạn nhân đôi một tích phân trong Python?

Phương thức DBLQUAD (), chúng ta có thể nhận được sự tích hợp kép của một hàm đã cho từ giới hạn A đến B bằng cách sử dụng phương thức scipy.integrate.dblquad ().Trả về: Trả về giá trị tích hợp kép của đa thức.scipy. integrate. dblquad() method. Return : Return the double integrated value of a polynomial.

Trapz hoạt động như thế nào trong Python?

Chức năng bẫy () tích hợp dọc theo trục đã cho bằng cách sử dụng quy tắc hình thang tổng hợp.Tham số: Y: [Array_like] Mảng đầu vào để tích hợp.X: [Array_like, Tùy chọn] Các điểm mẫu tương ứng với các giá trị y.integrate along the given axis using the composite trapezoidal rule. Parameters : y : [array_like] Input array to integrate. x : [array_like, optional] The sample points corresponding to the y values.

Trapz numpy là gì?

Numpy.Chức năng bẫy () trong numpy được sử dụng để thực hiện tích hợp dọc theo một trục đã cho bằng cách sử dụng quy tắc hình thang tổng hợp.used to perform integration along a given axis by using the composite trapezoidal rule.