scipy.integrate — אינטגרציה נומרית¶
תת-המודול scipy.integrate מספק שגרות אינטגרציה נומרית לפונקציות ממשיות של משתנה יחיד. האלגוריתמים אינם מועברים מ-scipy.integrate של CPython אלא נגזרים מהמימוש הייחוסי שב-https://www.genivia.com/qthsh.html.
אינטגרציה נומרית עובדת בצורה הטובה ביותר כאשר מתמטיקת float64 מאופשרת. עם מתמטיקת float32 השגרות עדיין עובדות, אך בדיוק מופחת. ניתן לציין את סבילות השגיאה הנדרשת באמצעות ארגומנט מילת המפתח eps; ברירת המחדל היא ערך ה-etolerance של זמן הקומפילציה (1e-14 עבור fp64, 1e-8 עבור fp32). מספרים מרוכבים אינם נתמכים.
פונקציות¶
- scipy.integrate.quad(f: Callable[[float], float], a: float, b: float, *, order: int = 5, eps: float = etolerance) tuple[float, float]¶
אינטגרציה של f מ-a עד b באמצעות ריבוע Gauss-Kronrod אדפטיבי (G10, K21). זהו האינטגרטור המומלץ לשימוש כללי.
- פרמטרים:
f – אובייקט קריא (callable) המקבל
floatיחיד ומחזירfloat.a – גבול האינטגרציה התחתון.
b – גבול האינטגרציה העליון.
order – סדר האינטגרציה (ברירת מחדל
5).eps – סבילות השגיאה (ברירת מחדל
etolerance).
- מחזיר:
רשומה בת שני רכיבים
(result, error)של floats הנותנת את ערך האינטגרל ואומדן שגיאה.
- scipy.integrate.romberg(f: Callable[[float], float], a: float, b: float, *, steps: int = 100, eps: float = etolerance) float¶
אינטגרציה של f מ-a עד b באמצעות שיטת Romberg, נוסחת Newton-Cotes המעריכה את האינטגרנד בנקודות במרווחים שווים. מתאים ביותר לאינטגרנדים בעלי נגזרות רציפות. שימו לב ש-
scipy.integrate.rombergהוצא משימוש ב-CPython החל מ-SciPy 1.12.0; העדיפו אתquad()עבור קוד חדש.- פרמטרים:
f – אובייקט קריא (callable) המקבל
floatיחיד ומחזירfloat.a – גבול האינטגרציה התחתון.
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 אדפטיבי. בניגוד ל-
scipy.integrate.simpsonשל CPython, פונקציה זו מקבלת אובייקט קריא (callable) ובוחרת את מרווח הדגימה באופן פנימי במקום לקבל מערך של ערכי פונקציה מחושבים מראש.- פרמטרים:
f – אובייקט קריא (callable) המקבל
floatיחיד ומחזירfloat.a – גבול האינטגרציה התחתון.
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 באמצעות משפחת הריבוע Tanh-Sinh, Sinh-Sinh ו-Exp-Sinh (דו-מעריכי). זוהי השגרה לשימוש כאשר לאינטגרנד יש סינגולריות או נגזרות אינסופיות בקצוות, והיא השגרה היחידה בתת-מודול זה המקבלת גבולות אינטגרציה אינסופיים (למשל
-np.inf,np.inf).- פרמטרים:
f – אובייקט קריא (callable) המקבל
floatיחיד ומחזירfloat.a – גבול האינטגרציה התחתון; עשוי להיות
-np.inf.b – גבול האינטגרציה העליון; עשוי להיות
np.inf.levels – מספר רמות העידון (ברירת מחדל
6).eps – סבילות השגיאה (ברירת מחדל
etolerance).
- מחזיר:
רשומה בת שני רכיבים
(result, error)של floats הנותנת את ערך האינטגרל ואומדן שגיאה.