منتديات الالكترونيات العصريه  
yoursite.com page title .

استرجاع كلمة المرور طلب كود تفعيل العضوية تفعيل العضوية
العودة   منتديات الالكترونيات العصريه > الاقسام المتعلقة باهم البرامج الهندسيه وشروحاتها > منتدى برنامج الماتلاب Matlab > منتدى دروس برنامج متلاب Matlab

  #1  
قديم 01-04-2010, 04:45 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي الماتلاب خطوة بخطوة

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

أخواني الكرام, وأيضاً قبل البدء, لابد من ذكر المواقع الهامة لخدمة برنامج الماتلاب, والتي من خلالها تستطيع أن تصل إلى التطبيق المطلوب بإذن الله

موقع الشركة المصنعة لبرنامج الماتلاب
http://www.mathworks.com
حيث ستجد في هذا الموقع آخر الإصدارات لبرنامج الماتلاب, وكذلك التحديثات الخاصة بالبرنامج, كما يوفر شرحاً (باللغة الإنجليزية) لبرنامج الماتلاب.

University of Utah
http://www.math.utah.edu/lab/ms/matlab/matlab.html
حيث يوفر موقع الجامعة مقدمة سريعة ومبسطة لبرنامج الماتلاب

Indiana University
http://www.indiana.edu/~statmath/math/matlab/
يقدم أيضاً موقع الجامعة لمحة سريعة حول برنامج الماتلاب

الفصل الأول: مقدمة في الماتلاب
أخواني الكرام توكلنا على الله في بدء شرح برنامج الماتلاب
سنتناول بإذن الله في مقدمة في الماتلاب التالي:
1- تعريف برنامج الماتلاب ومؤسسه
2- واجهة البرنامج
3- بعض الأوامر الأساسية
4- تعريف العمليات الأساسية
5- تعريف بعض المتغيرات
6- الأعداد المركبة
7- المصفوفات
8- الرسم في نظام الإحداثي الثنائي 2D Plotting
9- الرسم في نظام الإحداثي الثلاثي الأبعاد 3D Plotting
10- البرمجة بإستخدام الماتلاب

وسنتناول في هذا الموضوع بإذن الله التالي
1- التعريف ببرنامج الماتلاب ومؤسسه
2- واجهة البرنامج
3- تعريف العمليات الأساسية
4- بعض الأوامر الأساسية
5- تعريف بعض المتغيرات
6- الأعداد المركبة

أولا: تعريف برنامج الماتلاب
برنامج الماتلاب هو برنامج هندسي (وله مجالات أخرى) يقوم بعمليات تحليل وتمثيل البيانات من خلال معالجة تلك البيانات تبعاً لقاعدة البيانات الخاصة به, فمثلاً يستطيع البرنامج عمل التفاضل differentiation والتكامل Integration و كذلك يقوم بحل المعادلات الجبرية Algebric Equations وكذلك المعادلات التفاضلية Differential Equations ذات الرتب العليا والتي قد تصل من الصعوبة ما تصل, ليس فقط ذلك بل يستطيع البرنامج عمل التفاضل الجزئي, ويقوم بعمل عليات الكسر الجزئي Partial fraction بسهولة ويسر والتي تستلزم وقتاً كبيراً لعملها بالطرق التقليدية, هذا من الناحية الأكاديمية, أما من الناحية التطبيقية فيستطيع البرنامج العمل في جميع المجالات الهندسية مثل أنظمة التحكم Control System, وفي مجال الميكانيكا Mechanical Field, وكذلك محاكة الإلكترونيات Electronics وصناعة السيارات Automotive Industry, وكذلك مجال الطيران والدفاع الجوي Aerospace and Defense, والكثير من التطبيقات الهندسية.
وحتى أؤكد للجميع ذلك, قامت شركة السيارات المرموقة نيسان Nissan بتخفيض وقت التطوير إلى 50% عندما قامت بإستبدال التصميم على الأوراق Paper Model Based Design إلى الأداة المتطورة في برنامج الماتلاب وهو Model Based Design, يقول المدير المساعد شيجاياكي كاكيزاكي في مجموعة هندسة إدارة نظام المحرك لشركة نيسان (شركة محدودة)
Without MathWorks tools for Model-Based Design, Nissan would not have become the first company to meet the CARB PZEV standard
CARB= California Air Resources Board
PZEV= Partial Zero Emission Vehicle
يمكنكم متابعة هذا التقرير من خلال الرابط
http://www.mathworks.com/company/use...ml?by=industry

فمع التقدم السريع في التكنولوجيا أصبحت الحاجة ملحة على تعلم مثل هذا البرنامج حتى نصبح في سباق التنافس الصناعي.

التعريف بمؤسس برنامج الماتلاب
قام بتأسيس البرنامج شخصان, الأول هو كليف مولر والثاني جاك ليتل
كليف مولر
هو إستاذ الرياضيات وعلوم الحاسب Computer Science لأكثر من عشرين عاماً في جامعة متشيجين و جامعة ستانفورد وجامعة نيو مكسيكو.
أمضى خمس سنوات عند إثنين من مصنعى الــ Hardware وهما Intel Hypercube organization و Ardent Computer قبل أن يقوم بالإنتقال إلى شركة Mathworks الشركة الأم لبرنامج الماتلاب, كما أنه هو المؤلف لأول برنامج للماتلاب.

كليف مولر
جاك ليتل
هو المؤسس لشركة Mathworks كما أنه المساعد في وضع تخطيط برنامج الماتلاب.
جاك حاصل على بكلوريوس الهندسة الكهربية وعلوم الحاسب من جامعة MIT عام 1978
كما أنه حاصل على شهادة M.S.E.E من جامعة ستانفورد عام 1980

جاك ليتل

ثانياً: واجهة البرنامج
تتسم واجهة البرنامج بالسهولة في التعامل معها, حيث يتم تقسيم مناطق العمل بها إلى ثلاث مناطق رئيسية, وهي كالتالي نافذة الأوامر Command Window و منطقة العمل Workspace و تاريخ الأوامر Command History, إنظر الصورة التالية.

نافذة الأوامر Command Window: حيث يتم إدخال المدخلات Inputs والأوامر Commands, ويعمل الماتلاب على تحليل تلك البيانات ومدى مطابقة المدخلات للوظيفة المطلوبة منه, حتى تحصل على النتائج في نفس الشاشة.
منطقة العمل Workspace: حيث يقوم الماتلاب بتسجيل المدخلات Inputs والمخرجات Outputs في هذه الشاشة.
ملاحظة: عند بدء العمل على الماتلاب لأول مرة, لاتظهر نافذة Workspace , وحتى تظهر إضغط بزر الفأرة على كلمة Workspace كما في الصورة التالية

نافذة تسجيل الأوامر Command History: يتم تسجيل كل ما يقوم به المستخدم على برنامج الماتلاب في هذه النافذة. إنظر الصورة التالية

قائمة إبدأ Start: تستخدم هذه القائمة للوصول إلى التطبيق المراد تنفيذه, تستخدم هذه القائمة في المراحل المتقدمة في برنامج الماتلاب, إنظر الصورة التالية

بعض الأساسيات الهامة لمستخدمي برنامج الماتلاب
سنتعرف بإذن الله على القوائم, وما يقوم به كل إختيار.
قائمة ملف File
تتكون هذه القائمة من العديد من الخيارات, والتي تنفذ كل منها وظيفة محددة باقي البرامج
قائمة التعديل Edit
فكما تعودنا في تلك القائمة أن نجد أوامر ( نسخ Copy, قص Cut, لصق Paste, بحث Find), ولكن هنالك ثلاث أدوات هامة بها وهم

Clear Command Window

Clear Command History

Clear Workspace

حيث تعمل تلك الأدوات على مسح جميع المدخلات والنتائج من البرنامج


أنظر الصورة





قائمة Debug
هذه القائمة خاصة بمعالجة البيانات, والطريقة المتبعة من قبل برنامج الماتلاب في مواجهة الأخطاء.
أنظر الصورة التالية


فمثلاً قم بإختيار Stop If Errors/Warnings…
ستلاحظ ظهور نافذة, تعطيك حرية الإختيار في تصرف برنامج الماتلاب عند حدوث أخطاء أو تحذيرات, أنظر الصورة التالية

ملاحظة: يرجى ترك هذه النافذة دون تغيير, فلسنا بحاجة لها الآن.

قائمة Desktop:
في هذه القائمة يتم التحكم بمحتوى الواجهة الخاصة ببرنامج الماتلاب, فمثلاً يمكننا إظهار نافذة الأوامر أو إخفائها (طبعاً لو أخفيناها مش حنعرف نشتغل), أنظر الصورة

