الرسم ثنائي الأبعاد 2D Plotting المقصود ب
الرسم ثنائي الأبعاد هو ان تكون العلاقة التي تحكم عملية الرسم تكون بين متغيرين فقط أحدهما يسمى independent والآخر يسمى dependent
فما المقصود بـــ independent Variable أي المتغير المستقل أي أن قيمه لا تحكمها علاقة
بينما dependent Variable أي المتغير المُعتمد حيث يعتمد قيمه على قيم المتغير المستقل
الآن وبعد شرح هذين العنصرين الهامين, سنقوم بشرح الأمر plot حيث يأخذ الصورة التالية:
وهذا مثال بسيط لكيفية رسم sine Wave
وتلاحظ أننا قد إخترنا 10 نقاط فقط لرسم Sine Wave , وهذا عدد قليل لرسم Sine Wave وتلاحظ ظهور الرسمة بالشكل التالي
وحلاً لهذه المشكلة, لابد من زيادة عدد النقاط داخل المتجه, كما في الشكل التالي
وستلاحظ أن الرسمة قد تحسنت كثيراً
إضافة خصائص إلى الرسومات داخل الماتلاب في بعض الأحيان يكون من الضروري جداً تغيير بعض الخواص لدى الرسومات
التي نحصل عليها مثل تغيير الألوان, وتغيير الرسمة من خطوط متصلة إلى نجوم
ونقاك وغيرها, وهذه هي مجموعة الخصائص التي تتم من خلال الماتلاب
فكيف يتم وضع تلك الخصائص داخل الماتلاب, تكون هذه الخصائص متضمنة في الأمر plot حيث تأخذ الصورة التالية
إعتماداً على المثال السابق أخذه سنقوم بتعديل بعض الخصائص
سنقوم مثلاً بتغيير لون الخط إلى الأحمر
وبالتالي نحصل على الصورة التالية:
ولنقم الآن بإضافة خاصية جديدة بأن يكون الخط ليس خطاً متصل وإنما عبارة عن نجوم
وبالتالي نحصل على الشكل التالي:
وإذا أردنا أن نحصل على نجوم حمراء ( أي دمج الخاصيتين معاً)
وبالتالي نحصل على الشكل التالي:
عملية وضع شبكة على الرسم يقوم الماتلاب بوضع شبكة على الرسم, بحيث يكون من السهل تحديد القيم من على الرسم
حيث تأخذ الأمر grid بعد الأمر plot
وسيكون شكل الرسم كالتالي
الآن سنقوم بعمل معادلة أخر بالإضافة إلى المعادلة المذكورة بحيث يكون لدينا رسمتان, بحيث تأخذ الشكل التالي
ولكن عند تشغيل البرنامج, سيقوم الماتلاب بإظهار الرسمة الأخيرة فقط,
فكيف يتم إظهار الرسمتين, يتم ذلك بإستخدام الأمر Hold on قبل الأمر plot
لكي يتم وضع الرسمتين في نافذة واحدة, وفي نهاية الأمر يتم وضع الأمر hold
off, أنظر الصورة التالية
وبالتالي تكون الرسمتان كالتالي
علمية وضع الرسومات في نوافذ منفصلة سنقوم الآن بدلاً من وضع الرسومات في نفس النافذة سنقوم بوضعها في نوافذ
مختلفة
وعلى نحتاج إلى الأمر figure والذي يقوم بفتح نافذة فارغة إذا تم وضعه
منفصلاً, جرب ذلك في نافذة الأوامر ستلاحظ ان الماتلاب قام بإظهار نافذة
رمادية اللون فارغة شاهد الصورة التالية
حيث وجود تلك النافذة يعني انه سيتم تنفيذ أمر الرسم plot الذي بعد أمر
figure علماً أنه بعد كل أمر figure يتم وضع الخصائص التي تختص بهذه الرسمة
مثل أمر grid الذي سبق شرحه.
وهذا مثال بسيط على ذلك
وستحصل على نافذيتين بهما كلتا الرسمتين
ملف:MATLAB212.gifوالآن قم بتشغيل البرنامج مرة أخرى, ستلاحظ أن عدد النوافذ قد زاد نافذة
واحدة, فكيف حدث هذا؟
يقوم الماتلاب برسم أول دالة على النافذة الأخيرة التي تم رسم الدالة
الثانية بها, ثم يقوم برسم الدالة الثانية في نافذة جديدة بسبب وجود الأمر
figure ولحل هذه المشكلة قم بإستخدام الأمر close all بعد الأمر clear بحيث
يتم إغلاق أي نوافذ كانت مفتوحة قبل ذلك عند تشغيل البرنامج كل مرة
وبالتالي سيكون هنالك ثلاثة أوامر لابد من إستخدامها في كل مرة يتم عمل أي
برنامج وهم
clc
clear
منقول close all
وهذا هو المثال الذي تم عمله منذ قليل بعد التعديل
إنشاء رسومات منفصلة في نافذة واحدة أخذنا أننا بإمكاننا أن نقوم بعمل أكثر من رسمة على نفس النافذة, ولكن
هل تتخيل أن نقوم بوضع عدة رسومات منفصلة في نافذة واحدة, في الحقيقة يمكن
ذلك بإستخدام الأمر subplot قبل كل أمر plot
يعمل الأمر subplot من خلال تحديد عدد الرسومات التي ستقوم بإظهارها, حيث
يقوم الأمرsubplot على وضع الصور وكأنها مصفوفة أو متجه, ويجب عند إستخدام
الأمر معرفة عدد الرسومات التي ستظهرها وكيفية وضعها, ويفضل إستخدام الشكل
التالية لتحديد الأماكن التي ستقوم بوضع الرسومات بها
سنأخذ مثالاً, لنقول أن لدينا معادلات يجب رسمهما, وسنقوم بوضعهما بجوار بعضهما كما في الشكل التالي
وبالتالي الرسمتان سيكون وكأنهما متجه عدد صفوفها 1 وعدد الأعمدة 2 ,
والرسمة الأولى تأخذ الخانة الأولى , والرسمة الثانية ستأخذ الخانة الثانية
هذا ما يجب تحديده بالتفصيل عند إستخدام الأمر subplot
ثم نستخدم الصورة العامة لأمر subplot والتي تكون كالتالي
ولرسم الشكل الأول لابد من كتابة الأمر في الصورة التالية
ولرسم الشكل الثاني لابد من كتابة الأمر في الصورة التالية
والأن سنقوم بوضع البرنامج كاملاً ليكون المعنى قد وضح تماماً
وستكون الرسمة النهائية كما في الشكل التالي
ملاحظة إذا كانت الرسمة تشغل أكثر من خانة يتم إستخدام الأقواس المربعة, وتأخذ الشكل التالي
[ أرقام جميع الخانات التي تشغلها الرسمة]
وسنقوم بإعطاء مثال
نريد أن يكون الشكل الخارج على شكل الصورة التالية
فإن عدد الصفوف 3 وعدد الأعمدة 3 وأرقام الخانات التي تشغلها الرسمة
الأولى 1 و2 و3 و4 و5 و6 على التوالي, وأرقام الخانات التي تشغل الرسمة
الثانية 7 وأرقام الخانات التي تشغل الرسمة الثالثة هي 9
والبرنامج يكون بالشكل التالي
وستكون النتيجة كالتالي
تسمية المحاور سنقوم الآن بتنفيذ الجزء قبل الأخير من الدورة وهو تمية المحاور, فمثلاً
إذا أردنا أن نقوم بتسمية محور السينات X-Axis نقوم بإستخدام الأمر xlabel
وإذا أردنا أن نقوم بتسمية محور الصادات نقوم بإستخدام الأمر ylabel حيث
يأخذ كلا الأمرين صورة واحدة وهي كالتالي
نفس الشئ يتم تطبيقه على محور الصادات ylabel
ولنقوم الآن بعمل مثال تطبيقي
وبالتالي نحصل على الصورة التالية
وضع عنوان في أعلى الرسمة يمكن وضع عنوان أعلى كل رسمة وذلك من خلال الأمر title
حيث يكون هذا الأمر بالشكل التالي
وبالرجوع إلى المثال السابق ووضع التعديلات عليه كما هو موضح
وبالتالي نحصل على الصورة التالية
وضع نص على نقطة أو أكثر داخل الرسم يمكن إضافة نص على نقطة أو أكثر على الرسم, وذلك بإستخدام الأمر text ويأخذ الصورة التالية
وسنأخذ مثالاً بسيطاً في كيفية إيجاد الرقم الأكبر, ثم وضع دائرة حمراء
حول النقطة العظمى ووضع كلمة maximum point
ولكن دعونا نقوم بشرح الأمر الهام find هذا الأمر يقوم بإيجاد مكان العنصر
داخل المتجه بمجرد تحديد خصائص هذا العنصر, فمثلاً سنقوم بعمل دالة وسنبحث
على العنصر الأكبر بينها كما في البرنامج التالي
وعند تشغيل البرنامج, نجد القيم كالتالي
وبالتالي إذا أردنا الحصول على قيمة X عند القيمة العظمى للـــ Y, سنقوم بعمل التالي
وكما تلاحظ فإن قيمة X والتي تعطي القيمة العظمى Y تظهر في workspace, أنظر الصورة التالية
والآن سنقوم بتطبيق المثال ووضع كلمة النقظة العظمى عليها
وبالتالي ستظهر الرسمة كالتالي
الأمر legend يستخدم هذا الأمر في وضع دليل على صفحة الرسم ليبين ماذا يعني كل لون
على الرسم, فمثلاً سنقوم بوضع الأمر legend في المثال التالي علماً أن هذا
الأمر لابد من أن يأخذ الصورة التالية
ويمكن كتابة البرنامج التالي على الماتلاب
وبالتالي ستجد الناتج كالتالي
كما ترى فإن الأمر legend يعتمد على عدد العلاقات المرسومة داخل الرسم,
فمثلاً المثال الذي سبق أخذه كان يستخدم في رسم علاقة ثم إيجاد النقطة
العظمى أي أن عدد العلاقات المرسومة إثنتان, وبالتالي تتم برمجته بالشكل
التالي
وبالتالي تكون الرسمة كالتالي
ويجب مراعاة أن يتم إستخدام الأمر legend بعد الأمر plot وليس العكس
فتح نافذة جديدة وتحديد دقتها
يعطي الماتلاب القدرة على فتح نافذة جديدة وتحديد القيم العظمى والصغرى
لمحور السينات وكذلك بالنسبة لمحور الصادات, وذلك بإستخدام الأمر axis,
والذي يأخذ الصورة التالية في كتابته
مثال تطبيقي قم بفتح نافذة للرسم بحيث تكون بالمواصفات التالية
1- أقل قيمة لمحور السينات هي 10-
2- أكبر قيمة لمحور السينات هي 10
3- أقل قيمة لمحور الصادات 10-
4- أكبر قيمة لمحور الصادات 10
خطوات الحل
في نافذة الأوامر قم بإدخال التالي
وستظهر لك النافذة التالية
كيفية إدخال النقاط من خلال الماوس تعلمنا أنه يمكننا إدخال القيم بإستخدام المتجهات أو المصفوفات, ولكن
يوفر الماتلاب قدرة في إدخال النقاط من خلال الرسم بإستخدام الماوس, ونظراً
لأننا نقوم بإختيار النقاط من على الرسم فهذا يعني أن النقاط التي يتم
إختيارها يتم تمثيلها في قيمة في محور السينات وقيمة في محور الصادات, ويتم
وضع قيم محاور السينات والصادات في صورة متجه.
يستخدم الأمر ginput في عملية إدخال النقاط بإستخدام الماوس, ويتم كتابة
ذلك الأمر في الصورة التالية
أما إذا أردنا إدخال عدد لا نهائي من النقاط يمكن ذلك بعدم ذكر عدد نقاط الإدخال, كما في الشكل التالي
وبعد الإنهاء من إدخال النقاط كل ما عليك هو الضغط على مفتاح Enter في
لوحة المفاتيح.
مثال تطبيقي
سنقوم بفتح نافذة للرسم بها شبكة, وأقل قيمة لمحور السينات هي صفر وأكبر
قيمة لمحور السينات هي 10 وكذلك بالنسبة لمحور الصادات, ثم إدخال عدد كبير
من النقاط على الرسم بإستخدام الأمر ginput, وهذه النقاط يتم طباعتها على
شكل دوائر حمراء.
ويتم كتابة الأوامر بالشكل التالي
وستظهر لك نافذة لإدخال النقاط , وبعد إتمام عملية الإدخال إضغط على Enter لإتمام الإدخال وستظهر لك النافذة التالية