العثور على تقاطعات المنحنى مع الصفر
في بايثون، قد يكون الحصول على قيم المحور y الدقيقة من قطعة أرض أمرًا صعبًا عندما لا تكون القيمة العدد الصحيح. تتناول هذه المقالة هذه المشكلة وتقدم حلاً يعتمد على الاستيفاء الخطي.بالنظر إلى صفيفين (vertical_data وgradient(temperature_data))، يتم إنشاء قطعة أرض باستخدام plt.plot. ومع ذلك، يعرض المخطط قيمة y قريبة من الصفر ولكنها ليست بالضبط.
الاستيفاء الخطي لتقدير الجذر
لتقدير الجذر الدقيق لمصفوفة numpy ، يمكن استخدام طريقة الاستيفاء الخطي البسيط. يوضح التعليمة البرمجية التالية كيفية العثور على القيم الصفرية لمنحنى عشوائي:import numpy as np
def find_roots(x, y):
s = np.abs(np.diff(np.sign(y))).astype(bool)
return x[:-1][s] np.diff(x)[s]/(np.abs(y[1:][s]/y[:-1][s]) 1)
x = .4 np.sort(np.random.rand(750))*3.5
y = (x-4)*np.cos(x*9.)*np.cos(x*6 0.05) 0.1
z = find_roots(x,y)
plt.plot(x,y)
plt.plot(z, np.zeros(len(z)), marker="o", ls="", ms=4)
يحدد هذا الكود جذور المنحنى ويرسمها على شكل دوائر عند قيمة y بالضبط وهي صفر.الاعتراضات غير الصفريةيمكن استخدام نفس الطريقة للعثور على تقاطع المنحنى مع أي y غير الصفر -القيمة (y0) عن طريق تعديل السطر الذي يجد الجذور:
z = find_roots(x,y-y0)z = find_roots(x,y-y0)
تقاطعان منحنيانيمكن أيضًا استخدام طريقة الاستيفاء الخطي لإيجاد التقاطع بين منحنيين. وبإيجاد جذور الفرق بين المنحنيين يمكننا تقدير نقطة تقاطعهما:
y2 = (x - 2) * np.cos(x * 8.) * np.cos( س * 5 0.03) 0.3 ض = find_roots(س،y2-y1) بلت.بلوت (س، ص1) plt.plot(x,y2, color="C2") plt.plot(z, np.interp(z, x, y1), علامة = "o"، ls = ""، ms = 4، color = "C1")تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3