معلومة هامة:
تكون النوافذ في أحد الوضعين
1- Docked: حيث تكون النافذة غير قابلة للتحريك من مكانها.
2- Undocked: حيث تكون النافذة قابلة للتحريك وتعديل مقاسها أيضاً
أنظر الصور


يتبقى لدينا قائمتان هما
قائمة Window:
حيث يمكنك التنقل بين ملفات الماتلاب المختلفة, وكذلك النوافذ مثل نافذة الأوامر Command Window وغيرها الكثير.
قائمة Help:
حيث تقوم تلك القائمة, بتوفير المساعدات الضرورية في البرنامج, ووسائل الإتصال بالشركة المصنعة, وآخر التحديثات, وكذلك تعلم الماتلاب باللغة الإنجليزية

هنا أكون قد أكملت شرح واجهة البرنامج
__________________
رد مع اقتباس
  #2  
قديم 01-04-2010, 04:48 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة


العمليات الأساسية (الجمع و الطرح والضرب والقسمة) وبعض العمليات الهامة مثل وضع الأس لعدد, كما سنتعرف على بعض الأوامر الهامة.

عملية الجمع:

تأخذ علامة الجمع في الماتلاب الرمز المعروف للجمع وهو "+"
فمثلاً إذا قمنا بجمع 3+2 سيقوم الماتلاب بوضع الإجابة في صورة أرقام وهو 5, أنظر الصورة التالية
إذهب إلى نافذة Workspace وقم بالنقر بالماوس بقرة مزدوجة, ستلاحظ ظهور نافذة حلت محل نافذة الأوامر وأصبحت نافذة الأوامر في الأسفل, أنظر الصورة
لنفترض أننا قمنا بتغيير الناتج 5 إلى 3, قم بإغلاق نافذة تعديل النتائج, كما في الصورة التالية
ستلاحظ عودة نافذة الأوامر لوضعها الأساسي, قم بكتابة ans في نافذة الأوامر, ستلاحظ ظهور الناتج بالقيمة الجديدة وهي 3, أنظر الصورة

عملية الطرح:
تأخذ عملية الطرح رمز ( - ) في الماتلاب, فمثلاً 3-2=1, أنظر الصورة

عملية الضرب
تأخذ عملية الضرب رمز ( * ), فمثلاً 15*12= 180, أنظر الصورة

عملية القسمة:
تأخذ عملية القسمة رمز ( / ), فمثلاً 12 على 3 تساوى 4, أنظر الصورة للتتأكد

عملية وضع الأس:
يأخذ رمز الأس ( ^ ), يمكن الحصول على هذا الرمز من خلال الضغط على Shift + 6 في لوحة المفاتيح, فمثلاً 12^2=144, أنظر الصورة

أخذ الجذر التربيعي:
يتم أخذ الجذر التربيعي لأي رقم عن طريق كتابة الأمر sqrt, فمثلاً الجذر التربيعي للرقم 144 يساوي 12 أنظر الصورة التالية

وضع عناوين أثناء البرمجة
كما تعودنا في برامج Qbasic و C++ وغيرها الكثير من برامج البرمجة, فيتم وضع عناوين لما نقوم به حيث تكون مثل المرجع لنا في معرفة ما نقوم به في جزء ما من البرنامج.
ففي برنامج الماتلاب لوضع عنوان ما, لابد من أن نبدأ بوضع علامة مئوية ( % ), ثم نكتب مانريده بعدها, لاحظ الصورة التالية
ولكن كما تلاحظون فهنالك مشكلة في نافذة Workspace, حيث أنها سجلت آخر قيمة فقط, وذلك لأن كل النتائج الأربعة تأخذ رمز ans حيث اننا لم نجع لها رمزاً, أنظر الصورة

يتم تعريف النتائج بحروف, بحيث يأخذ الحرف القيمة التي يدخلها المستخدم له, أنظر الصورة

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

يتم أخفاء القيمة المدخلة وكذلك النتيجة من الظهور ( ولكن عملية إدخال النتيجة والجمع مثلاً تتم بشكل طبيعي ويقوم الماتلاب بتنفيذ ما يأمره المستخدم) عن طريق وضع علامة ( ; ) بعد كل قيمة مدخلة أو بعد طلب نتيجة ما (الجمع مثلاً ) ويتم إظهار النتيجة أو القيم المدخلة إذا طلب المستخدم ذلك , عن طريق وضع حرف المدخلات أو النتيجة المطلوبة دون إستخدام الرمز الرمز المذكور ( ; ) انظر الصورة التالية

بعض المتغيرات المعرفة مسبقاً في برنامج الماتلاب والمعروفة:


أنظر الصورة التالية










الكتابة فوق قيمة العدد المركب
تعلمنا أنه إذا كتبنا ( i ) في نافذة الأوامر يظهر التالي

كما يمكننا الكتابة فوق هذه القيمة, أي تغيير قيمته, حيث سنقوم بوضع قيمة لهذا الرمز, أنظر الصورة التالية

إلغاء القيم المدخلة والنتائج
يمكن للماتلاب مسح القيم المدخلة والنتائج ( والتي تسجل في نافذة تسجيل النتائج), دون مسح ما قمت بكتابته, وذلك بإستخدام أمر Clear, أنظر الصورة التالية


ولكن بعد تنفيذ أمر Clear



وللتأكد قم بوضع أي حرف من الحروف التي قمت بتعريفها مسبقاً للماتلاب, ستلاحظ ان الماتلاب لا يتعرف عليها الآن, أنظر الصورة

عملية المسح الجزي للمتغيرات:
ليس شرطاً أن نقوم بعملية مسح كلي لكل البرنامج, بل من الممكن عمل مسح لمتغير واحد فقط, عن طريق كتابة أمر Clear ثم إسم المتغير, ففي المثال السابق لدينا قيم لكلاً من (a) & (b) كما في الصورة التالية


ثم سنقوم بمسح قيمة (a) فقط, أنظر الصورة تالية


إخواني الكرام, نستكمل بعض الأوامر الخاصة ببرنامج الماتلاب, وسنتناول بإذن الله
الدوال المثلثية Trigonometric functions
الدوال المثلثية العكسية Inverse Trigonometric functions
الدوال الزائدية Hyperbolic Functions
الدوال الزائدية العكسية Inverse Hyperbolic functions
أولاً: الدوال المثلثية Trigonometric Functions

ملاحظة: يقوم الماتلاب بقياس الزوايا بالتقدير الدائري Radian
لاحظ الصورة التالية



وسيتم شرح هذا الجزء بالتفصيل أكثر في الجزء الخاص Plotting 2D


الدوال المثلثية العكسية:


أنظر الصورة التالية لترى مدى قابلية الماتلاب على حل تلك الأجزاء بسهولة تامة




بنفس الطريقة لكل الدوال المثلثية العكسية










الدوال الزائدية Hyperbolic functions


بعض العلاقات الهامة بالنسبة للدوال الزائدية







أنظر الصورة التالية للتحقق من النتيجة بإستخدام الماتلاب








أنظر الصورة التالية للتحقق من النتيجة بإستخدام الماتلاب






























__________________
رد مع اقتباس
  #3  
قديم 01-04-2010, 04:51 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة


سنتناول بإذن الله
الدوال الأسية Exponential Function
الأعداد المركبة وعملياتها Complex numbers and their Processes
اللغرتمات الطبيعية Natural Logarithm
القيمة المطلقة Absolute Value
العمليات التقريبية Approximation Processes

الدالة الأسية Exponential Function
الدالة الأسية تأخذ الصيغة الرياضية التالية
أما في الماتلاب فتختصر في exp
أنظر الصورة التالية
الأعداد المركبة Complex Numbers
تأخذ الأعداد المركبة صيغة واحدة وهي تواجد جزء للأعدد الحقيقي Real number وجزء العدد التخيلي Imaginary Numbers, وتكون في الصيغة التالية

ويتم في برنامج الماتلاب العديد من العمليات والتي تتم في الأعداد المركبة مثل
إختيار العدد الحقيقي فقط
إختيار العدد التخيلي فقط
إيجاد الزاوية Phase Angle, ويتم الحصول عليها من خلال العلاقة التالية
إيجاد القيمة المطلقة: ويتم الحصول عليها من خلال العلاقة التالية
جمع عددين مركبين: ويتم ذلك عن طريق جمع الأعداد الحقيقية مع بعضها, وجمع الأعداد المركبة مع بعضها
أنظر الصورة التالية مشاهدة تلك العمليات

