Hướng dẫn how to do double integration in python - cách thực hiện tích hợp kép trong python

scipy.integrate.dblquad [func, a, b, gfun, hfun, args = [], epsabs = 1.49e-08, epsrel = 1.49E-08] [Nguồn]#dblquad[func, a, b, gfun, hfun, args=[], epsabs=1.49e-08, epsrel=1.49e-08][source]#

Tính toán tích phân kép.

Trả về tích phân đôi [xác định] của func[y, x] từ x = a..by = gfun[x]..hfun[x].

Tham sốfunccallablefunccallable

Hàm Python hoặc phương pháp của ít nhất hai biến: y phải là đối số đầu tiên và x đối số thứ hai.

a, bfloatfloat

Giới hạn tích hợp trong x: a > f = lambda y, x: 1 >>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos] [0.41421356237309503, 1.1083280054755938e-14] 0 đến

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
1 và
>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
2 là xấp xỉ bằng số. Xem EPSREL bên dưới.

epsrelfloat, tùy chọnfloat, optional

Dung sai tương đối của các tích phân 1-D bên trong. Mặc định là 1.49e-8. Nếu

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
3, EPSREL phải lớn hơn cả 5E-29 và
>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
4. Xem epsab ở trên.

ReturnSyFloatyfloat

Các tích phân kết quả.

abserrfloatfloat

Một ước tính của lỗi.

Ghi chú

Chi tiết về các thói quen cấp quadpack

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
5 gọi các thói quen từ thư viện Fortran QuadPack. Phần này cung cấp chi tiết về các điều kiện cho mỗi thói quen được gọi và một mô tả ngắn về từng thói quen. Đối với mỗi cấp độ tích hợp,
>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
6 được sử dụng cho các giới hạn hữu hạn hoặc
>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
7 được sử dụng nếu giới hạn [hoặc cả hai!] Là vô hạn. Sau đây cung cấp một mô tả ngắn từ [1] cho mỗi thói quen.

Qagse

là một nhà tích hợp dựa trên phân khu khoảng thời gian thích ứng toàn cầu liên quan đến phép ngoại suy, sẽ loại bỏ các tác động của các điểm kỳ tích của một số loại.

qagie

Xử lý tích hợp trong các khoảng thời gian vô hạn. Phạm vi vô hạn được ánh xạ vào một khoảng thời gian hữu hạn và sau đó chiến lược tương tự như trong

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
8 được áp dụng.

Người giới thiệu

1

Piessens, Robert; De Doncker-Kapenga, Elise; Überhuber, Christoph W .; Kahaner, David [1983]. QuadPack: Gói chương trình con để tích hợp tự động. Springer-Verlag. ISBN 980-3-540-12553-2.

Ví dụ

Tính toán tích phân kép của

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]
9 trên hộp
>>> f = lambda y, x, a: a*x*y
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[1,]]
    [0.33333333333333337, 5.551115123125783e-15]
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[3,]]
    [0.9999999999999999, 1.6653345369377348e-14]
0 từ 0 đến 2 và
>>> f = lambda y, x, a: a*x*y
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[1,]]
    [0.33333333333333337, 5.551115123125783e-15]
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[3,]]
    [0.9999999999999999, 1.6653345369377348e-14]
1 từ 0 đến 1. nghĩa là, \ [\ int^{x = 2} _ {x = 0} \ int^{y = 1} _ {y = 0} x y^2 \, dy \, dx \].\[\int^{x=2}_{x=0} \int^{y=1}_{y=0} x y^2 \,dy \,dx\].

>>> from scipy import integrate
>>> f = lambda y, x: x*y**2
>>> integrate.dblquad[f, 0, 2, 0, 1]
    [0.6666666666666667, 7.401486830834377e-15]

Tính toán \ [\ int^{x = \ pi/4} _ {x = 0} \ int^{y = \ cos [x]} _ {y = \ sin [x]} 1 ​​\, dy \, dx \ ].\[\int^{x=\pi/4}_{x=0} \int^{y=\cos[x]}_{y=\sin[x]} 1 \,dy \,dx\].

>>> f = lambda y, x: 1
>>> integrate.dblquad[f, 0, np.pi/4, np.sin, np.cos]
    [0.41421356237309503, 1.1083280054755938e-14]

Tính toán \ [\ int^{x = 1} _ {x = 0} \ int^{y = x} _ {y = 2-x} a x y \, dy \, dx \] cho \ [a = 1, 3 \].\[\int^{x=1}_{x=0} \int^{y=x}_{y=2-x} a x y \,dy \,dx\] for \[a=1, 3\].

>>> f = lambda y, x, a: a*x*y
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[1,]]
    [0.33333333333333337, 5.551115123125783e-15]
>>> integrate.dblquad[f, 0, 1, lambda x: x, lambda x: 2-x, args=[3,]]
    [0.9999999999999999, 1.6653345369377348e-14]

Làm thế nào để bạn thực hiện tích hợp kép?

Tích hợp kép là một tích phân của hàm hai biến f [x, y] trên vùng R. nếu r = [a, b] × [c, d], thì tích phân kép có thể được thực hiện bằng cách tích hợp lặp [tích hợpĐầu tiên đối với y, và sau đó tích hợp liên quan đến x].Các ký hiệu cho tích phân kép được hiển thị lại bên dưới.iterated integration [integrate first with respect to y, and then integrate with respect to x]. The notations for double integrals are shown again below.

Bài Viết Liên Quan

Chủ Đề