8/10/2016

لماذا أحب المحاكاة .. (الجزء الأول)

"المحاكاة هي عملية تقليد لأداة حقيقية أو عملية فيزيائية أو حيوية. تحاول المحاكاة أن تمثل وتقدم الصفات المميزة لسلوك نظام مجرد أو فيزيائي بوساطة سلوك نظام آخر يحاكي الأول. وهي محاولة إعادة عملية ما في ظروف اصطناعية مشابهة إلى حد ما للظروف الطبيعية" من ويكيبيديا. 

محاكاة لنظام ديناميكي (من ويكيبيديا)


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

عمليات المحاكاة في جميعها لازم تمر بعدة مراحل: 
أولا: مرحلة ملاحظة الظاهرة الطبيعية. زي مثلا ظاهرة حركة الهواء ، أو حركة المياه أو حركة الشمس أو الإضاءة الطبيعية . أو انتقال الحرارة .. إلى آخره.
ثانيا: مرحلة إيجاد النموذج الرياضي Mathematical Model، ودا محتاج تجارب كتير وحرفية من نوع خاص، وإلمام كبير بالرياضيات المتقدمة والتفاضل والتكامل والمعادلات التفاضلية الجزئية وغيرها. وتستمر التجارب و رصد البيانات حتى الوصول إلى معادلة أو مجموعة معادلات رياضية لحل الظاهرة الطبيعية. مثال على ذلك : معادلات نافيير ستوكس Navier-Stocks equations الخاصة بحركة الموائع أو معادلات فوريي Fourier أو قانون انتقال الحرارة وغيرها. 
ثالثا: يجب التأكد من صحة النموذج الرياضي من خلال إجراء التجارب المعملية ومطابقتها بناتج العملية الحسابية وتسمى هذه العملية بعملية التحقق Verification للنموذج . 
{\frac {\partial u}{\partial t}}-\alpha \left({\frac {\partial ^{2}u}{\partial x^{2}}}+{\frac {\partial ^{2}u}{\partial y^{2}}}+{\frac {\partial ^{2}u}{\partial z^{2}}}\right)=0
معادلة الحرارة Heat equation
رابعًا: بعد إجراء تحقق من صحة النموذج ، من هنا يمكن ادخال النموذج ضمن برنامج software يقوم بحل هذه المعادلات بطريقة اوتوماتيكية وبشكل سريع ومن ثم يولد برنامج المحاكاة Simulation Software، ويجب إجراء عملية تحقق أيضاُ لأكواد المحاكاة للتأكد من صحة النتائج ومطابقتها للتجارب المعملية و ضمان وجود هامش خطأ صغير. تتطلب هذه المرحلة معرفة بلغات البرمجة Programming Languages والخوارزميات Algorithms  وبنيات البيانات Data structures . 
خامسًا: الآن يمكن للمستخدمين اجراء عمليات المحاكاة على البرنامج أو الكود، ولكن لحظة ! . قبل استخراج نتائج المحاكاة واعتمادها ، يجب أولا أن تقوم بعمل تحقق للمحاكاة أيضا وفي هذه الحالة التحقق يسمى Validation ويستخدم في التحقق من مطابقة مدخلات البرنامج (او ما يسمى بالشروط الإطارية Boundary Conditions)  بشكل صحيح للحالة المراد دراستها.. 

للأسف ، رغم شغفي وحبي الشديد للنمذجة وبرامج المحاكاة إلا أنه لا يزال حباً من طرف واحد ، لكن عزائي في ذلك أنه يوشك أن يُفْتَحَ البابُ لمن أدمَنَ طرْقَهُ. 

اترككم مع الفيديو (محاكاة لنموذج دخان شرودنجر- ورقة بحثية مقدمة في مؤتمر SIGGRAPH 2016) : 

هناك تعليقان (2) :

  1. ايضا تستخدم المحاكاة فى مجاالات تعليمية وخاصة فى تبسيط المناهج والمفاهيم المعقدة والتى يصعب تخيلها او فهمها بالصور المجردة الموجودة فى الكتب ايضا فى تنبأ المشاكل وعمل تحليل للمنشآت والمبانى كما زكرت

    بالتوفيق فى مزيد من المقالات فى هذا الموضوع

    ردحذف