ملاحظة: تتم جميع العمليات الحسابية (الجمع والطرح وغيرها) على الأعداد المركبة أيضاً
كما رأينا في المثال السابق إستخدام الأمر angle لإيجاد زاوية الطور عن طريق كتابة angle(z) حيث يتم وضع رمز العدد المركب z في هذا الأمر, يمكننا أيضاً تنفيذ ذلك بإستخدام أمر آخر وهو atan2
أنظر الصورة التالية
اللوغاريتمات الطبيعية Natural Logarithm
يرمز الماتلاب للوغاريتمات الطبيعية بالرمز log(x)

العمليات التقريبية لأعداد واقعة بين رقمين
أي رقم عشري يمتاز بأنه واقع بين رقمين صحيحين, فالماتلاب له القدرة على إختيار أحد هذين الرقمين بإستخدام الأمرين Ceil لإختيار الرقم الأكبر, والأمر Floor لإختيار الرقم الأصغر
أنظر الصورة التالية

المصفوفات Matrices

ونتناول المواضيع كالتالي
ماهي المصفوفات
كيفية كتابة المصفوفات في برنامج الماتلاب
العمليات الحسابية في المصفوفات
مصفوفات خاصة
إستخراج عنصر محدد من المصفوفة
تغيير عنصر ما في المصفوفة

ماهي المصفوفة:
هي مجموعة من البيانات والتي يتم وضعها في صورة صفوف وأعمدة, وتأخذ الشكل التالي
وتستخدم المصفوفات في حل كثيرات الحدود Polynomials, وفي حل مجموعة من المعادلات, كما سيتم شرحه لاحقاً في هذا الإسبوع بإذن الله.

كيفية كتابة المصفوفات في برنامج الماتلاب:
يتم إدخال المصفوفة بكتابة عناصر الصف الأول, ثم الثاني وهكذا.
فمثلاً كتابة مصفوفة مثل التالية


ولكن قبل إدخال القيم التالية, على الجميع أن يعلم بأنه يتم كتابة عناصر الصف الأول, ويتم الفصل بين أرقام الصف الأول إما بفاصلة Comma (,) أو بعمل مسافة Space بين الأرقام, بعد إدخال قيم الصف الأول يتم فصل عناصر الصف الأول عن عناصر الصف الثاني ( الذي سيتم إدخال قيمه) إما بالضغط على مفتاح Enter أو بإستخدام الفاصلة المنقوطة Semicolon ( ; ), أنظر الصورة التالية

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

فما هي العمليات الأساسية التي تتم على المصفوفات؟
1- الجمع
2- الطرح
3- الضرب
4- القسم
5- المصفوفة الأسية
الجمع:
قبل البدء في الشروع ببدء إستخدام الماتلاب يجب أولاً أن نذكر شرط جمع مصفوفتين.
شرط جمع مصفوفتين:
لنفترض أن لدينا مصفوفتين A & B, فشرط جمعهما أن يكون كلاهما له نفس عدد الصفوف m, وكذلك نفس عدد الأعمدة n.
فمثلاً المصفوفتان التاليتان يمكن جمعهما لأنها يحملان نفس عدد الصفوف والأعمدة

كيف تتم عملية جمع مصفوفتين:
تتم عملية الجمع بجمع العنصر الأول للصف الأول مثلاً في المصفوفة الأولى وما يناظره في المصفوفة الثانية, وبالتالي نكون قد جمعنا العنصر الأول للصف الأول.
وبالتالي نكون قد جمعنا
1+7=8
جمع الصف الأول العنصر الثاني: نجمع العنصر الثاني للصف الأول في المصفوفو الأولى وما يناظره في المصفوفة الثانية, وبالتالي نكون قد جمعنا
2+8=10
ونستمر هكذا حتى إتمام كامل المصفوفة, ويمكن تلخيص العملية في الصورة التالية

الجمع في الماتلاب
يجب أولاً كتابة المصفوفتين A&B, كما تعلمنا سابقاً
ثم إستخدام رمز الجمع (+) للتتم عملية الجمع, أنظر الصورة التالية


طرح المصفوفات
فما هو شرط طرح المصفوفات؟
حقيقة هي نفس شرط الجمع, حيث يشترط أن تكون المصفوفات التي يتم جمعها أو طرحها لها نفس القوة
حيث m هي عدد الصفوف
وحيث n خي عدد الأعمدة
أنظر الصورة التالية

لنقم الآن بعمل نفس المثال على برنامج الماتلاب
أنظر الصورة التالية

ضرب المصفوفات

ما هو شرط ضرب المصفوفات؟
شرط ضرب أي مصفوفتين هو أن يكون عدد أعمدة المصفوفة الأولى n1 مساوياً لعدد الصفوف في المصفوفة الثانية m2
أنظر الصورة التالية

[LINE]hr[/LINE]
لنقوم الآن بإدخال نفس المثال على الماتلاب
أنظر الصورة التالية


قسمة المصفوفات

قد يستغرب البعض من وجود كلمة القسمة للمصفوفات, ولكن الحقيقة أنها موجودة ومستخدمة بكثيرة ولكننا لا ننتبه لوجودها, فبهذه القسمة نقوم بحل المعادلات والتي سيتم شرحها لاحقاً بإذن الله
وقبل أن أشرح لكم كيفية عمل القسمة, لابد من شرح كيفية حل المعادلات كثيرة الحدود
لنفترض أن لدينا معادلتان كالآتي

وكلتا المعادلتان يمكن حلهما ليكون الناتج
X=-2
Y=3
فكيف يتم ذلك؟
يمكن وضع المعادلتان في صورة مصفوفة كما في الشكل التالي

[LINE]hr[/LINE]
وهنا نذكر أن هنالك طريقتان لحل المعادلتان
1- طريقة الحذف
2- قسمة المصفوفات
وسأذكر سريعاً طريقة الحذف, أنظر الصورة التالية

أما الطريقة الثانية هي قسمة المصفوفات
لنعود إلى الصورة التالية مرة أخرى

نجد أنه يمكننا أن نضعها في الصيغة التالية

وبالتالي من أجل الحصول على X يجب قسمة A على B, كما في الصورة التالية

ولكن ماذا تعني من ناحية المصفوفات وليست الأعداد؟

وهذا ما يسمى قسمة المصفوفات
ولكن يشترط عند إيجاد inv أن تكون المصفوفة مربعة ( أي عدد الصفوف يساوي عدد الأعمدة)
وبالتالي يمكن إيجاد قيمة X & Y عن طريق وضع المعادلة في الصورة التالية, مع الأخذ في الإعتبار أن تتوفر شرط عملية الضرب بين المصفوفتين

فإذا قمنا بكتابة المعادلتين في الماتلاب كما في الصورة السابقة

وهنا أكون قد أتممت الجزء الخاص بقسمة المصفوفات



العمليات على المصفوفات والمتجهات

ما الفرق بين المتجهات والمصفوفات؟
المتجهات هي مصفوفة ولكن إما بعمود واحد Column Vector أو صف واحد Row Vector
فمثلاً الصورة التالية لمتجه صفي

وهذه صورة لمتجه عمودي

أما المصفوفة فهي التي يزيد عدد صفوفها وأعمدتها عن صف واحد أو عمود واحد
وسنتناول العمليات التي تتم على المتجهات أولاً ثم المصفوفات

ماهي العمليات الشائعة على المتجهات؟
1- طول المتجه
2- إضافة عنصر
3- إستبدال عنصر
4- عملية حذف عنصر
5- نداء عنصر
6- نداء عدد عناصر
7- إيجاد العنصر الأكبر
8- إيجاد العنصر الأصغر
9- إيجاد حاصل ضرب العناصر
هذه هي العمليات الشائعة في الماتلاب وسنتناول كل منها بالتفصيل بإذن الله
__________________
رد مع اقتباس
  #4  
قديم 01-04-2010, 04:51 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة


العمليات على المتجهات

لنقوم بتعريف متجه صفي لدى الماتلاب كما في الصورة التالية

والآن نقوم بالعملية الأولى وهي
طول المصفوفة

يمكن عمل نفس العملية على متجه عمودي
وننتقل الآن إلى العملية التالية

إضافة عنصر

لنقوم بوضع متجه عمودي في الماتلاب, كما في الصورة التالية

كما هو واضح, أن عدد العناصر الموجودة في هذا المتجه هو 10, وللتأكد قم بعمل الأمر length في نافذة الأوامر للماتلاب, أنظر الصورة التالية

