fit تحفظ domain وwindow، وPolynomial تحوّل المجال إلى النافذة؛ polyval تقرأ المعاملات كقوى للمدخل الذي تمرره. [1][2][3]
المعامل مرتبط بإحداثي
fit تحفظ domain وwindow، وPolynomial تحوّل المجال إلى النافذة؛ polyval تقرأ المعاملات كقوى للمدخل الذي تمرره. [1][2][3]
لمعاملات الأساس غير المحوّل، تشير وثائق fit إلى convert().coef. [1]
في polyval، المعامل c[n] يخص درجة n. [2]
سنحافظ على ترتيب الثابت ثم معامل الدرجة الأولى في المثال كله. المشكلة ليست قلب القائمة، بل وضع المعاملين بجوار متغير غير الذي يخصهما. لذلك نسجل المجال والنافذة مع القائمة قبل استعمالها خارج الكائن.
نؤلف خطًا ونعرف قيمه مسبقًا؛ لا نبحث هنا عن علاقة مجهولة في قياسات. يجعل ذلك تغيير الإحداثي ظاهرًا دون أن نخلطه بضوضاء البيانات أو اختيار أفضل درجة للملاءمة.
خط واحد وقائمتان
نؤلف y=3x+5 عند x=[2,4,6]، فتكون y=[11,17,23]. أعادت fit.coef تقريبًا [17,6]، والمجال [2,6] والنافذة [-1,1].
نداء الكائن عند x أعاد تقريبًا [11,17,23]؛ polyval(x,p.coef) أعادت [29,41,53] تقريبًا. مع p.convert().coef عاد التقييم إلى القيم الصحيحة.
import numpy as np from numpy.polynomial import Polynomial as P from numpy.polynomial.polynomial import polyval x=np.array([2,4,6],dtype=np.float64) y=3*x+5 p=P.fit(x,y,1) q=p.convert() print(p.coef,q.coef) print(p(x),polyval(x,p.coef),polyval(x,q.coef))
على NumPy 2.3.5 و CPython 3.12.14، سجلنا p.coef=[17.000000000000004,5.999999999999998]، و q.coef=[5.000000000000007,2.999999999999999]. القائمتان بالشكل (2,) ومن float64؛ الأعداد الصحيحة في الشرح هي المرجع، لا ادعاء تطابق عشري حرفي.
نحسب تحويل المجال في مثالنا مباشرة: نريد إرسال 2 إلى -1، و6 إلى 1. فرق المخرجات 2 وفرق المدخلات 4، فيكون العامل 1/2 والإزاحة -2. إذن t=x/2-2، أو t=(x-4)/2؛ وعكسه x=2t+4.
نعوّض العكس في الخط المؤلف: 3(2t+4)+5=6t+17. لهذا يخص 17 الثابت و6 معامل t. أما 5 و3 فيخصان الثابت ومعامل x. لم يصبح ميل الخط الأصلي 6 حين ظهرت هذه القيمة في القائمة الأولى.
عند x=2 يكون t=-1، فيعطي 17+6t القيمة 11. وعند 4 يكون t=0، فيعطي 17، وعند 6 يكون t=1، فيعطي 23. لكن إدخال x نفسه في 17+6x يعطي 29 ثم 41 ثم 53؛ هذا تعبير آخر، رغم أن قائمة المعاملات بقيت ذات عنصرين.
استدعاء p(x) في التشغيل وافق المرجع ضمن التسامح، كما وافقه تقييم معاملات q عند x. أما تمرير معاملات p وحدها فقد فصلها عن تحويل الإحداثي الذي يفسرها. لم نغيّر بيانات البداية، ولم نُعِد الملاءمة لإنشاء q.
غيّر الإحداثي وافحص الخط
تغيير المجال إلى [0,8] أعطى تقريبًا [17,12]؛ وتغيير النافذة إلى [0,1] أعطى [11,12]. بقي الخط نفسه؛ في تحكم ثابت من الدرجة صفر لم يظهر اختلاف التقييم.
في التحكم الأول اخترنا domain=[0,8] مع النافذة [-1,1]. حساب الطرفين يعطي u=x/4-1، أي x=4u+4. بالتعويض يصبح الخط 3(4u+4)+5=12u+17. سجل التشغيل معاملات قريبة من [17,12]، مع بقاء التقييم عند 2 و4 و6 قريبًا من 11 و17 و23.
في التحكم الثاني أبقينا المجال [2,6] واخترنا window=[0,1]. صار v=(x-2)/4، وعكسه x=4v+2. إذن الخط نفسه يكتب 12v+11. سجلت القائمة تقريبًا [11,12]؛ عند v=0 ثم 1/2 ثم 1 نحصل على القيم الثلاث الأصلية.
تحويل الكائنين في التحكمين أعطى معاملات قريبة من [5,3] أيضًا. اختلاف القوائم قبل التحويل لا يعني اختلاف قيمة الدالة عند المدخل نفسه؛ مقارنة قائمة مجردة تحتاج معرفة الإحداثي الذي تعلق به كل عنصر.
لمنع تعميم خاطئ، أضفنا y=7 ودرجة صفر في الإعدادات الثلاثة. أعادت القوائم عنصرًا قريبًا من 7؛ نداء الكائن والتقييم بالمعاملات المجردة أعطيا القيمة نفسها ضمن التسامح. ثبات هذا المثال لا يجعل تمرير أي قائمة من fit إلى x الأصلي قاعدة صحيحة.

