وحدة 2 / 11

الحساب والأساليب العددية مع بايثون

المكاسب:

  • القدرة على الاعتماد على المخرجات الحتمية، وليس التخمين اللفظي، من خلال جعل الذكاء الاصطناعي يترجم عملية حسابية فعلية إلى كود NumPy/SciPy وتشغيل الكود نفسه
  • إمكانية التحقق من ثبات الرمز الرقمي من خلال اختباره بموقف بسيط معروف إجابته والتحقق من تقاربه.
  • القدرة على توفير الوحدة ومستوى النتيجة فعليًا من خلال عكس الوحدات المتغيرة في الكود

لا يمكن حل العديد من المشكلات في الفيزياء يدويًا: فالتكامل ليس له حل تحليلي، ولا يمكن العثور على جذر نظام المعادلات في شكل مغلق، أو يجب تكرار الحساب آلاف المرات. وهنا يأتي دور الأساليب الرقمية: فبدلاً من الصيغة الدقيقة، يقوم الكمبيوتر بالحساب خطوة بخطوة بدقة تقريبية ولكن يمكن التحكم فيها. في هذه الوحدة، ستتعلم كيفية استخدام الذكاء الاصطناعي (AI) كشريك برمجي لحسابات الفيزياء الحاسوبية، وكيفية التحقق من الكود الذي ينتجه، وما هي الفخاخ التي يجب عليك تجنب الوقوع فيها. ستكون الأدوات القياسية للفيزيائي هنا هي لغة بايثون وNumPy (مكتبة للمصفوفات العددية والرياضيات السريعة) بالإضافة إلى SciPy (مكتبة للحوسبة العلمية؛ تتضمن التكامل والاكتشاف الجذري والتحسين).

لماذا AI + Python، لماذا ليس باليد؟

يعد إجراء الحسابات الرقمية يدويًا بطيئًا وعرضة للخطأ. يستطيع الذكاء الاصطناعي ترجمة البنية المادية الخاصة بك إلى كود Python قيد التشغيل في بضع ثوانٍ. لكن القاعدة الذهبية هنا هي: الذكاء الاصطناعي يكتب الكود، وأنت تقوم بتشغيل الكود وتتحقق من النتيجة باستخدام الفيزياء. عبارة الذكاء الاصطناعي التي تقول "هذا الرمز يعطي ذلك" هي عبارة عن تنبؤ؛ في الواقع، يعد تشغيل الكود ورؤية المخرجات حقيقة حتمية. قد "يحسب" طالب ماجستير القانون مخرجات الكود الذي كتبه في رأسه ويقول رقمًا خاطئًا؛ بينما عند تشغيل نفس الكود فإنه يعطي النتيجة الصحيحة. لذلك لا تثق أبدًا في النتيجة العددية التي يقدمها الذكاء الاصطناعي شفهيًا، قم بتشغيل الكود.

المهام الحسابية الأساسية ودور الذكاء الاصطناعي

كويست

الطريقة/الأداة

التحقق المادي

تكامل محدد

scipy.integrate.quad

الحالات الحدية، تحليل الأبعاد

جذر المعادلة

scipy.optimize.brentq

ضع الجذر في مكانه وتحقق مما إذا كان صفرًا.

نظام المعادلات الخطية

numpy.linalg.solve

إعادة الحل إلى النظام

مشتق (رقمي)

الفرق المركزي أو numpy.gradient

مقارنة مع الاشتقاق التحليلي

حساب المتجهات السائبة

مصفوفات NumPy

السيطرة على الوحدة والرتبة

يعد الذكاء الاصطناعي جيدًا جدًا في اقتراح أي من هذه الأدوات مناسب وتصحيح بناء الجملة (قواعد كتابة التعليمات البرمجية). لكن عليك أن تقرر الطريقة المنطقية ودقة النتيجة.

خطوة بخطوة: حساب عددي يمكن التحقق منه

1. توضيح المشكلة والوحدات. على سبيل المثال: "احسب التكامل e^(−x²) من 0 إلى ما لا نهاية؛ يجب أن تكون النتيجة √π/2 ≈ 0.8862." إعادة كتابة النتيجة المتوقعة (إن وجدت) تجعل عملية التحقق أسهل.

2. اطلب من الذكاء الاصطناعي الكود، لكنك تقوم بتشغيل الإخراج. انسخ كتلة التعليمات البرمجية وقم بتشغيلها في بيئتك الخاصة (Jupyter، Colab، Python الأصلية).