لنقل أننا نريد إضافة الرقم 120 في الخانة الحادية عشرة, أي الخانة التالية للخانة العاشرة, أنظر الصورة التالية

ملاحظة: في المثال السابق تمت إضافة الرقم 120 إلى الخانة 11, فماذا إذا قمنا بإضافة رقم جديد ولكن في الخانة رقم 13, فماذا ستكون قيمة الخانة 12 التي لم يتم إضافة أي عنصر لها, أنظر الصورة التالية

وبهذا نكون قد شرحنا الجزء المتعلق بإضافة عنصر

إضافة أكثر من عنصر متتالي

لنفترض أننا نريد إضافة مجموعة من العناصر المتتالية في الخانات 11و 12 و 13 ويمكن بدلاً من إدخال كل رقم على حدى,كما في الصورة التالية

ولكن قد يبدوا ذلك مستنفذاً للوقت, إذا تم إدخال 100 رقم متتالي أو 1000 رقم, فما العمل؟
هنالك طريقة في الماتلاب تستخدم إذا أردت أن تضيف مجموعة من الأرقام المتتالية
فمثلاً عندما نريد أن نذكر مجموعة من الأرقام المتتالية من 1 إلى 10 نكتب التالي
1:10
وعندما نريد كتابة مجموعة من الأرقام المتتالية من 10 إلى 1200 نكتب
10:1200
وبالتالي إذا أردنا كتابة مجموعة من الأرقام المتتالية من 11 إلى 13 كما في مثالنا نكتب
11:13
وبالتالي تكون الكتابة في الماتلاب كما في الصورة التالية

وبذلك نكون قد شرحنا كيفية إضافة مجموعة من العناصر المتتالية
إستبدال عنصر

عملية إستبدال عنصر تتطلب عدة شروط
1- أن يكون العنصر موجوداً بالفعل
2- أن تحدد مكان هذا العنصر
ففي المثال التالي أردنا أن تستبدل العنصر الثالث بدلاً من الرقم 3 إلى الرقم 15
كل ما علينا فعله هو كتابة التالي
A(3)=15
حيث A هي المتجه الذي يحتوى العنصر الذي تريد تغييره

وعلى هذا المنوال تستطيع أن تغير أي عنصر في المتجه
وبهذا نكون قد إنتهينا من شرح عملية إستبدال عنصر واحد في المتجه

إستبدال مجموعة عناصر متتالية

كما شرحنا كيفية إضافة مجموعة عناصر متتالية, سنقوم بإستبدال مجموعة عناصر متتالية كما في الصورة التالية

وبهذا نكون قد إنتهينا من شرح عملية إستبدال مجموعة عناصر متتالية
حذف عنصر من المتجه

لتقوم بحذف عنصر من المتجه يجب أن يتوفر الشرطان التاليان
1- تحديد العنصر الذي تريد حذفه
2- وضع أقواص مربعة Square Brackets خالية من أي رقم
فالمثال التالي يوضح أننا نريد حذف العنصر في الخانة العاشرة, أنظر الصورة التالية

وبهذا نكون قد أتممنا شرح الجزء المتعلق بحذف عنصر وحيد من المتجه

حذف مجموعة عناصر متتالية

لحذف مجموعة عناصر متتالية, أنظر الصورة التالية

وبهذا أكون قد أتممت شرح الجزء المتعلق بحذف مجموعة عناصر متتالية

نداء عنصر

نداء عنصر المقصود به هو الحصول على قيمة العنصر في أي مكان من المتجه
ويمكن ذلك من خلال كتابة التالي


وبهذا نكون قد أتممنا شرح نداء عنصر
نداء أكثر من عنصر

للحصول على قيم مجموعة عناصر محددة من متجه, قم بعمل الآتي على نافذة الأوامر Command Window

وبهذا نكون قد شرحنا الجزء الخاص بنداء أكثر من عنصر

إيجاد العنصر الأكبر في المتجه

لإيجاد العنصر الأكبر في متجه, يتم إستخدام الأمر max, حيث يمكن إيتخدامه في الماتلاب بالشكل التالي

وبهذا نكون قد إنتهاينا من شرح كيفية إيجاد الرقم الأكبر في المتجه
إيجاد العنصر الأصغر في المتجه

لإيجاد العنصر الأصغر في المتجه, يجب إستخدام الأمر min وهي إختصار لدى الماتلاب وهي إختصار لكلمة minimum أي الأقل
ولإيجاد العدد الأصغر داخل المتجه في الماتلاب قم بعمل الآتي


إيجاد مجموع عناصر المتجه
يمكن جمع جميع عناصر المتجه, بإستخدام الأمر sum حيث أن هذا الأمر لابد أن يأخذ طريقة في تنفيذه فيجب أن ينفذ بالصورة التالية

وفالنقوم بعمل مثال في الماتلاب الآن


إيجاد حاصل ضرب العناصر في المتجه
يوفر الماتلاب خاصية ضرب عناصر المتجه, وذلك بإستخدام الأمر prod وهو إختصار product
ويجب أن يأخذ هذا الأمر الصورة التالية في كتابته

والآن لنأخذ مثالاً تطبيقياً في الماتلاب
__________________
رد مع اقتباس
  #5  
قديم 01-04-2010, 04:53 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة

العمليات على المصفوفات
أولاً يجب تعريف أنواع المصفوفات, فهنالك نوعان من المصفوفات
1- مصفوفة غير منتظمة
2- مصفوفة منتظمة أو مربعة
أما العمليات التي سوف تتم على المصفوفات فهي
1- طول المتجه
2- إضافة عنصر
3- إستبدال عنصر
4- عملية حذف صف أو عمود بأكمله
5- نداء عنصر
6- نداء عدد عناصر
7- إيجاد العنصر الأكبر
8- إيجاد العنصر الأصغر
9- إيجاد مجموع عناصر المصفوفة
10- إيجاد حاصل ضرب العناصر
11- إيجاد قطر المصفوفة Diagonal
12- المصفوفة السحرية
وهذه هي العمليات الشائع إستخدامها في الماتلاب
إيجاد حجم المصفوفة
لإيجاد حجم المصفوفة أو دعونا نقول لإيجاد عدد الصفوف والأعمدة لمصفوفة, يجب إستخدام الأمر size, حيث لا يصلح إستخدام الأمر length, فأمر length يستخدم في المتجهات وليس في المصفوفات, ولتوضيح الأمر دعونا نقوم بعمل مثال مبسط لشرح هذا الأمر, أولاً لنقوم بعمل مصفوفة غير منتظمة ( أي أن عدد الصفوف لا يساوي عدد الأعمدة) كما في الشكل التالي

والآ لنقوم بكتابة الأمر size لمعرفة حجم المصفوفة

أما إذا أردنا أن نعرف عدد الصفوف فقط
نقوم بعمل الآتي

أما إذا أردنا أن نعرف عدد الأعمدة فقط
نقوم بكتابة التالي



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

لنفترض أننا نريد أن نقوم بوضع رقم 42 في الصف الثاني والعمود الخامس, نقوم بكتابة التالي في الماتلاب

كما تلاحظ فإن الصف الأول والصف الثالث للعمود الخامس, لم يتم وضع قيم بهما, لذلك قام الماتلاب بإفتراضهما صفراً.
فماذا إذا أردنا إضافة عدة عناصر في المصفوفة؟ يمكن إيضاح ذلك بإستخدام المثال التالي
لنقوم أننا نريد إضافة الأعداد31 و 54 و 13 و 11 في الصف الرابع والعمود الأول الثاني والثالث و الرابع على التوالي, يمكن ذلك من خلال الماتلاب بالشكل التالي


إستبدال عنصر
قد تكون هذه العملية نادراً ما يتم إستخدامها, ولكنها هامة جداً, حيث توفر إمكانية إستبدال عنصر أو عدة عناصر داخل المصفوفة, ولتوضيح هذه الخاصية, سنقوم بتعريف مصفوفة كما ذكرنا مسبقاً

ولنقوم بإستبدال العنصر في الصف الثالث والعمود الأول إلى الرقم صفر

وإذا أردنا إستبدال عدة عناصر, يمكن ذلك بعمل مثال بسيط, لنقل أننا نريد أن نستبدل الصف الأول والثاني والعمودين من الأول إلى الثالث بقيمة صفر



حذف أكثر من عنصر
لايقوم الماتلاب بعملية حذف لعنصر واحد فقط في مصفوفة, حيث أنه من غير المعقول حذف عنصر من داخل المصفوفة, وبقية الصف والعمود بهم قيم, ولكن إذا أردت أن تقوم بحذف صف كامل أو عمود كامل فيمكن ذلك بعمل التالي
نقوم أولاً بعمل مصفوفة للعمل عليها



