الجواب المختصر هو ذلك G
يتم الحفاظ عليه بواسطة المُحسّن كجزء من عملية التقليل ، بينما (D_neg, D, and C)
يتم تمرير الحجج في AS-IS من args
مترابطة بيانية.
بشكل افتراضي، scipy.optimize.minimize
يأخذ وظيفة fun(x)
هذا يقبل حجة واحدة x
(والتي قد تكون صفيفًا أو ما شابه ذلك) ويعيد عددًا كبيرًا. scipy.optimize.minimize
ثم يجد قيمة وسيطة xp
مثل ذلك fun(xp)
اقل من fun(x)
لقيم أخرى من x
. المحسن مسؤول عن إنشاء قيم x
ونقلهم إلى fun
للتقييم.
ولكن ماذا لو كان لديك وظيفة fun(x, y)
التي لديها بعض المعلمات الإضافية y
يجب تمرير ذلك بشكل منفصل (ولكن يعتبر ثابتًا لأغراض التحسين)؟ هذا ما args
Tuple هو ل. ال توثيق يحاول شرح كيفية استخدام args tuple ، ولكن قد يكون من الصعب تحليلها:
args: tuple ، اختياري
تم تمرير الحجج الإضافية إلى الوظيفة الموضوعية ومشتقاتها (يعقوب ، هيسيان).
على نحو فعال، scipy.optimize.minimize
سوف تمر كل ما هو في args
كباقي الحجج إلى fun
, ، باستخدام تدوين وسيطات النجمة: تسمى الوظيفة بعد ذلك باسم fun(x, *args)
أثناء التحسين. ال x
يتم تمرير الجزء من قبل المحسن ، و args
يتم إعطاء Tuple كحجال متبقية.
لذلك ، في الكود الخاص بك ، قيمة G
يتم الحفاظ على العنصر بواسطة المحسن أثناء تقييم القيم المحتملة لـ G
, ، و ال (D_neg, D, C)
يتم تمرير Tuple في كما هو.