الدرس 5 من 8

التفاضل: معدل التغير

لو غيرت حاجة شوية، النتيجة هتتغير قد إيه؟

المشتقة = عداد السرعة

عداد العربية مش بيقولك انت قطعت كام كيلو، بيقولك المسافة بتتغير بسرعة قد إيه دلوقتي حالاً. ده بالظبط معنى المشتقة (Derivative): معدل تغير حاجة بالنسبة لحاجة تانية، في لحظة معينة.

لو رسمت دالة كخط منحني، المشتقة عند أي نقطة هي ميل (slope) الخط عند النقطة دي: موجبة يعني الخط طالع، سالبة يعني نازل، وصفر يعني انت فوق قمة أو تحت قاع.

نحسبها بالكود من غير قوانين

الفكرة: زوّد x حتة صغيرة جداً، وشوف y اتغيرت قد إيه، واقسم.

f'(x) ≈ ( f(x + h) − f(x) ) / hh رقم صغير جداً زي 0.0001
derivative.py
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²
💰 مثال: سعر المنتج والربحلو غليت السعر، الربح على القطعة بيزيد بس الزباين بتقل. المشتقة بتقولك: لو زودت السعر جنيه كمان، الربح هيزيد ولا يقل؟ ولما المشتقة تبقى صفر يبقى انت عند أحسن سعر.
best_price.py
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. المهم إنك تفهم المشتقة بتقولك إيه: الاتجاه اللي النتيجة بتزيد فيه، وبسرعة قد إيه.
الدرس اللي فات