الرسوم البيانية في ال Matlab

الناقل : elmasry | الكاتب الأصلى : بن العيد | المصدر : www.arabteam2000-forum.com

السلام عليكم
سنواصل في هذا الدرس على ما قمت بتقديمه في الدروس السابقة و سأقدم فيه كيفية الرسم البياني
الكود التالي يبرز كيفية رسم الدالةsin عندما تكون مدخلاتها متراوحة بين πوπ-ومتباعدة ب0.1 وكلما كانت الخطوة بين الأحداثيات المتتالية أصغر كلما كان الرسم أكثر وضوحا وتواصل. إذا إستعملنا على سبيل المثال خطوة تساوي 1 أو 2 سنلاحظ أن الرسم سيصبح عبارة عن خط متكسر يربط بين بضع نقاط.

function PlotGraphs()
                                   x=-pi:.1:pi;
                                   y=sin(x);
                                   plot(x,y);

pi: يرمز إلى الثابت المستعمل بكثرة في الرياضيات و يعادل في الMatlab
   >> pi
                         
                          ans =
                         
                                  3.1416

ارفق صورة : monthly_09_2007/post-91400-1189255856.jpg
الصورة رقم 1: رسم الدالة sin

إنطلاقا من الرسم ذا بعدين يمكننا رأيت الثلاثي الأبعاد وذلك عبر إختيار الإختيارRotate 3D المشار إليه في الصورة رقم 2. هذه العملية تكون ذات أكثر أهمية عند الرسم الثلاثي الأبعاد
ارفق صورة : monthly_09_2007/post-91400-1189256017.jpg
الصورة رقم 2: الرسم الثلاثي الأبعاد للدالة sin

يوفر ال Matlabعدة إختيارات إضافية لتمييز الرسوم عن بعضها, سوى عبر تغير نوعية الخط, اللون أو إضافة رموز. هذه قائمة بمجموعة الإختيارات التي يمكن إستعمالها:

ارفق صورة : monthly_10_2007/post-91400-1191435272.jpg

التعاليق

title: إضافة عنوان للرسم.
xlabel: تسمية العمود الأفقي.
ylabel: تسمية العمود العمودي.
grid: إضافة خطوط أفقية وعمودية لتسهيل قراءة الإحداثيات.
text: لإضافة نص في مكان محدد.
gtext: لإضافة نص في مكان محدد عبر الفأرة.
legend: إضافة ركن لتميز الرسوم و تسميتها.

في المثال الموالي نعيد رسم الدالة sin مع إضافة بعض الإختيارات التي تسهل قراءة الرسم البياني وهو ما تم تجسيده في الصورة رقم 3 حيث أضفت تسمية كل عنصر من الإختيارات الإضافية التي تم إدراجه في الكود.

 
                                   function PlotGraphs()
                                   x=-pi:.1:pi;
                                   y=sin(x);
                                   plot(x,y);
                                   grid
                                   title('Variation of sin(x) for x in[-\pi, \pi]');
                                   xlabel('[-\pi, \pi]');
                                   ylabel('sin(x)');
                                   legend('Graph1','Location','NorthEastOutside')

ارفق صورة : monthly_09_2007/post-91400-1189255976.jpg
الصورة رقم 3: رسم الدالة sin بإختيارات إضافية

يوفر ال Matlabمجموعة من الرموز للأحرف الإغريقية التي نستعملها عادة في المعادلات مم ييسر إدراجها داخل النصوص. في هذا المثال قمت بإدراج رمز الثابت "pi=3.14..."في عنوان الرسم عبر تقديم الرمز "\" على إسم الحرف
Data cursor الإختيار يوفر إمكانية قراءة قيمة معينة في الرسم البياني كما هو مصور في الصورة رقم 4

ارفق صورة : monthly_09_2007/post-91400-1189258418.jpg
الصورة رقم 4 : قراءة قيمة في الرسم

   function PlotGraphs()
          x=-2*pi:.1:2*pi;
          y=sin(x);
          x1=-2*pi:1:2*pi;
          y1=sin(x1)
                                                                                                                                       
          plot(x,y,'--');
          hold on
          plot(x1,y1,'-.');
          grid
                                                                                                                                           
          title('Variation of sin(x) for x in[-2\pi, 2\pi]');
          xlabel('[-2\pi, 2\pi]');
          ylabel('sin(x)');
          legend('Graph1','Graph2','Location','NorthEastOutside');

Hold on: تمكن من مشاركة الواجهة الرسومية مع رسوم أخرى, أي طباعة عدة رسوم في نفس مجال الرسم. Hold offهي الدالة المقابلة لها وتوقف المشاركة وترسم كل ما يليها بكيفية مستقلة وهنا يوجد حالتان:
1. إذا ألحقت بfigure فسيتم توليد واجهة جديدة يطبع عليها الرسم الموالي.
2. إذا لم تلحق بfigure فستم فسخ محتويات النافذة السابقة وسيتم طباعة الرسم الجديد مكانها.

عند النقر مرتان متواليتان في حافة مجال الرسم تفتح نافذة أخرى لتعديل النصوص وغيرها من التعديل لتسهيل قراءة الرسم البياني كما هو مصور في الصورة التالية:
ارفق صورة : monthly_09_2007/post-91400-1189261979.jpg
الصورة رقم 5: تعديل الواجهة الرسومية
figure;
                                                                         subplot(2,2,1), plot(2*x,y), grid
                                                                         subplot(2,2,2), plot(x,2*y), grid
                                                                         subplot(2,2,3), plot(2*x1,y1), grid
                                                                         subplot(2,2,4), plot(x1,2*y1), grid

ارفق صورة : monthly_09_2007/post-91400-1189262551.jpg
الصورة رقم 6: طباعة عدة رسوم في نفس الواجهة الرسومية

عند الرغبة في الإطلاع على رسمين في نافذتين مستقلتين فلا بد من فصل تعليمة الرسم الأولى و الثانية عبر إستعمال التعليمة "figure", و ضيفة هذه التعليمة توليد واجهة رسومية جديدة يطبع عليها الرسم الثاني و عند غيابها يتم مسح الرسم الأول و يتم طباعة الرسم الثاني في نفس النافذة. طريقة أخرى في فصل الرسوم عن بعضها, ليس عبر توليد نافذة جديدة في كل مرة إنما عبر تقسيم الواجهة الرسومية لتحتضن عدة رسوم في الآن ذاته. هذه الطريقة تعتمد أساسا على الدالة subplot