3. اختبار مع حالة معروفة. جرب الكود بموقف بسيط تعرف إجابته بالفعل. على سبيل المثال، اختبر رمزًا متكاملاً باستخدام مثال تعرفه يدويًا، مثل ∫₀¹ x dx = 0.5. إذا أعطى الكود هذا بشكل صحيح، ستزداد ثقتك.

4. التحقق من التقارب. في الطرق العددية، عند زيادة عدد الخطوات، يجب أن تقترب النتيجة من قيمة ثابتة. إذا لم يقترب، فإن الطريقة ليست مناسبة.

5. التحقق من الوحدة والرتبة. قم دائمًا بتوفير النتيجة العددية مع الوحدة المادية والترتيب.

نصيحة: عند طلب تعليمات برمجية من الذكاء الاصطناعي، قل "قم أيضًا بتضمين سطر اختبار يقارن النتيجة بقيمة تحليلية معروفة". وبالتالي، يقوم الكود بإجراء الحساب واختبار نفسه في موقف معروف. وهذا يجعل الأخطاء مرئية على الفور.

ثلاث حالات صغيرة

الحالة 1 - استنتاج شفهي غير صحيح. طلب أحد الطلاب من الذكاء الاصطناعي كتابة رمز متكامل فقال الذكاء الاصطناعي "هذا الرمز يعطي حوالي 1.77." قام الطالب بتشغيل الكود: وكان الناتج الفعلي 0.886. لقد ارتكب الذكاء الاصطناعي خطأً في التنبؤ بمخرجات الكود؛ كان الرمز صحيحا. الدرس المستفاد: ثق في الكود، ولا تثق في التخمين اللفظي.

الحالة 2 - عدم الاستقرار العددي. بحث أحد الباحثين عن جذر المعادلة باستخدام رمز إيجاد الجذر الذي كتبه الذكاء الاصطناعي. أعاد الكود جذرًا، لكن عندما أعاد الباحث الجذر إلى المعادلة، لم تكن النتيجة صفرًا بل رقمًا كبيرًا جدًا. وكانت المشكلة أن نطاق البداية لا يحتوي على الجذر؛ يفترض الذكاء الاصطناعي النطاق المناسب. قام الباحث بتصحيح الفاصل الزمني بالمعلومات المادية ووجد الجذر الصحيح.

الحالة 3 - تم الحصول على التأكيد. أراد أحد المهندسين رمزًا يحسب عدديًا انحراف الحزمة تحت الحمل. نجح الكود، لكن النتيجة أظهرت أمتارًا من الانحراف، وهو أمر مستحيل بالنسبة للعارضة الفولاذية. قام المهندس بفحص الوحدات: تظاهر الذكاء الاصطناعي بأن لديه معامل المرونة Pa بدلاً من GPa، مفتقدًا العامل 10⁹. ومع تصحيح الوحدة انخفضت النتيجة إلى المليمترات وكانت معقولة.

أربعة قوالب قابلة للنسخ

1) الحساب الرقمي مع خط التحقق:

اكتب كود Python (NumPy/SciPy) الذي يقوم بإجراء الحساب الفعلي التالي: [مشكلة]. أعلن عن جميع المتغيرات في وحدات النظام الدولي (SI) وحدد الوحدة بخط التعليق. أضف سطر فحص (تأكيد أو طباعة) في نهاية الكود الذي يقارن النتيجة بقيمة تحليلية/بسيطة معروفة. سأقوم بتشغيل الكود؛ لا يمكنك تخمين النتيجة، فقط قم بكتابة الكود والرتبة المتوقعة.

2) استشارة اختيار الطريقة:

أريد حل المشكلة التالية رقميًا: [مشكلة]. ما هي وظيفة SciPy/NumPy المناسبة ولماذا؟ اقترح طريقتين بديلتين، واكتب إيجابيات/سلبيات كل منهما من حيث الدقة والثبات. اذكر أي واحد ينبغي تفضيله وفي أي وضع مادي.

3) التحقق من التقارب:

اكتب كود بايثون الذي يوضح كيفية تقارب النتيجة من خلال زيادة عدد خطوات الحساب الرقمي التالي (على سبيل المثال، N=10، 100، 1000). طباعة النتائج في جدول. إذا لم يكن هناك تقارب، فاشرح السبب المادي/العددي لذلك في جملة واحدة. الكود: [هنا]

4) التحكم في الوحدة:

