بالإضافة إلى تركيب متعدد الحدود، الذي يحتوي على وظيفة polyfit () في بايثون، توجد تقنيات لتركيب الأسي والمنحنيات اللوغاريتمية.
لتناسب المنحنى مع النموذج y = A B log x، يمكننا تحويل البيانات عن طريق أخذ اللوغاريتم من كلا الجانبين، مما يؤدي إلى log y = سجل A B سجل x. من خلال مطابقة log y مع log x باستخدام polyfit()، نحصل على المعاملات log A وB.
import numpy as np
x = np.array([1, 7, 20, 50, 79])
y = np.array([10, 19, 30, 35, 51])
coeffs = np.polyfit(np.log(x), y, 1)
print("Coefficients:", coeffs)
print("y ≈", coeffs[1], " ", coeffs[0], "log(x)")
لتناسب المنحنى مع النموذج y = Ae^(Bx)، يمكننا أخذ اللوغاريتم لكلا الجانبين، مما يؤدي إلى log y = log A B x. يمكن بعد ذلك تحديد المعلمات عن طريق ملاءمة السجل y مع x باستخدام polyfit().
x = np.array([10, 19, 30, 35, 51])
y = np.array([1, 7, 20, 50, 79])
coeffs = np.polyfit(x, np.log(y), 1)
print("Coefficients:", coeffs)
print("y ≈", np.exp(coeffs[1]), "*", "exp(", coeffs[0], "x)")
تجدر الإشارة إلى أن الملاءمة غير الموزونة (دون النظر في أوزان نقاط البيانات) يمكن أن تؤدي إلى الانحياز نحو القيم الصغيرة، خاصة في ملاءمة المنحنى الأسي. للتخفيف من ذلك، يمكن تضمين الأوزان في عملية الملاءمة، بما يتناسب مع قيم y.
يوفر Scipy وظيفة curve_fit () لإجراء ملاءمة المنحنى غير الخطية. وهذا يتيح لنا ملاءمة أي نموذج بشكل مباشر، دون الحاجة إلى تحويلات. # تركيب المنحنى اللوغاريتمي popt، pcov = curve_fit(lambda t, a, b: a b * np.log(t), x, y) طباعة ("المعاملات:"، بوبت) طباعة ("y ≈"، popt[1]، " "، popt[0]، "log(x)") # تركيب المنحنى الأسي popt, pcov = curve_fit(lambda t, a, b: a * np.exp(b * t), x, y, p0=(1, 0.1)) طباعة ("المعاملات:"، بوبت) طباعة ("y ≈"، popt[0]، "*"، "exp("، popt[1]، "x)")
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3