scipy.optimize --- إيجاد الجذور والتصغير

توفر الوحدة الفرعية scipy.optimize إجراءات بسيطة لإيجاد جذور وقيم دنيا لدوال قياسية يعرّفها المستخدم. ولأن كل تكرار يجب أن يستدعي الدالة البايثونية القابلة للاستدعاء التي يوفرها المستخدم، فإن المكسب في السرعة مقارنةً بتنفيذ بايثون خالص متواضع (نحو ضعفين عادةً).

الدوال

scipy.optimize.bisect(f: Callable[[float], float], a: float, b: float, *, xtol: float = xtolerance, maxiter: int = 100) float

إيجاد جذر لـ f ضمن المجال [a, b] باستخدام طريقة التنصيف. ويجب أن تغيّر f إشارتها على الفترة.

المعاملات:
  • f -- دالة قابلة للاستدعاء تأخذ قيمة float واحدة وتُعيد float.

  • a -- النقطة الطرفية اليسرى للمجال.

  • b -- النقطة الطرفية اليمنى للمجال.

  • xtol -- التفاوت المطلق لموقع الجذر (الافتراضي xtolerance).

  • maxiter -- العدد الأقصى لعمليات التنصيف (الافتراضي 100).

يُعيد:

موقع الجذر بوصفه float.

يرفع:

ValueError -- إذا كان f(a) * f(b) > 0.

scipy.optimize.curve_fit(f: Callable[..., float], xdata: ndarray | list | tuple, ydata: ndarray | list | tuple, p0: ndarray | list | tuple, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int | None = None) None

بَدْءة (stub) لملاءمة المنحنيات بالمربعات الصغرى غير الخطية (Levenberg-Marquardt). موجودة في جدول الوحدة لأغراض توافق الـ API لكنها حاليًا عنصر نائب: تقبل وسائطها وتتحقق منها لكنها تُعيد دائمًا None. ففضّل fmin() أو المكتبات الخارجية حتى يُنفَّذ هذا الإجراء.

المعاملات:
  • f -- نموذج قابل للاستدعاء f(x, *params) -> float.

  • xdata -- كائن شبيه بمصفوفة أحادي البُعد من القيم المستقلة.

  • ydata -- كائن شبيه بمصفوفة أحادي البُعد من القيم التابعة، بطول مساوٍ لطول xdata.

  • p0 -- كائن شبيه بمصفوفة أحادي البُعد من التقديرات الأولية للمعاملات.

scipy.optimize.fmin(f: Callable[[float], float], x0: float, *, xatol: float = xtolerance, fatol: float = xtolerance, maxiter: int = 200) float

إيجاد موضع قيمة دنيا محلية للدالة القياسية f باستخدام طريقة السمبلكس المنحدر (Nelder-Mead).

المعاملات:
  • f -- دالة قابلة للاستدعاء تأخذ قيمة float واحدة وتُعيد float.

  • x0 -- التخمين الأولي.

  • xatol -- التفاوت المطلق للموضع (الافتراضي xtolerance).

  • fatol -- التفاوت المطلق لقيمة الدالة (الافتراضي xtolerance).

  • maxiter -- العدد الأقصى للتكرارات (الافتراضي 200).

يُعيد:

موقع القيمة الدنيا بوصفه float.

scipy.optimize.newton(f: Callable[[float], float], x0: float, *, tol: float = xtolerance, rtol: float = rtolerance, maxiter: int = 50) float

إيجاد صفر للدالة القياسية ذات القيم الحقيقية f بطريقة Newton-Raphson (القاطع).

المعاملات:
  • f -- دالة قابلة للاستدعاء تأخذ قيمة float واحدة وتُعيد float.

  • x0 -- التخمين الأولي.

  • tol -- التفاوت المطلق للجذر (الافتراضي xtolerance).

  • rtol -- التفاوت النسبي للجذر (الافتراضي rtolerance).

  • maxiter -- العدد الأقصى للتكرارات (الافتراضي 50).

يُعيد:

موقع الجذر بوصفه float.