مرجع الفحص وحدوده
مرت 147 مقارنة على 21 ملاءمة float64، بمرجع Fraction مستقل وتسامح مطلق 1e-12. لا نستنتج منها جودة تنبؤ أو ضمان دقة لبيانات أخرى.
اخترنا ستة خطوط: الميل من 1 أو 3 أو 5، والثابت من -2 أو 5. لكل خط ثلاثة إعدادات للإحداثي كما سبق؛ هذه 18 ملاءمة. مع تحكم الثابت في الإعدادات الثلاثة يصبح العدد 21.
حفظ المرجع عامل التحويل وإزاحته ككسور دقيقة. إذا كان t=αx+β، نعوّض x=(t-β)/α في ax+b؛ يصبح الثابت b-aβ/α ومعامل t هو a/α. هذه عملية جبرية مستقلة، وليست قراءة معاملات من ملاءمة ثانية.
لكل ملاءمة سبع مقارنات: بيانات المجال والنافذة والشكل والنوع وثبات المدخل؛ المعاملات المحولة؛ نداء الكائن؛ معاملات convert؛ تقييم الكائن المحول ومعاملاته؛ التقييم المجرد واختلافه المناسب؛ والتحويل الخطي والتقييم عند الإحداثي المحول. الإجمالي 21×7=147.
نقاط الفحص هي [-1,0,2,4,6,8]. بعض هذه النقاط خارج مجال بيانات البداية؛ نعرف المرجع فيها لأننا ألّفنا خطًا دقيقًا. ليست نتيجة عن صلاحية الاستقراء خارج مجال بيانات حقيقية. استخدمنا جمع قوى بكسور صحيحة للمرجع، وتسامحًا مطلقًا 1e-12 مع rtol=0.
لم نفحص ضوضاء أو أوزانًا أو درجات أعلى أو تكييفًا أو rcond أو تشخيصات أو مدخلات مركبة أو أداءً. في مثالنا، أبقِ الكائن عند التقييم، أو استعمل المعاملات بعد التحويل الذي تحققنا منه؛ وسجّل المجال والنافذة إذا نقلت قائمة المعاملات وحدها.
| x الأصلي | التقييم الصحيح المقرب | بالمعاملات المجردة |
|---|---|---|
| 2 | 11 | 29 |
| 4 | 17 | 41 |
| 6 | 23 | 53 |
للتوسع: أنواع المصفوفات.
المراجع
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
