SciPy - Integrasikan

Ketika suatu fungsi tidak dapat diintegrasikan secara analitis, atau sangat sulit untuk diintegrasikan secara analitis, orang biasanya beralih ke metode integrasi numerik. SciPy memiliki sejumlah rutinitas untuk melakukan integrasi numerik. Kebanyakan dari mereka ditemukan di tempat yang samascipy.integratePerpustakaan. Tabel berikut mencantumkan beberapa fungsi yang umum digunakan.

No Sr Deskripsi fungsi
1

quad

Integrasi tunggal

2

dblquad

Integrasi ganda

3

tplquad

Integrasi rangkap tiga

4

nquad

integrasi ganda n -fold

5

fixed_quad

Kuadratur Gaussian, urutan n

6

quadrature

Kuadrat Gaussian terhadap toleransi

7

romberg

Integrasi Romberg

8

trapz

Aturan trapesium

9

cumtrapz

Aturan trapesium untuk menghitung integral secara kumulatif

10

simps

Aturan Simpson

11

romb

Integrasi Romberg

12

polyint

Integrasi polinomial analitik (NumPy)

13

poly1d

Fungsi pembantu untuk polyint (NumPy)

Integral Tunggal

Fungsi Quad adalah pekerja keras dari fungsi integrasi SciPy. Integrasi numerik terkadang disebutquadrature, maka nama. Biasanya merupakan pilihan default untuk melakukan integral tunggal dari suatu fungsi f (x) selama rentang tetap tertentu dari a hingga b.

$$\int_{a}^{b} f(x)dx$$

Bentuk umum dari quad adalah scipy.integrate.quad(f, a, b), Dimana 'f' adalah nama fungsi yang akan diintegrasikan. Sedangkan 'a' dan 'b' masing-masing adalah batas bawah dan atas. Mari kita lihat contoh fungsi Gaussian, yang terintegrasi pada rentang 0 dan 1.

Pertama-tama kita perlu mendefinisikan fungsi → $f(x) = e^{-x^2}$ , ini bisa dilakukan dengan menggunakan ekspresi lambda dan kemudian memanggil metode quad pada fungsi itu.

import scipy.integrate
from numpy import exp
f= lambda x:exp(-x**2)
i = scipy.integrate.quad(f, 0, 1)
print i

Program di atas akan menghasilkan keluaran sebagai berikut.

(0.7468241328124271, 8.291413475940725e-15)

Fungsi kuad mengembalikan dua nilai, di mana angka pertama adalah nilai integral dan nilai kedua adalah perkiraan kesalahan absolut dalam nilai integral.

Note- Karena quad membutuhkan fungsi sebagai argumen pertama, kita tidak bisa langsung mengirimkan exp sebagai argumen. Fungsi Quad menerima ketidakterbatasan positif dan negatif sebagai batas. Fungsi Quad dapat mengintegrasikan fungsi NumPy standar yang telah ditentukan sebelumnya dari variabel tunggal, seperti exp, sin dan cos.

Beberapa Integral

Mekanika untuk integrasi ganda dan rangkap tiga telah dibungkus ke dalam fungsi dblquad, tplquad dan nquad. Fungsi ini mengintegrasikan empat atau enam argumen, masing-masing. Batas semua integral dalam perlu didefinisikan sebagai fungsi.

Integral Ganda

Bentuk umum dblquadadalah scipy.integrate.dblquad (func, a, b, gfun, hfun). Di mana, func adalah nama fungsi yang akan diintegrasikan, 'a' dan 'b' masing-masing adalah batas bawah dan atas dari variabel x, sedangkan gfun dan hfun adalah nama dari fungsi yang menentukan batas bawah dan atas dari variabel y.

Sebagai contoh, mari kita lakukan metode integral ganda.

$$\int_{0}^{1/2} dy \int_{0}^{\sqrt{1-4y^2}} 16xy \:dx$$

Kami mendefinisikan fungsi f, g, dan h, menggunakan ekspresi lambda. Perhatikan bahwa bahkan jika g dan h adalah konstanta, seperti dalam banyak kasus, keduanya harus didefinisikan sebagai fungsi, seperti yang telah kita lakukan di sini untuk batas bawah.

import scipy.integrate
from numpy import exp
from math import sqrt
f = lambda x, y : 16*x*y
g = lambda x : 0
h = lambda y : sqrt(1-4*y**2)
i = scipy.integrate.dblquad(f, 0, 0.5, g, h)
print i

Program di atas akan menghasilkan keluaran sebagai berikut.

(0.5, 1.7092350012594845e-14)

Selain rutinitas yang dijelaskan di atas, scipy.integrate memiliki sejumlah rutinitas integrasi lainnya, termasuk nquad, yang melakukan integrasi ganda n-fold, serta rutinitas lain yang menerapkan berbagai algoritme integrasi. Namun, quad dan dblquad akan memenuhi sebagian besar kebutuhan kita akan integrasi numerik.