الدرس 5 من 8
التفاضل: معدل التغير
لو غيرت حاجة شوية، النتيجة هتتغير قد إيه؟
المشتقة = عداد السرعة
عداد العربية مش بيقولك انت قطعت كام كيلو، بيقولك المسافة بتتغير بسرعة قد إيه دلوقتي حالاً. ده بالظبط معنى المشتقة (Derivative): معدل تغير حاجة بالنسبة لحاجة تانية، في لحظة معينة.
لو رسمت دالة كخط منحني، المشتقة عند أي نقطة هي ميل (slope) الخط عند النقطة دي: موجبة يعني الخط طالع، سالبة يعني نازل، وصفر يعني انت فوق قمة أو تحت قاع.
نحسبها بالكود من غير قوانين
الفكرة: زوّد x حتة صغيرة جداً، وشوف y اتغيرت قد إيه، واقسم.
f'(x) ≈ ( f(x + h) − f(x) ) / hh رقم صغير جداً زي 0.0001
def f(x): return x ** 2 def derivative(func, x, h=0.0001): return (func(x + h) - func(x)) / h for x in [-2, 0, 3]: print(f"slope at x={x}: {derivative(f, x):.2f}")
لاحظ: عند -2 الميل سالب (الخط نازل)، عند صفر الميل صفر (ده القاع)، وعند 3 موجب (طالع). ولو ركزت هتلاقي الميل دايماً 2x. دي القاعدة اللي درستها في المدرسة:
d/dx (xⁿ) = n · xⁿ⁻¹مشتقة x² هي 2x، ومشتقة x³ هي 3x²
💰 مثال: سعر المنتج والربحلو غليت السعر، الربح على القطعة بيزيد بس الزباين بتقل. المشتقة بتقولك: لو زودت السعر جنيه كمان، الربح هيزيد ولا يقل؟ ولما المشتقة تبقى صفر يبقى انت عند أحسن سعر.
def profit(price): customers = 1000 - 8 * price # higher price -> fewer customers return (price - 30) * customers # cost per item = 30 def slope(func, x, h=0.001): # central difference: more accurate return (func(x + h) - func(x - h)) / (2 * h) for p in [50, 77.5, 100]: print(f"price {p}: profit {profit(p):,.0f}, slope {slope(profit, p):+.1f}")
عند ٥٠ الميل موجب يعني «غلّي كمان هتكسب أكتر». عند ١٠٠ سالب يعني «انت غاليت زيادة». وعند ٧٧.٥ تقريباً صفر: ده أحسن سعر.
💡 مش هتحسب مشتقات بإيدكPyTorch بيحسب المشتقات أوتوماتيك بميزة اسمها autograd. المهم إنك تفهم المشتقة بتقولك إيه: الاتجاه اللي النتيجة بتزيد فيه، وبسرعة قد إيه.