حل ثلاثة معادلات كما تعلمنا أن الماتلاب له القدرة على إدخال حل المعادلات, فمثلاً المعادلتان التاليتين
ويمكن كتابة ذلك على الماتلاب كالتالي
وبالتالي نجد النتائج كالتالي
ولكن هذا يشترط أن يتم إدخال المعاملات coefficients للمعادلتين, وهذا
بالتالي يتطلب التمحيص والتدقيق في كل معادلة, فإذا كثرت المعادلات إزداد
الوقت المستغرق في البحث, فتسهيلاً للمستخدم يجب عمل برنامج لإدخال
المعادلات بشكل كام, فمثلاً سنقوم بعمل برنامج لحل ثلاثة معادلات
ولحل هذه المعادلات يجب وضعها في الصورة التالية
ولذلك يجب التفكير كالتالي, عندما يقوم المستخدم بإدخال المعادلات
الثلاثة, يجب على الماتلاب أن يحدد قيم المعاملات أولاً لإيجاد حل قيم
المتغيرات, وحلاً لهذه المشكلة سنجعل الماتلاب يبحث عن علامة "="
لكل معادلة, ثم سنقوم بتعريف الجزء الذي يحتوى على المتغيرات لكل معادلة,
ثم سنقوم بفرض أن
x=1 , y=0,z=0
ومنها نحصل على قيم معاملات x في المعادلات الثلاثة
ثم سنفرض أن x=0, y=1, z=0
ومنها نحصل على قيم معاملات y في المعادلات الثلاثة
ثم سنفرض أن x=0,y=0,z=1
ومنها نحصل على قيم معاملات z في المعادلات الثلاثة
وبالتالي نكون قد حصلنا على معاملات المعادلات الثلاثة, لم يتبقى
سوى إيجاد قيم معاملات D وسوف يتم توضيح ذلك عند كتابة البرنامج على
الماتلاب.
وسنقوم الآن بوضع ثلاثة معادلات كما في الشكل التالي
وبالتالي ستكون النتائج كالتالي
وعلى نفس المنوال يمكن حل أي عدد من المعادلات مهما كانت كبيرة, وسنأخذ لاحقاً كيفية عمل نافذة لإدخال تلك المعادلات
Zero Crossing في هذا المثال الهام سنقوم بشرح كيفية رسم معادلة, ووضع دائرة زرقاء على
مناطق تقاطعها مع محور السينات, والتي يجب أن تأخذ الشكل التالي
قد يعتقد البعض بأن هذا البرنامج سهلاً تقريباً, ولكن البرنامج يحتاج
إلى التفكير قليلاً, فدعونا نفكر في الطريقة التي قد يفكر بها أي شخص الآن,
حيث سيقوم بكتابة البرنامج الذي يبحث عن النقاط التي بها Y=0 ثم يقوم
بإيجاد القيم التي بها تلك النقاط, كما في البرنامج التالي
وستكون الرسمة النالتجة بالشكل التالي
فما سبب هذه المشكلة, حقيقة سببها ما يسمى بــ
Digital Domain, فما هو
Digital Domainمعنى ذلك أن أي معادلة يتم رسمها ليست عبارة عن خط متصل وإنما
مجموعة من النقاط, تعتمد على عدد النقاط التي تم إختيارها في لرسم الدالة,
ثم التوصيل بين تلك النقاط, فمثلاً إذا قمنا بعمل برنامج لرسم دالة الجيب
sine wave بعدد نقاط قليل, كما في الشكل التالي
وبالتالي ستجد الدالة بهذا الشكل
كما ترى, فإن الماتلاب قام بتحديد النقاط والتوصيل بينها, وللتأكد من ذلك قم بعمل التالي في البرنامج
وبالتالي فإن الرسمة الناتجة, تكون في الصورة التالية
وهذا ما يسمى Digital Domain والآن لنقم بزيادة عدد النقاط في نفس البرنامج
وتكون الرسمة كالتالي
كما ترى في الرسمة لايزال هنالك فراغات بين النقاط , والتي من الممكن أن
لا تتقاطع مع محور السينات كما حدث في البرنامج الذي قمنا بعمله, وهذا هو
سبب عدم ظهور دائرة حمراء حول منطقة التقاطع, ودعونا نقوم بعمل البرنامج
الأول ولكن في صورة Digital Domain
وستظهر الرسمة في الصورة التالية
والآن دعونا ننقاش حلاً لهذه المشكلة, عند ضرب نقطة في النقطة التي
بعدها سنحصل على رقم, ولكن الفكرة أن الرقم قد يكون موجباً في حالة ان
النقطتان فوق محور السينات, بينما إذا كانت إحدى النقط فوق محور السينات
والآخرى تحت محور السينات فإن الرقم الناتج يكون سالباً, أما إذا كان كلا
النقتطين أسفل محور السينات فإن ناتج ضرب النقتطين يكون موجباً, أي أن إذا
ظهر رقم سالب فهذا يعني نقطة تقاطع, ثم يتم وضع دائرة حمراء على تلك
النقطة, شاهد الصورة التالية
كل ما علينا هو ضرب كل نقطة في النقطة التي تليها, وذلك عن طريق تعريف y
ثم تعريف نفس الدالة, ولكن متقدمة عنها برقم واحد, ثم ضربهم معاً, فمثلاً
إذا كانت قيمة y كالآتي
ثم سنقوم بإضافة رقم ليتم تحريك تلك القيم, ويفضل أن يكون الرقم صفراً,
كما سيتم حذف الرقم الأخير حيث أنها ستكون أطول بعدد واحد فقط من الدالة
الأصلية مما سيترتب عليه خطأ داخل الماتلاب وبالتالي فإن الدالة الجديدة
ستكون متأخرة برقمهين
والآن سنقوم بكتابة البرنامج بالتدريج التالي
وبالتالي ستلاحظ الرسمة التالية
وبالتالي تكون الرسمة قد أصبحت صحيحة
إيجاد المساحة تحت المنحنى هذا المثال من التطبيقات الهامة, حيث سنقوم بتعريف المدخلات ورسم
الدالة, ثم سنختار نقطتان نقطتان من على الرسم, ثم سنقوم بإيجاد المساحة
بين تلك النقطتين, ونقوم بتظليل الجزء المختار, ولكن سنقوم في هذا المثال
بإستخدام أمرين جديدين وهما
trapz لإيجاد المساحة تحت المنحنى
area لتظليل تلك المساحة من الدالة
وسنقوم بشرح الأمر area
حيث يأخذ الصورة التالية
وسنقوم بتنفيذ مثال بسيط على الماتلاب برسم دالة الجيب ثم تظليل تلك الدالة
وستظهر الرسمة كالتالي
أما بخصوص الأمر trapz فيستخدم في إيجاد المساحة تحت المنحنى, حيث يأخذ الصورة التالية
وسنقوم بعمل برنامج بسيط في إيجاد المساحة تحت منحنى دالة الجيب
وبالتالي ستلاحظ قيمة المساحة من خلال نافذة Workspace
الآن نتوجه إلى البرنامج الذي نريد تنفيذه, سنقوم بإدخال المدخلات
inputs ثم سنقوم بالتعويض بها في المخرجات outputs ثم سنقوم بإختيار
النقطتان من على الرسمة, ثم سنوجد المساحة تحت المنحنى بين تلك النقطتين,
ثم سنقوم بتظليل المساحة بين النقتطين.
وتم إختيار نقتطان عشوائيتان, وظهرت الرسمة كالتالي
Curve Fitting سنقوم الآن بأخذ المثال التطبقي الثالث والأخير وهو Curve Fitting حيث
أن هذه العملية هامة جداً في إيجاد علاقة مكافأة لأي نظام, فمثلاً عند
إدخال مجموعة من المدخلات inputs سنلاحظ أن الخرج outputs تأخذ مجموعة من
النقاط المتشتتة التي لا تجمعها علاقة محددة, أما عند إستخدام curve
fitting سنلاحظ تكون علاقة تقريبية لتوصيف النظام.
وهذه صورة لمجموعة من النقاط الخارجة من النظام لا تجمعها أي علاقة
ولكن سنقوم بشرح أمرين وهما ones و zeros واللذان لهما القدرة التالية
ones يستطيع أن يكون مصفوفة أو متجه جميع عناصره 1
zeros يستطيع أن يكّون مصفوفة أو متجه جميع عناصره صفر
لاحظ الصورة التالية في طريقة كتابة كلا الأمرين
وستلاحظ ظهور النتائج بالشكل التالي
أما الآن سنتكلم عن أنواع Curve Fitting
هنالك أنواع عديدة منها
exponential*
وسنتناول النوع الأول والرابع, أما الآن سنتناول النوع الأول
Linear Curve Fitting
في هذا النظام يتم إيجاد خط مستقيم بحيث تكون المسافة العمودية بين كل نقطة والخط المستقيم أقل ما يمكن, يمكن مشاهدة الصورة التالية
فكما هو واضح في المثال كل قيمة في محور السينات لها قيمة مناظرة في
محور الصادات
وحيث اننا نستخدم طريقة Linear Curve Fitting فإن لكل نقطة على محور
الصادات علاقة خطية مع نقطة محددة على محور السينات, وهذه العلاقة تكتب في
الصورة التالية
فإذا عدنا بالذاكرة للخلف عند حل المعادلات سنجد اننا كنا نقوم بكتابة المعادلات بالشكل التالي
ويمكنا كما تعلمنا كتابة تلك المعادلة في الصورة التالية
وبالرجوع إلى المعادلة الخاصة بــ Linear Curve Fitting نستطيع كتابتها في الصورة التالية
وبهذا نكون قد حصلنا على قيمة كلاً من K & T والتي نستطيع أن نقوم
بتعريف مجموعة قيم للمتغير X وبالتالي نقوم بالحصول على قيمة Y ومنها نقوم
برسم العلاقة بين X & Y والتي تمثل خطاً تبعاً للمعادلة التالية
والآن سنقوم بالبدء بكتابة البرنامج في الماتلاب خطوة خطوة
سنقوم الآن بتعريف الماتلاب بمجموعة القيم للمتغير X والعلاقة للنظام التي تعطينا قيمة Y
والآن لنفترض أن لدينا أكثر من قيمة X وبالتالي سنحصل على أكثر من قيمة Y
وحيث أن العلاقة بين X & Y خطية كما ذكرنا مسبقاً فإننا بالتالي سيكون لدينا أكثر من معادلة يمكن كتابتها في الصورة التالية
والتي يمكن وضعها في الشكل التالي
وسنقوم في الماتلاب بتحويل متجه الصف Row Vector إلى متجه عمودي Column
Vector ثم إضافة متجة عمودي جميع قيمه واحد بإستخدام الأمر ones كما تعلمنا
مسبقاً
والآن قد يظن البعض أنه حتى نحصل على قيم K & T يجب أن تكون صورة الحل كالآتي
ولكن هذا صحيح إذا كانت قيمة A مصفوفة مربعة , فهل هي كذلك الآن ؟ بالطبع لا, فما العمل
إذا كانت المصفوفة ليست مربعة يتم وضع علامة القسمة مقلوبة ( \ ) ولا يتم إستخدام الأمر inv أي أن صورة الحل الصحيح تكون
وبالتالي يكون الحل في الماتلاب كالآتي
وبالتالي فإن المعادلة الناتجة والتي من خلالها سنرسم خطاً بحيث تكون
المسافة العمودية بينه وبين النقاط أقل ما يمكن, تكون في الصورة التالية
والآن سنقوم بتعريف الماتلاب عدة نقاط بحيث نرسم ذلك الخط
وبالتالي نحصل على الرسم بالشكل التالي
Exponential Curve Fitting سنأخذ الآن التطبيق الأخير في هذه الدورة وهو Exponential Curve Fitting , ويمكن كتابة العلاقة بين X & Y بالشكل التالي
وإذا وجدت أكثر من نقطة, فهذا يعني وجود أكثر من معادلة والتي تكتب في الصورة التالية
والتي يمكن كتابتها في صورة المصفوفة
والآن سنقوم بوضع البرنامج على الماتلاب
وبالتالي سيظهر الناتج كالتالي
منقول...نسألكم الدعاء.