لنقل اننا نريد حذف الصف الثالث كله



ولحذف العمود الرابع كله, قم بعمل التالي



نداء عنصر
عملية نداء عنصر من أكثر العمليات هامة جداً داخل الماتلاب, أي أنه نود الحصول على عنصر وحيد من المصفوفة, وذلك بذكر رقم الصف ورقم العمود الذي به هذا العنصر, ولتوضيح هذا الأمر, نقوم بعمل مثال بسيط, معتمدين على نفس المصفوفة التي تم ذكرها في المثال السابق



لنقل اننا نريد العنصر في الصف الأول والعمود الثالث



ولنداء أكثر من عنصر, نقوم مثلاً بنداء الصف الثاني ومن العمود الثاني إلى الرابع



هذا في حالة أننا نعرف حجم المصفوفة, ولكن ماذا إذا لم نكن نعرف حجمها, ونريد أن نحصل على العنصر الأخير مثلاً من الصف الثاني



وسنقوم بعد عملية الشرح تماماً بالعديد والعديد من الأمثلة التي تزيد من سرعتك ومهارتك في الماتلاب


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



ولنقم بكتابة الأمر max كما ذكرنا مسبقاً



كما تلاحظ فلقد قام الماتلاب بإختيار العنصر الأكبر من كل عمود, ولإختيار الرقم الأكبر بينهم يجب كتابة نفس الأمر للناتج الخارج, وبالتالي نحصل على الرقم الأكبر في المصفوفة ككل




إيجاد العنصر الأصغر
هذه العملية أيضاً كثيرة الإستخدام في التطبيقات المختلفة, وهي نفس الخطوات السابق ذكرها في إيجاد العنصر الأكبر ولكن يتم إستخدام الأمر min
وإليكم المثال التالي


إيجاد مجموع العناصر
لإيجاد المجموع كما تعلمنا نقوم بإستخدام الأمر sum ولكن عملية الجمع يقوم الماتلاب بإيجاد جمع كل عمود على حدى وتوضع في صورة متجه, كما في المثال التالي


إيجاد حاصل ضرب العناصر
يمكن ضرب عناصر المصفوفة, ولكن في الماتلاب عملية الضرب تكون لكل عمود على حدى ويتم وضع الناتج في متجه, وإذا تم إستخدام الأمر مرة أخرى يتم ضرب عناصر المتجه جميعها, لينتج حاصل الضرب المصفوفة جميعها, أنظر المثال التالي
[LINE]hr[/LINE]

إيجاد قطر المصفوفة
هذه العملية قد تكون ذات إستخدام أكاديمي, ولكنها هامة جداً, وخصوصاً أن تلك الخاصية تخدم المصفوفة المربعة ( عدد الصفوف يساوي عدد الأعمدة), ويتم إستخدام الأمر diag, وهذا مثال لذلك
[LINE]hr[/LINE]

[LINE]hr[/LINE]
يمكننا الآن عمل العديد من العمليات على قطر المصفوفة, فمثلاً نريد الحصول على عملية الجمع لعناصر المصفوفة
[LINE]hr[/LINE]

[LINE]hr[/LINE]
أو أننا نريد الحصول على حاصل ضرب تلك العناصر
[LINE]hr[/LINE]

المصفوفة السحرية
حقاً كلمة قد يستغربها البعض, ولكنها حقيقة فحقاً إنها سحرية, حيث أن الماتلاب لديه القدرة على إنتاج مصفوفة مربعة يقوم الماتلاب بإختيار أرقامها بشكل عشوائي, كل ما عليك إلا إستخدام الأمر magic وتحديد N حيث انها تمثل عدد الصفوف المساوي لعدد الأعمدة, هذه المصفوفة مهمة جداً وخصوصاً في عمليات إختبار الأنظمة, كما سنتحدث لاحقاً بإذن الله في الشبكات العصبية.
ولنأخذ مثالاً مبسطاً
[LINE]hr[/LINE]

