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 הנותנת את ערך האינטגרל ואומדן שגיאה.