scipy.integrate --- การอินทิเกรตเชิงตัวเลข¶
โมดูลย่อย scipy.integrate จัดเตรียมรูทีนการอินทิเกรตเชิงตัวเลขสำหรับฟังก์ชันจริงตัวแปรเดียว อัลกอริทึมไม่ได้พอร์ตมาจาก scipy.integrate ของ CPython แต่มาจากการใช้งานอ้างอิงที่ https://www.genivia.com/qthsh.html
Numerical integration works best with float64 math enabled. With float32
math the routines still work, with reduced precision. The required error
tolerance can be specified via the eps keyword argument; the
default is the compile-time etolerance value (1e-14 for fp64,
1e-8 for fp32).
ฟังก์ชัน¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
อินทิเกรต f จาก a ถึง b โดยใช้ quadrature แบบ Adaptive Gauss-Kronrod (G10, K21) นี่คือตัวอินทิเกรตแบบทั่วไปที่แนะนำ
- พารามิเตอร์:
f -- callable ที่รับ
floatหนึ่งตัวและคืนfloata -- ขีดจำกัดล่างของการอินทิเกรต
b -- ขีดจำกัดบนของการอินทิเกรต
order -- ลำดับของการอินทิเกรต (ค่าเริ่มต้น
5)eps -- ค่าความคลาดเคลื่อน (ค่าเริ่มต้น
etolerance)
- ค่าที่คืน:
2-tuple
(result, error)ของค่า float ที่ให้ค่าของอินทิกรัลและค่าประมาณความผิดพลาด
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
อินทิเกรต f จาก a ถึง b โดยใช้วิธี Romberg ซึ่งเป็นสูตร Newton-Cotes ที่ประเมินค่า integrand ที่จุดที่เว้นระยะเท่ากัน เหมาะที่สุดสำหรับ integrand ที่มีอนุพันธ์ต่อเนื่อง โปรดทราบว่า
scipy.integrate.rombergถูก deprecated ใน CPython ตั้งแต่ SciPy 1.12.0 แนะนำให้ใช้quad()สำหรับโค้ดใหม่- พารามิเตอร์:
f -- callable ที่รับ
floatหนึ่งตัวและคืนfloata -- ขีดจำกัดล่างของการอินทิเกรต
b -- ขีดจำกัดบนของการอินทิเกรต
steps -- จำนวนขั้นตอน (ค่าเริ่มต้น
100)eps -- ค่าความคลาดเคลื่อน (ค่าเริ่มต้น
etolerance)
- ค่าที่คืน:
ค่าของอินทิกรัลเป็น
float
- scipy.integrate.simpson(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
อินทิเกรต f จาก a ถึง b โดยใช้กฎ Simpson แบบ adaptive ต่างจาก
scipy.integrate.simpsonของ CPython ฟังก์ชันนี้รับ callable และเลือกระยะห่างตัวอย่างภายในเอง แทนที่จะรับอาร์เรย์ของค่าฟังก์ชันที่คำนวณไว้ล่วงหน้า- พารามิเตอร์:
f -- callable ที่รับ
floatหนึ่งตัวและคืนfloata -- ขีดจำกัดล่างของการอินทิเกรต
b -- ขีดจำกัดบนของการอินทิเกรต
steps -- จำนวนขั้นตอน (ค่าเริ่มต้น
100)eps -- ค่าความคลาดเคลื่อน (ค่าเริ่มต้น
etolerance)
- ค่าที่คืน:
ค่าของอินทิกรัลเป็น
float
- scipy.integrate.tanhsinh(f: Callable[[float], float], a: float, b: float, *, levels: int = 6, eps: float = etolerance) tuple[float, float]¶
อินทิเกรต f จาก a ถึง b โดยใช้ตระกูล quadrature Tanh-Sinh, Sinh-Sinh และ Exp-Sinh (double-exponential) นี่คือรูทีนที่ใช้เมื่อ integrand มีจุดเอกฐานหรืออนุพันธ์อนันต์ที่ปลายสุด และเป็นรูทีนเดียวในโมดูลย่อยนี้ที่รับขีดจำกัดการอินทิเกรตอนันต์ (เช่น
-np.inf,np.inf)- พารามิเตอร์:
f -- callable ที่รับ
floatหนึ่งตัวและคืนfloata -- ขีดจำกัดล่างของการอินทิเกรต อาจเป็น
-np.infb -- ขีดจำกัดบนของการอินทิเกรต อาจเป็น
np.inflevels -- จำนวนระดับการปรับแต่ง (ค่าเริ่มต้น
6)eps -- ค่าความคลาดเคลื่อน (ค่าเริ่มต้น
etolerance)
- ค่าที่คืน:
2-tuple
(result, error)ของค่า float ที่ให้ค่าของอินทิกรัลและค่าประมาณความผิดพลาด