[LINE]hr[/LINE
M-File
هي وسيلة لإدخال الأوامر ولكن ليس من خلال نافذة الأوامر, ولكن ماذا قد يختلف في هذه الوسيلة الجديدة في إدخال الأوامر؟
1- في عملية إدخال الأوامر التي كنا نستخدمها, إذا أردنا تعديل عنصر أو أكثر كان يجب إعادة إدخال الأمر من جديد.
2- إذا وجد خطأ, فيجب كتابة الأمر من جديد
3- إذا كتبنا برنامج كبير, وأردنا إعادة العملية مرة أخرى يجب إدخال جميع الأوامر من جديد وبنفس الترتيب.
4- إذا حدث خطأ في ترتيب الأوامر لهذا البرنامج الكبير ستقوم بإعادة الإدخال الأوامر من البداية مرة إخرى.
5- يصعب عمل عملية تصحيح للأخطاء Debugging
وهذا بالطبع يستغرق وقتاً كبيراً هذا بالإضافة إلى الملل الذي يحدث للمستخدم
وطبعاً حلاً لهذه المشكلة, تم عمل بما يسمى M-File والتي تعطي القدرة على كتابة البرنامج كاملاً أولاً بدون تشغيل, وبعد الإنتهاء منه يتم تشغيله, هذه الخاصية تعطي القدرة على تعديل القيّم دون الحاجة إلى كتابتها مرة أخرى, أو إعادة إدخال الأوامر التي تعتمد على هذا الأمر.
فكيف يتم تشغيل تلك الخاصية؟ إتبع الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي ستظهر نافذه جديدة, تأخذ الشكل التالي
[LINE]hr[/LINE]

[
نافذة M-File
سنقوم الآن بالتعرف على نافذة M-File, أنظر الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
ولكن عند الضغط على زر التشغيل, سيطالبك الماتلاب بحفظ البرنامج, ولكن يشترط الآتي عند حفظ البرنامج
1- أن لايبدأ بأرقام
2- أن لا يكون أمراً معرفاً في الماتلاب
3- أن لا يحتوي الإسم على مسافات فاصلة
4- أن لاتحتوي على رموز خاصة مثل + , - , & , *
يجب مراعاة تلك الشروط وإلا لن يقوم الماتلاب بتنفيذ البرنامج
فالنقم بتنفيذ المثال المكتوب الآن في النافذة السابقة
1- يتم الضغط على زر التشغيل كما هو واضح في الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
2- سيطالبنا الماتلاب بحفظ البرنامج أولاً, ولنسميه training1
[LINE]hr[/LINE]

[LINE]hr[/LINE]
3- ستظهر القيم في كلاً من Command Window and Workspace
[LINE]hr[/LINE]

[LINE]hr[/LINE]
4- لنعود إلى M-File ونقوم بتغيير بعض القيم للمصفوفة, كما في الشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
5- سنقوم الآن بتشغيل البرنامج, وسيقوم الماتلاب الآن بالحفظ تلقائياً دون الحاجة لإعادة التسمية, ثم شاهد نافذة الأوامر Command Window
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وكما تلاحظ فإنه في كل عملية تحديث للبرنامج ستظل قيم البرنامج القديم موجودة, فحلاً لهذه المشكلة, يتم وضع الأمر CLC في أول كل برنامج, وهذا يكون مبدأ في جميع البرامج التي نقوم بعملها لابد من أن تبدأ بهذا الأمر.
ودعونا نقوم بمثال يوضح لنا ذلك


سنقوم الآن بكتابة الـــ M-File
[LINE]hr[/LINE]

[LINE]hr[/LINE]
سنقوم الآن بتعديل المثال, وحتى نتأكد أن أمر CLC يعمل, ستختفي القيم من Command Window وتظهر القيم الجديدة
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبهذا نتأكد من أن الأمر CLC يعمل بكفاءة
ولكن دعونا نشاهد نافذة Workspace والتي تحتوى على قيم A,B,C
[LINE]hr[/LINE]

[LINE]hr[/LINE]
لنقم بتعديل بسيط في البرنامج عن طريق تغيير الرموز فقط من A,B,C إلى D,E,F ومشاهدة النافذة Workspace
[LINE]hr[/LINE]

[LINE]hr[/LINE]
ولتلافي هذه المشكلة, يجب وضع أمر Clear بعد الأمر clc بحيث يقوم بمسح أي قيمة سابقة من أي برنامج آخر في Workspace , ويجب تثبيت هذا الأمر أيضاً في جميع البرامج والتي سيتم عملها لاحقاً بإذن الله.
وسنقوم الآن بتنفيذ نفس البرنامج ولكن بعد وضع الأمر clear, وستلاحظ الفرق الشاسع في الماتلاب الآن
[LINE]hr[/LINE]

[LINE]hr[/LINE


__________________
رد مع اقتباس
  #6  
قديم 01-04-2010, 04:55 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة

بعض الأوامر الهامة
قبل الإنتقال إلى الرسم plotting لابد من أخذ بعض الأوامر الهامة, والتي سيتم تداولها بشكل مستمر بإذن الله
[LINE]hr[/LINE]
linspace
هذا الأمر كثير الإستخدام, والذي يستخدم في عملية إنتاج متجه, عن طريق تحديد الرقم الأصغر والرقم الأكبر, وعدد النقط المرغوبة بين هذين الرقمين
ويأخذ الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
فالمثال التالي يوضح كيفية إستخدام 10 نقاط من بين الرقمين 5 و 15
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وهذا ما يسمى النظام العشوائي للماتلاب Randomization System in Matlab
والميزة في هذا النظام هو أن المتجه نظام عشوائي متزايد
[LINE]hr[/LINE]
randint
هذا الأمر من ضمن الأوامر والتي تنشأ نظام عشوائي للأرقم, ولكن ليس نظام نظام عدد صحيح وليس على هيئة كسور مثل الأمر السابق, كما أن نظام الأرقام به ليس تزايدياً أو تناقصياً بل عشوائياً
ويأخذ الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وهذا مثال بسيط بإستخدام هذا الأمر على الماتلاب
[LINE]hr[/LINE]

[LINE]hr[/LINE]
Input
هذا الأمر هام جداً في الماتلاب, حيث يقوم المستخدم من خلال إستخدامه يجعل الماتلاب يسأله عن متجه أو مصفوفة, أو حتى حروف وأسماء وذلك تبعاً لما يقوم المستخدم بتعريفه
فمثلاً إذا أردنا الماتلاب يطالبك بإدخال سنك, سنقوم بعمل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وإذا أردنا أن نعرف للماتلاب بأن ما سيتم إدخاله هو إسم وليس رقم, يتم كتابة البرنامج بالشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE
لنستكمل الأوامر الهامة
أولاً ما الفرق بين String and Character؟
string هو حرف أو كلمة في الماتلاب
character هو عبارة عن رقم أو مجموعة من الآرقام
وهنالك أمر يقوم بتحويل string to Character والعكس كذلك
وهما
num2str
str2num
ولكن فيما يفيدوا هذه الأوامر
سنقوم بمثال بسيط حتى تفهم المقصود من هذه الأمور, سنقوم بإستخدام الأمر input في وضعية string وسنقوم بإدخال أرقام, ستبدأ تستغرب الآن, فهل الماتلاب حتى بعد إدخالي الرقم سيتعرف عليها كأنها أرقام أم أي شئ غير ذلك, شاهد الصورة التالية







سنقوم الآن بإستخدام str2num لتحويل string إلى character أو رقم, شاهد الصورة التالية







ماذا بخصوص الأمر الثاني num2str
يستخدم هذا الأمر في تحويل الأرقام إلى string كتعريف لدى الماتلاب, ولكنه لا يغير من شكله, فالمثال التالي طلب منا إدخال الإسم والسن, ثم سنضع الإسم والسن في متجه, ولكن يجب أن نراعي كما ذكرنا مسبقاً أن المتجه إما يحتوي على أرقام أو string فقط وليس كلاهما







والآن نحن على إتم إستعداد للبدء في الجزء المتعلق بالرسم الثنائي والثلاثي الأبعاد


الرسم ثنائي الأبعاد 2D Plotting
المقصود بالرسم ثنائي الأبعاد هو ان تكون العلاقة التي تحكم عملية الرسم تكون بين متغيرين فقط أحدهما يسمى independent والآخر يسمى dependent
فما المقصود بـــ independent Variable أي المتغير المستقل أي أن قيمه لا تحكمها علاقة
بينما dependent Variable أي المتغير المُعتمد حيث يعتمد قيمه على قيم المتغير المستقل
الآن وبعد شرح هذين العنصرين الهامين, سنقوم بشرح الأمر plot حيث يأخذ الصورة التالية





وهذا مثال بسيط لكيفية رسم sine Wave





وتلاحظ أننا قد إخترنا 10 نقاط فقط لرسم Sine Wave , وهذا عدد قليل لرسم Sine Wave وتلاحظ ظهور الرسمة بالشكل التالي





وحلاً لهذه المشكلة, لابد من زيادة عدد النقاط داخل المتجه, كما في الشكل التالي





وستلاحظ أن الرسمة قد تحسنت كثيراً





وسنأخذ في الدرس القادم كيفية وضع مسميات حول محور السينات X-Axis ومحور الصادات Y-Axis وعنوان للرسمة,ووضع شبكة على الرسمة ,وكيفية تغيير لون الرسمة, وكذلك وضع أكثر من رسمة فوق بعضهما, وكيفية عمل كل رسمة في نافذة منفصلة, وكيفية إنشاء عدة رسومات منفصلة في نافذة واحدة بإذن الله



إضافة خصائص إلى الرسومات داخل الماتلاب
في بعض الأحيان يكون من الضروري جداً تغيير بعض الخواص لدى الرسومات التي نحصل عليها مثل تغيير الألوان, وتغيير الرسمة من خطوط متصلة إلى نجوم ونقاك وغيرها, وهذه هي مجموعة الخصائص التي تتم من خلال الماتلاب
[LINE]hr[/LINE]

[LINE]hr[/LINE]
فكيف يتم وضع تلك الخصائص داخل الماتلاب, تكون هذه الخصائص متضمنة في الأمر plot حيث تأخذ الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
إعتماداً على المثال السابق أخذه سنقوم بتعديل بعض الخصائص
سنقوم مثلاً بتغيير لون الخط إلى الأحمر
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي نحصل على الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
ولنقم الآن بإضافة خاصية جديدة بأن يكون الخط ليس خطاً متصل وإنما عبارة عن نجوم
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي نحصل على الشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وإذا أردنا أن نحصل على نجوم حمراء ( أي دمج الخاصيتين معاً)
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي نحصل على الشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وهنا نكون قد شرحنا خصائص الرسومات داخل الماتلاب


عملية وضع شبكة على الرسم
يقوم الماتلاب بوضع شبكة على الرسم, بحيث يكون من السهل تحديد القيم من على الرسم
حيث تأخذ الأمر grid بعد الأمر plot







وسيكون شكل الرسم كالتالي







الآن سنقوم بعمل معادلة أخر بالإضافة إلى المعادلة المذكورة بحيث يكون لدينا رسمتان, بحيث تأخذ الشكل التالي







ولكن عند تشغيل البرنامج, سيقوم الماتلاب بإظهار الرسمة الأخيرة فقط, فكيف يتم إظهار الرسمتين, يتم ذلك بإستخدام الأمر Hold on قبل الأمر plot لكي يتم وضع الرسمتين في نافذة واحدة, وفي نهاية الأمر يتم وضع الأمر hold off, أنظر الصورة التالية







وبالتالي تكون الرسمتان كالتالي





علمية وضع الرسومات في نوافذ منفصلة
سنقوم الآن بدلاً من وضع الرسومات في نفس النافذة سنقوم بوضعها في نوافذ مختلفة
وعلى نحتاج إلى الأمر figure والذي يقوم بفتح نافذة فارغة إذا تم وضعه منفصلاً, جرب ذلك في نافذة الأوامر ستلاحظ ان الماتلاب قام بإظهار نافذة رمادية اللون فارغة شاهد الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
حيث وجود تلك النافذة يعني انه سيتم تنفيذ أمر الرسم plot الذي بعد أمر figure علماً أنه بعد كل أمر figure يتم وضع الخصائص التي تختص بهذه الرسمة مثل أمر grid الذي سبق شرحه.
وهذا مثال بسيط على ذلك
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وستحصل على نافذيتين بهما كلتا الرسمتين
[LINE]hr[/LINE]

[LINE]hr[/LINE]

[LINE]hr[/LINE]
والآن قم بتشغيل البرنامج مرة أخرى, ستلاحظ أن عدد النوافذ قد زاد نافذة واحدة, فكيف حدث هذا؟
يقوم الماتلاب برسم أول دالة على النافذة الأخيرة التي تم رسم الدالة الثانية بها, ثم يقوم برسم الدالة الثانية في نافذة جديدة بسبب وجود الأمر figure ولحل هذه المشكلة قم بإستخدام الأمر close all بعد الأمر clear بحيث يتم إغلاق أي نوافذ كانت مفتوحة قبل ذلك عند تشغيل البرنامج كل مرة وبالتالي سيكون هنالك ثلاثة أوامر لابد من إستخدامها في كل مرة يتم عمل أي برنامج وهم
clc
clear
close all
وهذا هو المثال الذي تم عمله منذ قليل بعد التعديل
[LINE]hr[/LINE]

[LINE]hr[/LINE]



إنشاء رسومات منفصلة في نافذة واحدة
أخذنا أننا بإمكاننا أن نقوم بعمل أكثر من رسمة على نفس النافذة, ولكن هل تتخيل أن نقوم بوضع عدة رسومات منفصلة في نافذة واحدة, في الحقيقة يمكن ذلك بإستخدام الأمر subplot قبل كل أمر plot
يعمل الأمر subplot من خلال تحديد عدد الرسومات التي ستقوم بإظهارها, حيث يقوم الأمرsubplot على وضع الصور وكأنها مصفوفة أو متجه, ويجب عند إستخدام الأمر معرفة عدد الرسومات التي ستظهرها وكيفية وضعها, ويفضل إستخدام الشكل التالية لتحديد الأماكن التي ستقوم بوضع الرسومات بها





سنأخذ مثالاً, لنقول أن لدينا معادلات يجب رسمهما, وسنقوم بوضعهما بجوار بعضهما كما في الشكل التالي





وبالتالي الرسمتان سيكون وكأنهما متجه عدد صفوفها 1 وعدد الأعمدة 2 , والرسمة الأولى تأخذ الخانة الأولى , والرسمة الثانية ستأخذ الخانة الثانية
هذا ما يجب تحديده بالتفصيل عند إستخدام الأمر subplot
ثم نستخدم الصورة العامة لأمر subplot والتي تكون كالتالي

ولرسم الشكل الأول لابد من كتابة الأمر في الصورة التالية





ولرسم الشكل الثاني لابد من كتابة الأمر في الصورة التالية





والأن سنقوم بوضع البرنامج كاملاً ليكون المعنى قد وضح تماماً





وستكون الرسمة النهائية كما في الشكل التالي





ملاحظة إذا كانت الرسمة تشغل أكثر من خانة يتم إستخدام الأقواس المربعة, وتأخذ الشكل التالي
[ أرقام جميع الخانات التي تشغلها الرسمة]
وسنقوم بإعطاء مثال
نريد أن يكون الشكل الخارج على شكل الصورة التالية





فإن عدد الصفوف 3 وعدد الأعمدة 3 وأرقام الخانات التي تشغلها الرسمة الأولى 1 و2 و3 و4 و5 و6 على التوالي, وأرقام الخانات التي تشغل الرسمة الثانية 7 وأرقام الخانات التي تشغل الرسمة الثالثة هي 9
والبرنامج يكون بالشكل التالي





وستكون النتيجة كالتالي





تسمية المحاور
سنقوم الآن بتنفيذ الجزء قبل الأخير من الدورة وهو تمية المحاور, فمثلاً إذا أردنا أن نقوم بتسمية محور السينات X-Axis نقوم بإستخدام الأمر xlabel وإذا أردنا أن نقوم بتسمية محور الصادات نقوم بإستخدام الأمر ylabel حيث يأخذ كلا الأمرين صورة واحدة وهي كالتالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
نفس الشئ يتم تطبيقه على محور الصادات ylabel
ولنقوم الآن بعمل مثال تطبيقي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي نحصل على الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]

وضع عنوان في أعلى الرسمة
يمكن وضع عنوان أعلى كل رسمة وذلك من خلال الأمر title
حيث يكون هذا الأمر بالشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالرجوع إلى المثال السابق ووضع التعديلات عليه كما هو موضح
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي نحصل على الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE
وضع نص على نقطة أو أكثر داخل الرسم
يمكن إضافة نص على نقطة أو أكثر على الرسم, وذلك بإستخدام الأمر text ويأخذ الصورة التالية

وسنأخذ مثالاً بسيطاً في كيفية إيجاد الرقم الأكبر, ثم وضع دائرة حمراء حول النقطة العظمى ووضع كلمة maximum point
ولكن دعونا نقوم بشرح الأمر الهام find هذا الأمر يقوم بإيجاد مكان العنصر داخل المتجه بمجرد تحديد خصائص هذا العنصر, فمثلاً سنقوم بعمل دالة وسنبحث على العنصر الأكبر بينها كما في البرنامج التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وعند تشغيل البرنامج, نجد القيم كالتالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي إذا أردنا الحصول على قيمة X عند القيمة العظمى للـــ Y, سنقوم بعمل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وكما تلاحظ فإن قيمة X والتي تعطي القيمة العظمى Y تظهر في workspace, أنظر الصورة التالية
[LINE]hr[/LINE]

[LINE]hr[/LINE]
والآن سنقوم بتطبيق المثال ووضع كلمة النقظة العظمى عليها
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي ستظهر الرسمة كالتالي
[LINE]hr[/LINE]

__________________
رد مع اقتباس
  #7  
قديم 01-04-2010, 04:58 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة


الأمر legend
يستخدم هذا الأمر في وضع دليل على صفحة الرسم ليبين ماذا يعني كل لون على الرسم, فمثلاً سنقوم بوضع الأمر legend في المثال التالي علماً أن هذا الأمر لابد من أن يأخذ الصورة التالية

ويمكن كتابة البرنامج التالي على الماتلاب
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي ستجد الناتج كالتالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
كما ترى فإن الأمر legend يعتمد على عدد العلاقات المرسومة داخل الرسم, فمثلاً المثال الذي سبق أخذه كان يستخدم في رسم علاقة ثم إيجاد النقطة العظمى أي أن عدد العلاقات المرسومة إثنتان, وبالتالي تتم برمجته بالشكل التالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
وبالتالي تكون الرسمة كالتالي
[LINE]hr[/LINE]

[LINE]hr[/LINE]
ويجب مراعاة أن يتم إستخدام الأمر legend بعد الأمر plot وليس العكس


فتح نافذة جديدة وتحديد دقتها
يعطي الماتلاب القدرة على فتح نافذة جديدة وتحديد القيم العظمى والصغرى لمحور السينات وكذلك بالنسبة لمحور الصادات, وذلك بإستخدام الأمر axis, والذي يأخذ الصورة التالية في كتابته

مثال تطبيقي
قم بفتح نافذة للرسم بحيث تكون بالمواصفات التالية
1- أقل قيمة لمحور السينات هي 10-
2- أكبر قيمة لمحور السينات هي 10
3- أقل قيمة لمحور الصادات 10-
4- أكبر قيمة لمحور الصادات 10
خطوات الحل
في نافذة الأوامر قم بإدخال التالي

وستظهر لك النافذة التالية

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



كيفية إدخال النقاط من خلال الماوس
تعلمنا أنه يمكننا إدخال القيم بإستخدام المتجهات أو المصفوفات, ولكن يوفر الماتلاب قدرة في إدخال النقاط من خلال الرسم بإستخدام الماوس, ونظراً لأننا نقوم بإختيار النقاط من على الرسم فهذا يعني أن النقاط التي يتم إختيارها يتم تمثيلها في قيمة في محور السينات وقيمة في محور الصادات, ويتم وضع قيم محاور السينات والصادات في صورة متجه.
يستخدم الأمر ginput في عملية إدخال النقاط بإستخدام الماوس, ويتم كتابة ذلك الأمر في الصورة التالية

أما إذا أردنا إدخال عدد لا نهائي من النقاط يمكن ذلك بعدم ذكر عدد نقاط الإدخال, كما في الشكل التالي

وبعد الإنهاء من إدخال النقاط كل ما عليك هو الضغط على مفتاح Enter في لوحة المفاتيح.
مثال تطبيقي
سنقوم بفتح نافذة للرسم بها شبكة, وأقل قيمة لمحور السينات هي صفر وأكبر قيمة لمحور السينات هي 10 وكذلك بالنسبة لمحور الصادات, ثم إدخال عدد كبير من النقاط على الرسم بإستخدام الأمر ginput, وهذه النقاط يتم طباعتها على شكل دوائر حمراء.
ويتم كتابة الأوامر بالشكل التالي

وستظهر لك نافذة لإدخال النقاط , وبعد إتمام عملية الإدخال إضغط على Enter لإتمام الإدخال وستظهر لك النافذة التالية

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


الرسم ثلاثي الأبعاد
كما تعلمنا أن الرسم ثلاثي الأبعاد يعتمد على ثلاثة محاور لرسمها, محور X , Y & Z , وأن كلاً من X & Y يمثلان المستوى الأفقي, وأن المحور Z يمثل الإرتفاع, ولكن تلك القيم هي قيم النقاط الموجودة المحاور, ولكن حتى يتم رسم أي نقطة في المستوى الأفقي يجب أن نقوم تعريف ذلك للماتلاب وذلك بإستخدام الأمر meshgrid حيث يقوم الماتلاب بإنتاج مصفوفة يتم تكرار قيم محور السينات X-Axis بنفس طول محور الصادات Y-Axis, كما يقوم بتكرار قيم محور الصادات Y-Axis بنفس طول قيم السينات X-Axis, وبهذا تكون المصفوفة المتكونة هي المستوى الأفقي كما هو واضح بالرسم التالي.

علما أن الأمر meshgrid يأخذ الصورة التالية في كتابته

وبعد إستخدام الأمر meshgrid يتم إستخدام الأمر mesh والذي يستخدم كبديل الأمر plot ولكن في الرسم ثلاثي الأبعاد
مثال تطبيقي
نقوم في هذا المثال بتعريف قيم محور السينات X-Axis وسنقوم بوضع المعادلة التي تصف محور الصادات وعلاقته بمحور السينات, أخيراً وليس آخراً نقوم بوضع العلاقة التي تربط بين محور السينات والصادات.

وبالتالي تكون الرسمة الناتجة كالتالي

كما ترى فإن الرسمة الناتجة عبارة عن شبكة تعتمد مجموعة النقاط لكلاً من X & Y فإذا أكثرنا عدد نقاط X وبالتالي تزداد قيمة Y كذلك

وبالتالي فإن الرسمة الناتجة تكون كالتالي

أعتقد أنك تلاحظ الفرق الآن
ملاحظة كلما زادت عدد النقاط كلما زاد الوقت المستغرق لإظهار النتائج في الماتلاب


ملخص للأمثلة التطبيقية التي سيتم أخذها بإذن الله.
1- كيفية إدخال ثلاث معادلات وإيجاد قيم المتغيرات
2- Curve Fitting
3- نقل المحاور
4- إيجاد نقط تقاطع الرسمة مع محور السينات ووضع علامة عليها
5- إختيار نقطتان من على الرسم, وإيجاد المساحة تحت المنحنى بين تلك النقطتين

وسنتناول الآن المثال الأول

EVAL
قبل البدء بالتطبيق الأول, لابد من ذكر أمر هام وهو الأمر eval والذي له هدف أكثر من رائع سيتضح بمثال, لنقل أن لدينا معادلة جيب الزاوية Sine Wave ولكن تم وضعها في الصورة التالية في الماتلاب

وللتأكد أنها في صورة string يجب الذهاب إلى الــ Workspace

ولرسم موجة جيب الزاوية لابد من تعريف قيم t والتعويض فيها, ولكن كما ترون يصعب التعويض في المعادلة بسبب وجودها بين قوسين, وتلك الأقواس هي بمثابة حاجز للتعويض, وهنا يجب أن نخترق ذلك الحاجز وذلك بإستخدام الأمر eval, حيث يعمل الأمر على البحث عن المعادلة بين الأقواس, ثم يبحث عن القيم التي سوف يتم تعويضها في تلك المعادلة, وسوف يتم كتابة البرنامج كالتالي في الماتلاب

وبالتالي ستظهر النتيجة كالتالي

ونحن الآن على أتم إستعداد لتنفيذ التطبيق الأول

حل ثلاثة معادلات
كما تعلمنا أن الماتلاب له القدرة على إدخال حل المعادلات, فمثلاً المعادلتان التاليتين

ويمكن كتابة ذلك على الماتلاب كالتالي

وبالتالي نجد النتائج كالتالي

ولكن هذا يشترط أن يتم إدخال المعاملات coefficients للمعادلتين, وهذا بالتالي يتطلب التمحيص والتدقيق في كل معادلة, فإذا كثرت المعادلات إزداد الوقت المستغرق في البحث, فتسهيلاً للمستخدم يجب عمل برنامج لإدخال المعادلات بشكل كام, فمثلاً سنقوم بعمل برنامج لحل ثلاثة معادلات

ولحل هذه المعادلات يجب وضعها في الصورة التالية

ولذلك يجب التفكير كالتالي, عندما يقوم المستخدم بإدخال المعادلات الثلاثة, يجب على الماتلاب أن يحدد قيم المعاملات أولاً لإيجاد حل قيم المتغيرات, وحلاً لهذه المشكلة سنجعل الماتلاب يبحث عن علامة "="
لكل معادلة, ثم سنقوم بتعريف الجزء الذي يحتوى على المتغيرات لكل معادلة, ثم سنقوم بفرض أن
x=1 , y=0,z=0
ومنها نحصل على قيم معاملات x في المعادلات الثلاثة
ثم سنفرض أن x=0, y=1, z=0
ومنها نحصل على قيم معاملات y في المعادلات الثلاثة
ثم سنفرض أن x=0,y=0,z=1
ومنها نحصل على قيم معاملات z في المعادلات الثلاثة
وبالتالي نكون قد حصلنا على معاملات المعادلات الثلاثة, لم يتبقى سوى إيجاد قيم معاملات D وسوف يتم توضيح ذلك عند كتابة البرنامج على الماتلاب.

وسنقوم الآن بوضع ثلاثة معادلات كما في الشكل التالي

وبالتالي ستكون النتائج كالتالي

وعلى نفس المنوال يمكن حل أي عدد من المعادلات مهما كانت كبيرة, وسنأخذ لاحقاً كيفية عمل نافذة لإدخال تلك المعادلات
وبهذا نكون قد أتممنا التطبيق الأول بنجاح

__________________
رد مع اقتباس
  #8  
قديم 01-04-2010, 04:58 AM
الصورة الرمزية eng_a_sayed
eng_a_sayed eng_a_sayed غير متواجد حالياً
عضو مجلس اداره
 
تاريخ التسجيل: Jun 2008
الدولة: India in next Dec
المشاركات: 1,308
معدل تقييم المستوى: 19
eng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud ofeng_a_sayed has much to be proud of
افتراضي رد: الماتلاب خطوة بخطوة

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
هنالك أنواع عديدة منها
1- linear
2- Quadratic
3- Sinusoidal
4- 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
سنأخذ الآن التطبيق الأخير في هذه الدورة وهو Exponential Curve Fitting , ويمكن كتابة العلاقة بين X & Y بالشكل التالي

وإذا وجدت أكثر من نقطة, فهذا يعني وجود أكثر من معادلة والتي تكتب في الصورة التالية

والتي يمكن كتابتها في صورة المصفوفة

والآن سنقوم بوضع البرنامج على الماتلاب

وبالتالي سيظهر الناتج كالتالي

هذا ونكون قد أنهينا دورة الماتلاب بفضل الله
المصدر http://www.arab-eng.org/vb/showthread.php?t=15194

__________________
رد مع اقتباس
  #9  
قديم 01-04-2010, 09:20 AM
الصورة الرمزية ابو نادر
ابو نادر ابو نادر غير متواجد حالياً
ادارة
الموقع
 
تاريخ التسجيل: Aug 2007
الدولة: الوطن العربي
المشاركات: 3,152
معدل تقييم المستوى: 16
ابو نادر is a glorious beacon of lightابو نادر is a glorious beacon of lightابو نادر is a glorious beacon of lightابو نادر is a glorious beacon of lightابو نادر is a glorious beacon of lightابو نادر is a glorious beacon of light
افتراضي رد: الماتلاب خطوة بخطوة

ماشاء الله


شرح منظم واختيار موفق


بارك الله يا ابو ادم وتستاهل
رد مع اقتباس
  #10  
قديم 03-05-2010, 05:08 PM
سعيد قادر سعيد قادر غير متواجد حالياً
مشرف
اليكترونيات
 
تاريخ التسجيل: Nov 2009
الدولة: العراق /كوردستان
المشاركات: 3,285
معدل تقييم المستوى: 17
سعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to beholdسعيد قادر is a splendid one to behold
افتراضي رد: الماتلاب خطوة بخطوة

ما شاء الله
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
الماتلاب, بخطوة, خطوة

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة



الساعة الآن 10:31 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
الحقوق محفوظة لمنتديات الاليكترونيات العصريه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77