في الكود أدناه، قم بالتعليق على وحدة النظام الدولي لكل متغير وتحقق مما إذا كانت وحدة النتيجة النهائية متوافقة مع الوحدة المتوقعة (على سبيل المثال متر، جول). إذا كان هناك تناقض، قم بإظهار السطر الذي يوجد فيه. الكود: [هنا]

موجه ضعيف / موجه قوي

ضعيف: "قل نتيجة هذا التكامل: ∫₀^∞ x²·e^(−x) dx"
النتيجة: يقوم الذكاء الاصطناعي بإخراج رقم في رأسه (ربما صحيح، وربما خطأ)؛ لا شيء قابل للتنفيذ، لا شيء يمكن التحقق منه.
Strong: "اكتب كود Python الذي يحسب التكامل ∫₀^∞ x²·e^(−x) dx باستخدام scipy.integrate.quad. أضف سطر التأكيد الذي يقارن النتيجة بالقيمة التحليلية لهذا التكامل، 2! = 2. سأقوم بتشغيل الكود."
النتيجة: كود قابل للتنفيذ، وتحقق مضمن (مقارنة بالقيمة التحليلية) ونتيجة موثوقة.

الأخطاء الشائعة

  • الاعتماد على النتيجة العددية اللفظية للذكاء الاصطناعي. قد يتنبأ LLM بشكل غير صحيح بإخراج الكود في الرأس. قم دائمًا بتشغيل الكود.
  • عدم الاختبار مع الوضع المعروف. الكود الذي لا يتم اختباره بمثال بسيط تعرف أن إجابته قد يحتوي على أخطاء مخفية.
  • عدم التحقق من التقارب. إن الالتزام بعدد خطوات واحد يحجب ما إذا كانت النتيجة موثوقة عدديًا.
  • لا تعكس الوحدات في الكود. عدم التعليق على وحدة المتغيرات يدعو إلى أخطاء صامتة تبلغ 10ⁿ.
  • تجاهل إصدار/افتراضات المكتبة. في بعض الأحيان قد ينتج الذكاء الاصطناعي اسم وظيفة غير موجود أو بناء جملة قديم؛ ومن الملاحظ عند تشغيله.
تحذير: قبل وضع نتيجة رقمية في منشور أو مهمة أو تصميم، اختبر الكود مع حالة معروفة مستقلة وقدم النتيجة بالوحدات/الأوامر. حتى كود العمل قد يحسب الفيزياء الخاطئة؛ فقط لأن الكود يعمل لا يعني أن الفيزياء صحيحة.

في ملخص

يعد الذكاء الاصطناعي شريكًا قويًا في ترجمة الحسابات الفيزيائية إلى كود بايثون؛ لكن الأرقام التي يقدمها شفهياً هي تقديرات وليست حقائق. سير العمل الآمن واضح: حدد المشكلة بوحداتها، واطلب من الذكاء الاصطناعي كتابة الكود ولكنك تقوم بتشغيل الإخراج، واختبر الكود بموقف معروف، وتحقق من التقارب والوحدة. ما هو حتمي هو الكود الذي يتم تنفيذه؛ انها ليست LLM. وفي الوحدة التالية، سننقل هذا الأساس العددي إلى محاكاة الأنظمة الفيزيائية المتغيرة بمرور الوقت.

مهمة التطبيق

اختر حسابًا فيزيائيًا تعرف الحل التحليلي له (على سبيل المثال، سرعة سقوط جسم حر خلال فترة زمنية أو تكامل محدد بسيط). اطلب من الذكاء الاصطناعي كتابة كود بايثون باستخدام القالب 1؛ قم بتشغيل الكود بنفسك. قارن النتيجة بالقيمة التحليلية التي تعرفها. ثم لاحظ كيف تتصرف النتيجة عن طريق تغيير عدد الخطوات أو المعلمة. لاحظ في 5-6 جمل: هل تطابق مخرجات الكود مع التنبؤ اللفظي، هل كانت هناك مشكلة في الوحدة/الطلب؟

قائمة مرجعية

  • [ ] وضحت المشكلة ووحدة جميع المتغيرات.
  • [ ] لقد قمت بتشغيل الكود الذي كتبه الذكاء الاصطناعي بنفسي، ولم أثق في النتيجة اللفظية.
  • [ ] لقد اختبرت الكود بموقف بسيط كنت أعرف إجابته.
  • [ ] لقد قمت بفحص التقارب أو حساسية المعلمة.
  • [ ] لقد قمت بتوفير الوحدة وترتيب النتيجة فعليًا.
  • [ ] لقد تحققت من أن وظائف المكتبة التي أستخدمها حقيقية وحديثة.