المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الماتلاب خطوة بخطوة


eng_a_sayed
01-04-2010, 03:45 AM
الحمد لله رب العالمين, والصلاة والسلام على خير المرسلين, سيدنا محمد عليه أفضل الصلاة والتسليم
أخواني نبدأ معاً تعليم الماتلاب خطوة بخطوة والذي يعتبر مقدمة لكل من يريد تعلم الماتلاب ,والذي اسأل الله أن يكون خير أداة للجميع, وأن يكون تعلمهم لهذا البرنامج من أجل خدمة هذا الدين الحنيف, ومن أجل رفع راية الإسلام.
أسأل الله ان يعيننا جميعاً في النهوض بهذه الأمة الكريمة

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

موقع الشركة المصنعة لبرنامج الماتلاب
http://www.mathworks.com (http://www.dbaasco.com/vb/redirector.php?url=http%3A%2F%2Fwww.mathworks.com%2F)
حيث ستجد في هذا الموقع آخر الإصدارات لبرنامج الماتلاب, وكذلك التحديثات الخاصة بالبرنامج, كما يوفر شرحاً (باللغة الإنجليزية) لبرنامج الماتلاب.

University of Utah
http://www.math.utah.edu/lab/ms/matlab/matlab.html (http://www.dbaasco.com/vb/redirector.php?url=http%3A%2F%2Fwww.math.utah.edu%2Flab%2Fms%2Fmatlab%2Fmatlab.html)
حيث يوفر موقع الجامعة مقدمة سريعة ومبسطة لبرنامج الماتلاب

Indiana University
http://www.indiana.edu/~statmath/math/matlab/ (http://www.dbaasco.com/vb/redirector.php?url=http%3A%2F%2Fwww.indiana.edu%2F%257Estatmath%2Fmath%2Fmatlab%2F)
يقدم أيضاً موقع الجامعة لمحة سريعة حول برنامج الماتلاب

الفصل الأول: مقدمة في الماتلاب
أخواني الكرام توكلنا على الله في بدء شرح برنامج الماتلاب
سنتناول بإذن الله في مقدمة في الماتلاب التالي:
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 (http://www.dbaasco.com/vb/redirector.php?url=http%3A%2F%2Fwww.mathworks.com%2Fcompany%2Fuser_stories%2Fuserstory7614.html%3Fby%3Dindustry)

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

التعريف بمؤسس برنامج الماتلاب
قام بتأسيس البرنامج شخصان, الأول هو كليف مولر والثاني جاك ليتل
كليف مولر
هو إستاذ الرياضيات وعلوم الحاسب Computer Science لأكثر من عشرين عاماً في جامعة متشيجين و جامعة ستانفورد وجامعة نيو مكسيكو.
أمضى خمس سنوات عند إثنين من مصنعى الــ Hardware وهما Intel Hypercube organization و Ardent Computer قبل أن يقوم بالإنتقال إلى شركة Mathworks الشركة الأم لبرنامج الماتلاب, كما أنه هو المؤلف لأول برنامج للماتلاب.
http://www.arab-eng.org/vb/uploaded/14503_1143851491.gif
كليف مولر
جاك ليتل
هو المؤسس لشركة Mathworks كما أنه المساعد في وضع تخطيط برنامج الماتلاب.
جاك حاصل على بكلوريوس الهندسة الكهربية وعلوم الحاسب من جامعة MIT عام 1978
كما أنه حاصل على شهادة M.S.E.E من جامعة ستانفورد عام 1980
http://www.arab-eng.org/vb/uploaded/14503_1143852316.gif
جاك ليتل

ثانياً: واجهة البرنامج
تتسم واجهة البرنامج بالسهولة في التعامل معها, حيث يتم تقسيم مناطق العمل بها إلى ثلاث مناطق رئيسية, وهي كالتالي نافذة الأوامر Command Window و منطقة العمل Workspace و تاريخ الأوامر Command History, إنظر الصورة التالية.
http://www.arab-eng.org/vb/uploaded/14503_1143914181.gif
نافذة الأوامر Command Window: حيث يتم إدخال المدخلات Inputs والأوامر Commands, ويعمل الماتلاب على تحليل تلك البيانات ومدى مطابقة المدخلات للوظيفة المطلوبة منه, حتى تحصل على النتائج في نفس الشاشة.
منطقة العمل Workspace: حيث يقوم الماتلاب بتسجيل المدخلات Inputs والمخرجات Outputs في هذه الشاشة.
ملاحظة: عند بدء العمل على الماتلاب لأول مرة, لاتظهر نافذة Workspace , وحتى تظهر إضغط بزر الفأرة على كلمة Workspace كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1143913792.gif

نافذة تسجيل الأوامر Command History: يتم تسجيل كل ما يقوم به المستخدم على برنامج الماتلاب في هذه النافذة. إنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1143913842.gif

قائمة إبدأ Start: تستخدم هذه القائمة للوصول إلى التطبيق المراد تنفيذه, تستخدم هذه القائمة في المراحل المتقدمة في برنامج الماتلاب, إنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1143913967.gif

بعض الأساسيات الهامة لمستخدمي برنامج الماتلاب
سنتعرف بإذن الله على القوائم, وما يقوم به كل إختيار.
قائمة ملف File
تتكون هذه القائمة من العديد من الخيارات, والتي تنفذ كل منها وظيفة محددة باقي البرامج
http://www.arab-eng.org/vb/uploaded/14503_1143914533.gif
قائمة التعديل Edit
فكما تعودنا في تلك القائمة أن نجد أوامر ( نسخ Copy, قص Cut, لصق Paste, بحث Find), ولكن هنالك ثلاث أدوات هامة بها وهم

Clear Command Window

Clear Command History

Clear Workspace

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


أنظر الصورة


http://www.arab-eng.org/vb/uploaded/14503_1143915050.gif




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

http://www.arab-eng.org/vb/uploaded/14503_1143915219.gif

فمثلاً قم بإختيار Stop If Errors/Warnings…
ستلاحظ ظهور نافذة, تعطيك حرية الإختيار في تصرف برنامج الماتلاب عند حدوث أخطاء أو تحذيرات, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1143915410.gif

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

قائمة Desktop:
في هذه القائمة يتم التحكم بمحتوى الواجهة الخاصة ببرنامج الماتلاب, فمثلاً يمكننا إظهار نافذة الأوامر أو إخفائها (طبعاً لو أخفيناها مش حنعرف نشتغل), أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1143916399.gif

معلومة هامة:
تكون النوافذ في أحد الوضعين
1- Docked: حيث تكون النافذة غير قابلة للتحريك من مكانها.
2- Undocked: حيث تكون النافذة قابلة للتحريك وتعديل مقاسها أيضاً
أنظر الصور
http://www.arab-eng.org/vb/uploaded/14503_1143917669.gif

http://www.arab-eng.org/vb/uploaded/14503_1143917751.gif

يتبقى لدينا قائمتان هما
قائمة Window:
حيث يمكنك التنقل بين ملفات الماتلاب المختلفة, وكذلك النوافذ مثل نافذة الأوامر Command Window وغيرها الكثير.
http://www.arab-eng.org/vb/uploaded/14503_1143918017.gif
قائمة Help:
حيث تقوم تلك القائمة, بتوفير المساعدات الضرورية في البرنامج, ووسائل الإتصال بالشركة المصنعة, وآخر التحديثات, وكذلك تعلم الماتلاب باللغة الإنجليزية
http://www.arab-eng.org/vb/uploaded/14503_1143918046.gif

هنا أكون قد أكملت شرح واجهة البرنامج

eng_a_sayed
01-04-2010, 03:48 AM
العمليات الأساسية (الجمع و الطرح والضرب والقسمة) وبعض العمليات الهامة مثل وضع الأس لعدد, كما سنتعرف على بعض الأوامر الهامة.

عملية الجمع:

تأخذ علامة الجمع في الماتلاب الرمز المعروف للجمع وهو "+"
فمثلاً إذا قمنا بجمع 3+2 سيقوم الماتلاب بوضع الإجابة في صورة أرقام وهو 5, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144080107.gif
إذهب إلى نافذة Workspace وقم بالنقر بالماوس بقرة مزدوجة, ستلاحظ ظهور نافذة حلت محل نافذة الأوامر وأصبحت نافذة الأوامر في الأسفل, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144080160.gif
لنفترض أننا قمنا بتغيير الناتج 5 إلى 3, قم بإغلاق نافذة تعديل النتائج, كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144080197.gif
ستلاحظ عودة نافذة الأوامر لوضعها الأساسي, قم بكتابة ans في نافذة الأوامر, ستلاحظ ظهور الناتج بالقيمة الجديدة وهي 3, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144080232.gif

عملية الطرح:
تأخذ عملية الطرح رمز ( - ) في الماتلاب, فمثلاً 3-2=1, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144080274.gif

عملية الضرب
تأخذ عملية الضرب رمز ( * ), فمثلاً 15*12= 180, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144080374.gif

عملية القسمة:
تأخذ عملية القسمة رمز ( / ), فمثلاً 12 على 3 تساوى 4, أنظر الصورة للتتأكد
http://www.arab-eng.org/vb/uploaded/14503_1144080438.gif

عملية وضع الأس:
يأخذ رمز الأس ( ^ ), يمكن الحصول على هذا الرمز من خلال الضغط على Shift + 6 في لوحة المفاتيح, فمثلاً 12^2=144, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144080508.gif

أخذ الجذر التربيعي:
يتم أخذ الجذر التربيعي لأي رقم عن طريق كتابة الأمر sqrt, فمثلاً الجذر التربيعي للرقم 144 يساوي 12 أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144080716.gif

وضع عناوين أثناء البرمجة
كما تعودنا في برامج Qbasic و C++ وغيرها الكثير من برامج البرمجة, فيتم وضع عناوين لما نقوم به حيث تكون مثل المرجع لنا في معرفة ما نقوم به في جزء ما من البرنامج.
ففي برنامج الماتلاب لوضع عنوان ما, لابد من أن نبدأ بوضع علامة مئوية ( % ), ثم نكتب مانريده بعدها, لاحظ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144081716.gif
ولكن كما تلاحظون فهنالك مشكلة في نافذة Workspace, حيث أنها سجلت آخر قيمة فقط, وذلك لأن كل النتائج الأربعة تأخذ رمز ans حيث اننا لم نجع لها رمزاً, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144081765.gif

يتم تعريف النتائج بحروف, بحيث يأخذ الحرف القيمة التي يدخلها المستخدم له, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144081821.gif

كما ترون فالمشكلة قد إنتهت تماماً, حيث تأخذ كل قيمة حرف معين.
المشكلة التالية, هو أننا كلما أدخلنا قيمة, أو حصلنا على نتيجة تكون هنالك مشكلة, هو أن الماتلاب يقوم بإظهار القيمة المدخلة وكذلك النتيجة في نافذة الأوامر, مما يؤدي إلى كبر البرنامج المكتوب في حين أنه يؤدي شئ بسيط, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144081910.gif

يتم أخفاء القيمة المدخلة وكذلك النتيجة من الظهور ( ولكن عملية إدخال النتيجة والجمع مثلاً تتم بشكل طبيعي ويقوم الماتلاب بتنفيذ ما يأمره المستخدم) عن طريق وضع علامة ( ; ) بعد كل قيمة مدخلة أو بعد طلب نتيجة ما (الجمع مثلاً ) ويتم إظهار النتيجة أو القيم المدخلة إذا طلب المستخدم ذلك , عن طريق وضع حرف المدخلات أو النتيجة المطلوبة دون إستخدام الرمز الرمز المذكور ( ; ) انظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144081977.gif

بعض المتغيرات المعرفة مسبقاً في برنامج الماتلاب والمعروفة:
http://www.arab-eng.org/vb/uploaded/14503_1144082145.gif


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

http://www.arab-eng.org/vb/uploaded/14503_1144082291.gif


http://www.arab-eng.org/vb/uploaded/14503_1144082351.gif







الكتابة فوق قيمة العدد المركب
تعلمنا أنه إذا كتبنا ( i ) في نافذة الأوامر يظهر التالي
http://www.arab-eng.org/vb/uploaded/14503_1144082894.gif

كما يمكننا الكتابة فوق هذه القيمة, أي تغيير قيمته, حيث سنقوم بوضع قيمة لهذا الرمز, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144082926.gif

إلغاء القيم المدخلة والنتائج
يمكن للماتلاب مسح القيم المدخلة والنتائج ( والتي تسجل في نافذة تسجيل النتائج), دون مسح ما قمت بكتابته, وذلك بإستخدام أمر Clear, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144083018.gif


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

http://www.arab-eng.org/vb/uploaded/14503_1144083340.gif


وللتأكد قم بوضع أي حرف من الحروف التي قمت بتعريفها مسبقاً للماتلاب, ستلاحظ ان الماتلاب لا يتعرف عليها الآن, أنظر الصورة
http://www.arab-eng.org/vb/uploaded/14503_1144083559.gif


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

http://www.arab-eng.org/vb/uploaded/14503_1144083641.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1144083688.gif

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

أولاً: الدوال المثلثية Trigonometric Functions
http://www.arab-eng.org/vb/uploaded/14503_1144361845.gif
ملاحظة: يقوم الماتلاب بقياس الزوايا بالتقدير الدائري Radian
لاحظ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144361877.gif

http://www.arab-eng.org/vb/uploaded/14503_1144361891.gif
وسيتم شرح هذا الجزء بالتفصيل أكثر في الجزء الخاص Plotting 2D



الدوال المثلثية العكسية:
http://www.arab-eng.org/vb/uploaded/14503_1144361983.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1144362025.gif


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

http://www.arab-eng.org/vb/uploaded/14503_1144362068.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362111.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362129.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362153.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362208.gif

الدوال الزائدية Hyperbolic functions
http://www.arab-eng.org/vb/uploaded/14503_1144362613.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1144362672.gif






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


http://www.arab-eng.org/vb/uploaded/14503_1144362701.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362728.gif






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


http://www.arab-eng.org/vb/uploaded/14503_1144362764.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362786.gif

http://www.arab-eng.org/vb/uploaded/14503_1144362805.gif
http://www.arab-eng.org/vb/uploaded/14503_1144363057.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363087.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363134.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363148.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363175.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363194.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363057.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363087.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363134.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363148.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363175.gif

http://www.arab-eng.org/vb/uploaded/14503_1144363194.gif

eng_a_sayed
01-04-2010, 03:51 AM
سنتناول بإذن الله
الدوال الأسية Exponential Function
الأعداد المركبة وعملياتها Complex numbers and their Processes
اللغرتمات الطبيعية Natural Logarithm
القيمة المطلقة Absolute Value
العمليات التقريبية Approximation Processes

الدالة الأسية Exponential Function
الدالة الأسية تأخذ الصيغة الرياضية التالية
http://www.arab-eng.org/vb/uploaded/14503_1144516428.gif
أما في الماتلاب فتختصر في exp
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144516469.gif

الأعداد المركبة Complex Numbers
تأخذ الأعداد المركبة صيغة واحدة وهي تواجد جزء للأعدد الحقيقي Real number وجزء العدد التخيلي Imaginary Numbers, وتكون في الصيغة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144516516.gif
ويتم في برنامج الماتلاب العديد من العمليات والتي تتم في الأعداد المركبة مثل
إختيار العدد الحقيقي فقط
إختيار العدد التخيلي فقط
إيجاد الزاوية Phase Angle, ويتم الحصول عليها من خلال العلاقة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144517259.gif
إيجاد القيمة المطلقة: ويتم الحصول عليها من خلال العلاقة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144517404.gif
جمع عددين مركبين: ويتم ذلك عن طريق جمع الأعداد الحقيقية مع بعضها, وجمع الأعداد المركبة مع بعضها
أنظر الصورة التالية مشاهدة تلك العمليات
http://www.arab-eng.org/vb/uploaded/14503_1144517443.gif
http://www.arab-eng.org/vb/uploaded/14503_1144517487.gif

ملاحظة: تتم جميع العمليات الحسابية (الجمع والطرح وغيرها) على الأعداد المركبة أيضاً
كما رأينا في المثال السابق إستخدام الأمر angle لإيجاد زاوية الطور عن طريق كتابة angle(z) حيث يتم وضع رمز العدد المركب z في هذا الأمر, يمكننا أيضاً تنفيذ ذلك بإستخدام أمر آخر وهو atan2
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144517514.gif
اللوغاريتمات الطبيعية Natural Logarithm
يرمز الماتلاب للوغاريتمات الطبيعية بالرمز log(x)

العمليات التقريبية لأعداد واقعة بين رقمين
أي رقم عشري يمتاز بأنه واقع بين رقمين صحيحين, فالماتلاب له القدرة على إختيار أحد هذين الرقمين بإستخدام الأمرين Ceil لإختيار الرقم الأكبر, والأمر Floor لإختيار الرقم الأصغر
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1144517563.gif


المصفوفات Matrices

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

ماهي المصفوفة:
هي مجموعة من البيانات والتي يتم وضعها في صورة صفوف وأعمدة, وتأخذ الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1145098803.gif
وتستخدم المصفوفات في حل كثيرات الحدود Polynomials, وفي حل مجموعة من المعادلات, كما سيتم شرحه لاحقاً في هذا الإسبوع بإذن الله.

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

http://www.arab-eng.org/vb/uploaded/14503_1145098843.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1145098927.gif
فكما نرى أساليب متعددة لإدخال قيم المصفوفات والشكل واحد في جميع الطرق.

فما هي العمليات الأساسية التي تتم على المصفوفات؟
1- الجمع
2- الطرح
3- الضرب
4- القسم
5- المصفوفة الأسية

الجمع:
قبل البدء في الشروع ببدء إستخدام الماتلاب يجب أولاً أن نذكر شرط جمع مصفوفتين.
شرط جمع مصفوفتين:
لنفترض أن لدينا مصفوفتين A & B, فشرط جمعهما أن يكون كلاهما له نفس عدد الصفوف m, وكذلك نفس عدد الأعمدة n.
فمثلاً المصفوفتان التاليتان يمكن جمعهما لأنها يحملان نفس عدد الصفوف والأعمدة
http://www.arab-eng.org/vb/uploaded/14503_1147719706.gif

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

جمع الصف الأول العنصر الثاني: نجمع العنصر الثاني للصف الأول في المصفوفو الأولى وما يناظره في المصفوفة الثانية, وبالتالي نكون قد جمعنا
2+8=10

ونستمر هكذا حتى إتمام كامل المصفوفة, ويمكن تلخيص العملية في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1147719735.gif

الجمع في الماتلاب
يجب أولاً كتابة المصفوفتين A&B, كما تعلمنا سابقاً
ثم إستخدام رمز الجمع (+) للتتم عملية الجمع, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1147719804.gif


طرح المصفوفات
فما هو شرط طرح المصفوفات؟
حقيقة هي نفس شرط الجمع, حيث يشترط أن تكون المصفوفات التي يتم جمعها أو طرحها لها نفس القوة http://www.arab-eng.org/vb/uploaded/14503_1155478883.gif
حيث m هي عدد الصفوف
وحيث n خي عدد الأعمدة
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155478406.gif
لنقم الآن بعمل نفس المثال على برنامج الماتلاب
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155478742.gif
ضرب المصفوفات
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
ما هو شرط ضرب المصفوفات؟
شرط ضرب أي مصفوفتين هو أن يكون عدد أعمدة المصفوفة الأولى n1 مساوياً لعدد الصفوف في المصفوفة الثانية m2
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155481637.gif
hr
لنقوم الآن بإدخال نفس المثال على الماتلاب
أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155481895.gif

قسمة المصفوفات
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
قد يستغرب البعض من وجود كلمة القسمة للمصفوفات, ولكن الحقيقة أنها موجودة ومستخدمة بكثيرة ولكننا لا ننتبه لوجودها, فبهذه القسمة نقوم بحل المعادلات والتي سيتم شرحها لاحقاً بإذن الله
وقبل أن أشرح لكم كيفية عمل القسمة, لابد من شرح كيفية حل المعادلات كثيرة الحدود
لنفترض أن لدينا معادلتان كالآتي
http://www.arab-eng.org/vb/uploaded/14503_1155505131.gif
وكلتا المعادلتان يمكن حلهما ليكون الناتج
X=-2
Y=3
فكيف يتم ذلك؟
يمكن وضع المعادلتان في صورة مصفوفة كما في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1155505742.gif
hr
وهنا نذكر أن هنالك طريقتان لحل المعادلتان
1- طريقة الحذف
2- قسمة المصفوفات
وسأذكر سريعاً طريقة الحذف, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155506181.gif
أما الطريقة الثانية هي قسمة المصفوفات
لنعود إلى الصورة التالية مرة أخرى
http://www.arab-eng.org/vb/uploaded/14503_1155505742.gif
نجد أنه يمكننا أن نضعها في الصيغة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155506431.gif
وبالتالي من أجل الحصول على X يجب قسمة A على B, كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155506540.gif
ولكن ماذا تعني http://www.arab-eng.org/vb/uploaded/14503_1155506605.gif من ناحية المصفوفات وليست الأعداد؟
http://www.arab-eng.org/vb/uploaded/14503_1155506729.gif
وهذا ما يسمى قسمة المصفوفات
ولكن يشترط عند إيجاد inv أن تكون المصفوفة مربعة ( أي عدد الصفوف يساوي عدد الأعمدة)
وبالتالي يمكن إيجاد قيمة X & Y عن طريق وضع المعادلة في الصورة التالية, مع الأخذ في الإعتبار أن تتوفر شرط عملية الضرب بين المصفوفتين
http://www.arab-eng.org/vb/uploaded/14503_1155507074.gif
فإذا قمنا بكتابة المعادلتين في الماتلاب كما في الصورة السابقة
http://www.arab-eng.org/vb/uploaded/14503_1155507404.gif
وهنا أكون قد أتممت الجزء الخاص بقسمة المصفوفات







العمليات على المصفوفات والمتجهات
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
ما الفرق بين المتجهات والمصفوفات؟
المتجهات هي مصفوفة ولكن إما بعمود واحد Column Vector أو صف واحد Row Vector
فمثلاً الصورة التالية لمتجه صفي
http://www.arab-eng.org/vb/uploaded/14503_1155581812.gif
وهذه صورة لمتجه عمودي
http://www.arab-eng.org/vb/uploaded/14503_1155581885.gif
أما المصفوفة فهي التي يزيد عدد صفوفها وأعمدتها عن صف واحد أو عمود واحد
وسنتناول العمليات التي تتم على المتجهات أولاً ثم المصفوفات
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
ماهي العمليات الشائعة على المتجهات؟
1- طول المتجه
2- إضافة عنصر
3- إستبدال عنصر
4- عملية حذف عنصر
5- نداء عنصر
6- نداء عدد عناصر
7- إيجاد العنصر الأكبر
8- إيجاد العنصر الأصغر
9- إيجاد حاصل ضرب العناصر
هذه هي العمليات الشائعة في الماتلاب وسنتناول كل منها بالتفصيل بإذن الله

eng_a_sayed
01-04-2010, 03:51 AM
العمليات على المتجهات
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لنقوم بتعريف متجه صفي لدى الماتلاب كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155582683.gif
والآن نقوم بالعملية الأولى وهي
طول المصفوفة
http://www.arab-eng.org/vb/uploaded/14503_1155582764.gif
يمكن عمل نفس العملية على متجه عمودي
وننتقل الآن إلى العملية التالية

إضافة عنصر
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لنقوم بوضع متجه عمودي في الماتلاب, كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155583743.gif
كما هو واضح, أن عدد العناصر الموجودة في هذا المتجه هو 10, وللتأكد قم بعمل الأمر length في نافذة الأوامر للماتلاب, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155583870.gif
لنقل أننا نريد إضافة الرقم 120 في الخانة الحادية عشرة, أي الخانة التالية للخانة العاشرة, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155584237.gif
ملاحظة: في المثال السابق تمت إضافة الرقم 120 إلى الخانة 11, فماذا إذا قمنا بإضافة رقم جديد ولكن في الخانة رقم 13, فماذا ستكون قيمة الخانة 12 التي لم يتم إضافة أي عنصر لها, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155584615.gif
وبهذا نكون قد شرحنا الجزء المتعلق بإضافة عنصر

إضافة أكثر من عنصر متتالي
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لنفترض أننا نريد إضافة مجموعة من العناصر المتتالية في الخانات 11و 12 و 13 ويمكن بدلاً من إدخال كل رقم على حدى,كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155588359.gif
ولكن قد يبدوا ذلك مستنفذاً للوقت, إذا تم إدخال 100 رقم متتالي أو 1000 رقم, فما العمل؟
هنالك طريقة في الماتلاب تستخدم إذا أردت أن تضيف مجموعة من الأرقام المتتالية
فمثلاً عندما نريد أن نذكر مجموعة من الأرقام المتتالية من 1 إلى 10 نكتب التالي
1:10
وعندما نريد كتابة مجموعة من الأرقام المتتالية من 10 إلى 1200 نكتب
10:1200
وبالتالي إذا أردنا كتابة مجموعة من الأرقام المتتالية من 11 إلى 13 كما في مثالنا نكتب
11:13
وبالتالي تكون الكتابة في الماتلاب كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155589356.gif
وبذلك نكون قد شرحنا كيفية إضافة مجموعة من العناصر المتتالية
إستبدال عنصر
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
عملية إستبدال عنصر تتطلب عدة شروط
1- أن يكون العنصر موجوداً بالفعل
2- أن تحدد مكان هذا العنصر
ففي المثال التالي أردنا أن تستبدل العنصر الثالث بدلاً من الرقم 3 إلى الرقم 15
كل ما علينا فعله هو كتابة التالي
A(3)=15
حيث A هي المتجه الذي يحتوى العنصر الذي تريد تغييره
http://www.arab-eng.org/vb/uploaded/14503_1155596876.gif
وعلى هذا المنوال تستطيع أن تغير أي عنصر في المتجه
وبهذا نكون قد إنتهينا من شرح عملية إستبدال عنصر واحد في المتجه

إستبدال مجموعة عناصر متتالية
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
كما شرحنا كيفية إضافة مجموعة عناصر متتالية, سنقوم بإستبدال مجموعة عناصر متتالية كما في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155597497.gif
وبهذا نكون قد إنتهينا من شرح عملية إستبدال مجموعة عناصر متتالية
حذف عنصر من المتجه
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لتقوم بحذف عنصر من المتجه يجب أن يتوفر الشرطان التاليان
1- تحديد العنصر الذي تريد حذفه
2- وضع أقواص مربعة Square Brackets خالية من أي رقم
فالمثال التالي يوضح أننا نريد حذف العنصر في الخانة العاشرة, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155599509.gif
وبهذا نكون قد أتممنا شرح الجزء المتعلق بحذف عنصر وحيد من المتجه

حذف مجموعة عناصر متتالية
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لحذف مجموعة عناصر متتالية, أنظر الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155599858.gif
وبهذا أكون قد أتممت شرح الجزء المتعلق بحذف مجموعة عناصر متتالية

نداء عنصر
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
نداء عنصر المقصود به هو الحصول على قيمة العنصر في أي مكان من المتجه
ويمكن ذلك من خلال كتابة التالي

http://www.arab-eng.org/vb/uploaded/14503_1155648178.gif
وبهذا نكون قد أتممنا شرح نداء عنصر
نداء أكثر من عنصر
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
للحصول على قيم مجموعة عناصر محددة من متجه, قم بعمل الآتي على نافذة الأوامر Command Window
http://www.arab-eng.org/vb/uploaded/14503_1155649265.gif
وبهذا نكون قد شرحنا الجزء الخاص بنداء أكثر من عنصر

إيجاد العنصر الأكبر في المتجه
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لإيجاد العنصر الأكبر في متجه, يتم إستخدام الأمر max, حيث يمكن إيتخدامه في الماتلاب بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1155651914.gif
وبهذا نكون قد إنتهاينا من شرح كيفية إيجاد الرقم الأكبر في المتجه
إيجاد العنصر الأصغر في المتجه
http://www.arab-eng.org/vb/uploaded/14503_1154432449.gif
لإيجاد العنصر الأصغر في المتجه, يجب إستخدام الأمر min وهي إختصار لدى الماتلاب وهي إختصار لكلمة minimum أي الأقل
ولإيجاد العدد الأصغر داخل المتجه في الماتلاب قم بعمل الآتي
http://www.arab-eng.org/vb/uploaded/14503_1155652573.gif

إيجاد مجموع عناصر المتجه
يمكن جمع جميع عناصر المتجه, بإستخدام الأمر sum حيث أن هذا الأمر لابد أن يأخذ طريقة في تنفيذه فيجب أن ينفذ بالصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155654101.gif
وفالنقوم بعمل مثال في الماتلاب الآن
http://www.arab-eng.org/vb/uploaded/14503_1155654377.gif



إيجاد حاصل ضرب العناصر في المتجه
يوفر الماتلاب خاصية ضرب عناصر المتجه, وذلك بإستخدام الأمر prod وهو إختصار product
ويجب أن يأخذ هذا الأمر الصورة التالية في كتابته
http://www.arab-eng.org/vb/uploaded/14503_1155654972.gif
والآن لنأخذ مثالاً تطبيقياً في الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1155655061.gif

eng_a_sayed
01-04-2010, 03:53 AM
العمليات على المصفوفات
أولاً يجب تعريف أنواع المصفوفات, فهنالك نوعان من المصفوفات
1- مصفوفة غير منتظمة
2- مصفوفة منتظمة أو مربعة
أما العمليات التي سوف تتم على المصفوفات فهي
1- طول المتجه
2- إضافة عنصر
3- إستبدال عنصر
4- عملية حذف صف أو عمود بأكمله
5- نداء عنصر
6- نداء عدد عناصر
7- إيجاد العنصر الأكبر
8- إيجاد العنصر الأصغر
9- إيجاد مجموع عناصر المصفوفة
10- إيجاد حاصل ضرب العناصر
11- إيجاد قطر المصفوفة Diagonal
12- المصفوفة السحرية
وهذه هي العمليات الشائع إستخدامها في الماتلاب
إيجاد حجم المصفوفة
لإيجاد حجم المصفوفة أو دعونا نقول لإيجاد عدد الصفوف والأعمدة لمصفوفة, يجب إستخدام الأمر size, حيث لا يصلح إستخدام الأمر length, فأمر length يستخدم في المتجهات وليس في المصفوفات, ولتوضيح الأمر دعونا نقوم بعمل مثال مبسط لشرح هذا الأمر, أولاً لنقوم بعمل مصفوفة غير منتظمة ( أي أن عدد الصفوف لا يساوي عدد الأعمدة) كما في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1155679985.gif
والآ لنقوم بكتابة الأمر size لمعرفة حجم المصفوفة
http://www.arab-eng.org/vb/uploaded/14503_1155680182.gif
أما إذا أردنا أن نعرف عدد الصفوف فقط
نقوم بعمل الآتي
http://www.arab-eng.org/vb/uploaded/14503_1155680266.gif
أما إذا أردنا أن نعرف عدد الأعمدة فقط
نقوم بكتابة التالي
http://www.arab-eng.org/vb/uploaded/14503_1155680324.gif




إضافة عنصر إلى المصفوفة
عملية إضافة عنصر أو عدة عناصر هي من العمليات الهامة جداً داخل الماتلاب, ودائماً نقوم بإستخدامها في الكثير من البرامج المتقدمة كما سيتضح فيما بعد, ولتوضيح ذلك الأمر يجب أن نقوم بإعطاء مثال حتى تصل مرحلة الفهم التام لها
لنقوم أولاً بتعريف مصفوفة في الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1155681073.gif
لنفترض أننا نريد أن نقوم بوضع رقم 42 في الصف الثاني والعمود الخامس, نقوم بكتابة التالي في الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1155681165.gif
كما تلاحظ فإن الصف الأول والصف الثالث للعمود الخامس, لم يتم وضع قيم بهما, لذلك قام الماتلاب بإفتراضهما صفراً.
فماذا إذا أردنا إضافة عدة عناصر في المصفوفة؟ يمكن إيضاح ذلك بإستخدام المثال التالي
لنقوم أننا نريد إضافة الأعداد31 و 54 و 13 و 11 في الصف الرابع والعمود الأول الثاني والثالث و الرابع على التوالي, يمكن ذلك من خلال الماتلاب بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1155681640.gif



إستبدال عنصر
قد تكون هذه العملية نادراً ما يتم إستخدامها, ولكنها هامة جداً, حيث توفر إمكانية إستبدال عنصر أو عدة عناصر داخل المصفوفة, ولتوضيح هذه الخاصية, سنقوم بتعريف مصفوفة كما ذكرنا مسبقاً
http://www.arab-eng.org/vb/uploaded/14503_1155683147.gif
ولنقوم بإستبدال العنصر في الصف الثالث والعمود الأول إلى الرقم صفر
http://www.arab-eng.org/vb/uploaded/14503_1155683217.gif
وإذا أردنا إستبدال عدة عناصر, يمكن ذلك بعمل مثال بسيط, لنقل أننا نريد أن نستبدل الصف الأول والثاني والعمودين من الأول إلى الثالث بقيمة صفر
http://www.arab-eng.org/vb/uploaded/14503_1155683350.gif




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

http://www.arab-eng.org/vb/uploaded/14503_1155685314.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155685644.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155685813.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155685314.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155724165.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155724309.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155724483.gif

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




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

http://www.arab-eng.org/vb/uploaded/14503_1155724951.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155726846.gif

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

http://www.arab-eng.org/vb/uploaded/14503_1155726865.gif




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

http://www.arab-eng.org/vb/uploaded/14503_1155749570.gif
إيجاد مجموع العناصر
لإيجاد المجموع كما تعلمنا نقوم بإستخدام الأمر sum ولكن عملية الجمع يقوم الماتلاب بإيجاد جمع كل عمود على حدى وتوضع في صورة متجه, كما في المثال التالي
http://www.arab-eng.org/vb/uploaded/14503_1155749826.gif


إيجاد حاصل ضرب العناصر
يمكن ضرب عناصر المصفوفة, ولكن في الماتلاب عملية الضرب تكون لكل عمود على حدى ويتم وضع الناتج في متجه, وإذا تم إستخدام الأمر مرة أخرى يتم ضرب عناصر المتجه جميعها, لينتج حاصل الضرب المصفوفة جميعها, أنظر المثال التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155750173.gif
إيجاد قطر المصفوفة
هذه العملية قد تكون ذات إستخدام أكاديمي, ولكنها هامة جداً, وخصوصاً أن تلك الخاصية تخدم المصفوفة المربعة ( عدد الصفوف يساوي عدد الأعمدة), ويتم إستخدام الأمر diag, وهذا مثال لذلك
hr
http://www.arab-eng.org/vb/uploaded/14503_1155750595.gif
hr
يمكننا الآن عمل العديد من العمليات على قطر المصفوفة, فمثلاً نريد الحصول على عملية الجمع لعناصر المصفوفة
hr
http://www.arab-eng.org/vb/uploaded/14503_1155750685.gif
hr
أو أننا نريد الحصول على حاصل ضرب تلك العناصر
hr
http://www.arab-eng.org/vb/uploaded/14503_1155750746.gif
المصفوفة السحرية
حقاً كلمة قد يستغربها البعض, ولكنها حقيقة فحقاً إنها سحرية, حيث أن الماتلاب لديه القدرة على إنتاج مصفوفة مربعة يقوم الماتلاب بإختيار أرقامها بشكل عشوائي, كل ما عليك إلا إستخدام الأمر magic وتحديد N حيث انها تمثل عدد الصفوف المساوي لعدد الأعمدة, هذه المصفوفة مهمة جداً وخصوصاً في عمليات إختبار الأنظمة, كما سنتحدث لاحقاً بإذن الله في الشبكات العصبية.
ولنأخذ مثالاً مبسطاً
hr
http://www.arab-eng.org/vb/uploaded/14503_1155751528.gif
[LINE]hr[/LINE
M-File
هي وسيلة لإدخال الأوامر ولكن ليس من خلال نافذة الأوامر, ولكن ماذا قد يختلف في هذه الوسيلة الجديدة في إدخال الأوامر؟
1- في عملية إدخال الأوامر التي كنا نستخدمها, إذا أردنا تعديل عنصر أو أكثر كان يجب إعادة إدخال الأمر من جديد.
2- إذا وجد خطأ, فيجب كتابة الأمر من جديد
3- إذا كتبنا برنامج كبير, وأردنا إعادة العملية مرة أخرى يجب إدخال جميع الأوامر من جديد وبنفس الترتيب.
4- إذا حدث خطأ في ترتيب الأوامر لهذا البرنامج الكبير ستقوم بإعادة الإدخال الأوامر من البداية مرة إخرى.
5- يصعب عمل عملية تصحيح للأخطاء Debugging
وهذا بالطبع يستغرق وقتاً كبيراً هذا بالإضافة إلى الملل الذي يحدث للمستخدم
وطبعاً حلاً لهذه المشكلة, تم عمل بما يسمى M-File والتي تعطي القدرة على كتابة البرنامج كاملاً أولاً بدون تشغيل, وبعد الإنتهاء منه يتم تشغيله, هذه الخاصية تعطي القدرة على تعديل القيّم دون الحاجة إلى كتابتها مرة أخرى, أو إعادة إدخال الأوامر التي تعتمد على هذا الأمر.
فكيف يتم تشغيل تلك الخاصية؟ إتبع الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155755284.gif
hr
وبالتالي ستظهر نافذه جديدة, تأخذ الشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155755472.gif
[
نافذة M-File
سنقوم الآن بالتعرف على نافذة M-File, أنظر الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155756783.gif
hr
ولكن عند الضغط على زر التشغيل, سيطالبك الماتلاب بحفظ البرنامج, ولكن يشترط الآتي عند حفظ البرنامج
1- أن لايبدأ بأرقام
2- أن لا يكون أمراً معرفاً في الماتلاب
3- أن لا يحتوي الإسم على مسافات فاصلة
4- أن لاتحتوي على رموز خاصة مثل + , - , & , *
يجب مراعاة تلك الشروط وإلا لن يقوم الماتلاب بتنفيذ البرنامج
فالنقم بتنفيذ المثال المكتوب الآن في النافذة السابقة
1- يتم الضغط على زر التشغيل كما هو واضح في الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155757171.gif
hr
2- سيطالبنا الماتلاب بحفظ البرنامج أولاً, ولنسميه training1
hr
http://www.arab-eng.org/vb/uploaded/14503_1155757389.gif
hr
3- ستظهر القيم في كلاً من Command Window and Workspace
hr
http://www.arab-eng.org/vb/uploaded/14503_1155757568.gif
hr
4- لنعود إلى M-File ونقوم بتغيير بعض القيم للمصفوفة, كما في الشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155757676.gif
hr
5- سنقوم الآن بتشغيل البرنامج, وسيقوم الماتلاب الآن بالحفظ تلقائياً دون الحاجة لإعادة التسمية, ثم شاهد نافذة الأوامر Command Window
hr
http://www.arab-eng.org/vb/uploaded/14503_1155757851.gif
hr
وكما تلاحظ فإنه في كل عملية تحديث للبرنامج ستظل قيم البرنامج القديم موجودة, فحلاً لهذه المشكلة, يتم وضع الأمر CLC في أول كل برنامج, وهذا يكون مبدأ في جميع البرامج التي نقوم بعملها لابد من أن تبدأ بهذا الأمر.
ودعونا نقوم بمثال يوضح لنا ذلك



سنقوم الآن بكتابة الـــ M-File
hr
http://www.arab-eng.org/vb/uploaded/14503_1155765248.gif
hr
سنقوم الآن بتعديل المثال, وحتى نتأكد أن أمر CLC يعمل, ستختفي القيم من Command Window وتظهر القيم الجديدة
hr
http://www.arab-eng.org/vb/uploaded/14503_1155765474.gif
hr
وبهذا نتأكد من أن الأمر CLC يعمل بكفاءة
ولكن دعونا نشاهد نافذة Workspace والتي تحتوى على قيم A,B,C
hr
http://www.arab-eng.org/vb/uploaded/14503_1155765706.gif
hr
لنقم بتعديل بسيط في البرنامج عن طريق تغيير الرموز فقط من A,B,C إلى D,E,F ومشاهدة النافذة Workspace
hr
http://www.arab-eng.org/vb/uploaded/14503_1155767152.gif
hr
ولتلافي هذه المشكلة, يجب وضع أمر Clear بعد الأمر clc بحيث يقوم بمسح أي قيمة سابقة من أي برنامج آخر في Workspace , ويجب تثبيت هذا الأمر أيضاً في جميع البرامج والتي سيتم عملها لاحقاً بإذن الله.
وسنقوم الآن بتنفيذ نفس البرنامج ولكن بعد وضع الأمر clear, وستلاحظ الفرق الشاسع في الماتلاب الآن
hr
http://www.arab-eng.org/vb/uploaded/14503_1155767371.gif
[LINE]hr[/LINE

eng_a_sayed
01-04-2010, 03:55 AM
بعض الأوامر الهامة
قبل الإنتقال إلى الرسم plotting لابد من أخذ بعض الأوامر الهامة, والتي سيتم تداولها بشكل مستمر بإذن الله
hr
linspace
هذا الأمر كثير الإستخدام, والذي يستخدم في عملية إنتاج متجه, عن طريق تحديد الرقم الأصغر والرقم الأكبر, وعدد النقط المرغوبة بين هذين الرقمين
ويأخذ الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155831677.gif
hr
فالمثال التالي يوضح كيفية إستخدام 10 نقاط من بين الرقمين 5 و 15
hr
http://www.arab-eng.org/vb/uploaded/14503_1155832966.gif
hr
وهذا ما يسمى النظام العشوائي للماتلاب Randomization System in Matlab
والميزة في هذا النظام هو أن المتجه نظام عشوائي متزايد
hr
randint
هذا الأمر من ضمن الأوامر والتي تنشأ نظام عشوائي للأرقم, ولكن ليس نظام نظام عدد صحيح وليس على هيئة كسور مثل الأمر السابق, كما أن نظام الأرقام به ليس تزايدياً أو تناقصياً بل عشوائياً
ويأخذ الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155848555.gif
hr
وهذا مثال بسيط بإستخدام هذا الأمر على الماتلاب
hr
http://www.arab-eng.org/vb/uploaded/14503_1155848708.gif
hr
Input
هذا الأمر هام جداً في الماتلاب, حيث يقوم المستخدم من خلال إستخدامه يجعل الماتلاب يسأله عن متجه أو مصفوفة, أو حتى حروف وأسماء وذلك تبعاً لما يقوم المستخدم بتعريفه
فمثلاً إذا أردنا الماتلاب يطالبك بإدخال سنك, سنقوم بعمل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155849220.gif
hr
وإذا أردنا أن نعرف للماتلاب بأن ما سيتم إدخاله هو إسم وليس رقم, يتم كتابة البرنامج بالشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155849526.gif
[LINE]hr[/LINE
لنستكمل الأوامر الهامة
أولاً ما الفرق بين String and Character؟
string هو حرف أو كلمة في الماتلاب
character هو عبارة عن رقم أو مجموعة من الآرقام
وهنالك أمر يقوم بتحويل string to Character والعكس كذلك
وهما
num2str
str2num
ولكن فيما يفيدوا هذه الأوامر
سنقوم بمثال بسيط حتى تفهم المقصود من هذه الأمور, سنقوم بإستخدام الأمر input في وضعية string وسنقوم بإدخال أرقام, ستبدأ تستغرب الآن, فهل الماتلاب حتى بعد إدخالي الرقم سيتعرف عليها كأنها أرقام أم أي شئ غير ذلك, شاهد الصورة التالية



http://www.arab-eng.org/vb/uploaded/14503_1155856061.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155856079.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155855139.gif



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



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


http://www.arab-eng.org/vb/uploaded/14503_1155902052.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155906224.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155902614.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155902889.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155903020.gif


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




إضافة خصائص إلى الرسومات داخل الماتلاب
في بعض الأحيان يكون من الضروري جداً تغيير بعض الخواص لدى الرسومات التي نحصل عليها مثل تغيير الألوان, وتغيير الرسمة من خطوط متصلة إلى نجوم ونقاك وغيرها, وهذه هي مجموعة الخصائص التي تتم من خلال الماتلاب
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913318.gif
hr
فكيف يتم وضع تلك الخصائص داخل الماتلاب, تكون هذه الخصائص متضمنة في الأمر plot حيث تأخذ الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913574.gif
hr
إعتماداً على المثال السابق أخذه سنقوم بتعديل بعض الخصائص
سنقوم مثلاً بتغيير لون الخط إلى الأحمر
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913685.gif
hr
وبالتالي نحصل على الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913898.gif
hr
ولنقم الآن بإضافة خاصية جديدة بأن يكون الخط ليس خطاً متصل وإنما عبارة عن نجوم
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913928.gif
hr
وبالتالي نحصل على الشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155913967.gif
hr
وإذا أردنا أن نحصل على نجوم حمراء ( أي دمج الخاصيتين معاً)
hr
http://www.arab-eng.org/vb/uploaded/14503_1155914091.gif
hr
وبالتالي نحصل على الشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155914130.gif
hr
وهنا نكون قد شرحنا خصائص الرسومات داخل الماتلاب


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



http://www.arab-eng.org/vb/uploaded/14503_1155907315.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155907354.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155907534.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155907991.gif



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



http://www.arab-eng.org/vb/uploaded/14503_1155908033.gif

علمية وضع الرسومات في نوافذ منفصلة
سنقوم الآن بدلاً من وضع الرسومات في نفس النافذة سنقوم بوضعها في نوافذ مختلفة
وعلى نحتاج إلى الأمر figure والذي يقوم بفتح نافذة فارغة إذا تم وضعه منفصلاً, جرب ذلك في نافذة الأوامر ستلاحظ ان الماتلاب قام بإظهار نافذة رمادية اللون فارغة شاهد الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155916000.gif
hr
حيث وجود تلك النافذة يعني انه سيتم تنفيذ أمر الرسم plot الذي بعد أمر figure علماً أنه بعد كل أمر figure يتم وضع الخصائص التي تختص بهذه الرسمة مثل أمر grid الذي سبق شرحه.
وهذا مثال بسيط على ذلك
hr
http://www.arab-eng.org/vb/uploaded/14503_1155917140.gif
hr
وستحصل على نافذيتين بهما كلتا الرسمتين
hr
http://www.arab-eng.org/vb/uploaded/14503_1155917243.gif
hr
http://www.arab-eng.org/vb/uploaded/14503_1155917254.gif
hr
والآن قم بتشغيل البرنامج مرة أخرى, ستلاحظ أن عدد النوافذ قد زاد نافذة واحدة, فكيف حدث هذا؟
يقوم الماتلاب برسم أول دالة على النافذة الأخيرة التي تم رسم الدالة الثانية بها, ثم يقوم برسم الدالة الثانية في نافذة جديدة بسبب وجود الأمر figure ولحل هذه المشكلة قم بإستخدام الأمر close all بعد الأمر clear بحيث يتم إغلاق أي نوافذ كانت مفتوحة قبل ذلك عند تشغيل البرنامج كل مرة وبالتالي سيكون هنالك ثلاثة أوامر لابد من إستخدامها في كل مرة يتم عمل أي برنامج وهم
clc
clear
close all
وهذا هو المثال الذي تم عمله منذ قليل بعد التعديل
hr
http://www.arab-eng.org/vb/uploaded/14503_1155917484.gif
hr





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


http://www.arab-eng.org/vb/uploaded/14503_1155939566.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155941813.gif


وبالتالي الرسمتان سيكون وكأنهما متجه عدد صفوفها 1 وعدد الأعمدة 2 , والرسمة الأولى تأخذ الخانة الأولى , والرسمة الثانية ستأخذ الخانة الثانية
هذا ما يجب تحديده بالتفصيل عند إستخدام الأمر subplot
ثم نستخدم الصورة العامة لأمر subplot والتي تكون كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1155940456.gif
ولرسم الشكل الأول لابد من كتابة الأمر في الصورة التالية


http://www.arab-eng.org/vb/uploaded/14503_1155940693.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155940814.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155940924.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155940963.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155941178.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155941550.gif


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


http://www.arab-eng.org/vb/uploaded/14503_1155941586.gif




تسمية المحاور
سنقوم الآن بتنفيذ الجزء قبل الأخير من الدورة وهو تمية المحاور, فمثلاً إذا أردنا أن نقوم بتسمية محور السينات X-Axis نقوم بإستخدام الأمر xlabel وإذا أردنا أن نقوم بتسمية محور الصادات نقوم بإستخدام الأمر ylabel حيث يأخذ كلا الأمرين صورة واحدة وهي كالتالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155942622.gif
hr
نفس الشئ يتم تطبيقه على محور الصادات ylabel
ولنقوم الآن بعمل مثال تطبيقي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155942997.gif
hr
وبالتالي نحصل على الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155943064.gif
hr

وضع عنوان في أعلى الرسمة
يمكن وضع عنوان أعلى كل رسمة وذلك من خلال الأمر title
حيث يكون هذا الأمر بالشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155943770.gif
hr
وبالرجوع إلى المثال السابق ووضع التعديلات عليه كما هو موضح
hr
http://www.arab-eng.org/vb/uploaded/14503_1155943879.gif
hr
وبالتالي نحصل على الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155943921.gif
[LINE]hr[/LINE
وضع نص على نقطة أو أكثر داخل الرسم
يمكن إضافة نص على نقطة أو أكثر على الرسم, وذلك بإستخدام الأمر text ويأخذ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1155989647.gif
وسنأخذ مثالاً بسيطاً في كيفية إيجاد الرقم الأكبر, ثم وضع دائرة حمراء حول النقطة العظمى ووضع كلمة maximum point
ولكن دعونا نقوم بشرح الأمر الهام find هذا الأمر يقوم بإيجاد مكان العنصر داخل المتجه بمجرد تحديد خصائص هذا العنصر, فمثلاً سنقوم بعمل دالة وسنبحث على العنصر الأكبر بينها كما في البرنامج التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155990681.gif
hr
وعند تشغيل البرنامج, نجد القيم كالتالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155990845.gif
hr
وبالتالي إذا أردنا الحصول على قيمة X عند القيمة العظمى للـــ Y, سنقوم بعمل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155991013.gif
hr
وكما تلاحظ فإن قيمة X والتي تعطي القيمة العظمى Y تظهر في workspace, أنظر الصورة التالية
hr
http://www.arab-eng.org/vb/uploaded/14503_1155991097.gif
hr
والآن سنقوم بتطبيق المثال ووضع كلمة النقظة العظمى عليها
hr
http://www.arab-eng.org/vb/uploaded/14503_1155991543.gif
hr
وبالتالي ستظهر الرسمة كالتالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1155991585.gif

eng_a_sayed
01-04-2010, 03:58 AM
الأمر legend
يستخدم هذا الأمر في وضع دليل على صفحة الرسم ليبين ماذا يعني كل لون على الرسم, فمثلاً سنقوم بوضع الأمر legend في المثال التالي علماً أن هذا الأمر لابد من أن يأخذ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156110919.gif
ويمكن كتابة البرنامج التالي على الماتلاب
hr
http://www.arab-eng.org/vb/uploaded/14503_1156111329.gif
hr
وبالتالي ستجد الناتج كالتالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1156111355.gif
hr
كما ترى فإن الأمر legend يعتمد على عدد العلاقات المرسومة داخل الرسم, فمثلاً المثال الذي سبق أخذه كان يستخدم في رسم علاقة ثم إيجاد النقطة العظمى أي أن عدد العلاقات المرسومة إثنتان, وبالتالي تتم برمجته بالشكل التالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1156112324.gif
hr
وبالتالي تكون الرسمة كالتالي
hr
http://www.arab-eng.org/vb/uploaded/14503_1156112353.gif
hr
ويجب مراعاة أن يتم إستخدام الأمر legend بعد الأمر plot وليس العكس



فتح نافذة جديدة وتحديد دقتها
يعطي الماتلاب القدرة على فتح نافذة جديدة وتحديد القيم العظمى والصغرى لمحور السينات وكذلك بالنسبة لمحور الصادات, وذلك بإستخدام الأمر axis, والذي يأخذ الصورة التالية في كتابته
http://www.arab-eng.org/vb/uploaded/14503_1156447164.gif
مثال تطبيقي
قم بفتح نافذة للرسم بحيث تكون بالمواصفات التالية
1- أقل قيمة لمحور السينات هي 10-
2- أكبر قيمة لمحور السينات هي 10
3- أقل قيمة لمحور الصادات 10-
4- أكبر قيمة لمحور الصادات 10
خطوات الحل
في نافذة الأوامر قم بإدخال التالي
http://www.arab-eng.org/vb/uploaded/14503_1156447395.gif
وستظهر لك النافذة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156447448.gif
وبالتالي نكون قد أتممنا شرح كيفية فتح نافذة للرسم بنجاح
يمكنك الآن وضع الخصائص التي تريدها على تلك النافذة
أما الدرس القادم فهو مهم جداً وهو كيفية إدخال النقط على الرسم من خلال إستخدام الماوس
ونلقاكم في رعاية الله في الدرس القادم




كيفية إدخال النقاط من خلال الماوس
تعلمنا أنه يمكننا إدخال القيم بإستخدام المتجهات أو المصفوفات, ولكن يوفر الماتلاب قدرة في إدخال النقاط من خلال الرسم بإستخدام الماوس, ونظراً لأننا نقوم بإختيار النقاط من على الرسم فهذا يعني أن النقاط التي يتم إختيارها يتم تمثيلها في قيمة في محور السينات وقيمة في محور الصادات, ويتم وضع قيم محاور السينات والصادات في صورة متجه.
يستخدم الأمر ginput في عملية إدخال النقاط بإستخدام الماوس, ويتم كتابة ذلك الأمر في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156448948.gif
أما إذا أردنا إدخال عدد لا نهائي من النقاط يمكن ذلك بعدم ذكر عدد نقاط الإدخال, كما في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156449489.gif
وبعد الإنهاء من إدخال النقاط كل ما عليك هو الضغط على مفتاح Enter في لوحة المفاتيح.
مثال تطبيقي
سنقوم بفتح نافذة للرسم بها شبكة, وأقل قيمة لمحور السينات هي صفر وأكبر قيمة لمحور السينات هي 10 وكذلك بالنسبة لمحور الصادات, ثم إدخال عدد كبير من النقاط على الرسم بإستخدام الأمر ginput, وهذه النقاط يتم طباعتها على شكل دوائر حمراء.
ويتم كتابة الأوامر بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156452128.gif
وستظهر لك نافذة لإدخال النقاط , وبعد إتمام عملية الإدخال إضغط على Enter لإتمام الإدخال وستظهر لك النافذة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156452815.gif
وبالتالي نكون قد أتممنا شرح هذه الجزئية بنجاح, وسيتم التطرق في دورة البرمجة بإستخدام الماتلاب إلى كيفية إظهار النقاط بمجرد الضغط عليها.



الرسم ثلاثي الأبعاد
كما تعلمنا أن الرسم ثلاثي الأبعاد يعتمد على ثلاثة محاور لرسمها, محور X , Y & Z , وأن كلاً من X & Y يمثلان المستوى الأفقي, وأن المحور Z يمثل الإرتفاع, ولكن تلك القيم هي قيم النقاط الموجودة المحاور, ولكن حتى يتم رسم أي نقطة في المستوى الأفقي يجب أن نقوم تعريف ذلك للماتلاب وذلك بإستخدام الأمر meshgrid حيث يقوم الماتلاب بإنتاج مصفوفة يتم تكرار قيم محور السينات X-Axis بنفس طول محور الصادات Y-Axis, كما يقوم بتكرار قيم محور الصادات Y-Axis بنفس طول قيم السينات X-Axis, وبهذا تكون المصفوفة المتكونة هي المستوى الأفقي كما هو واضح بالرسم التالي.
http://www.arab-eng.org/vb/uploaded/14503_1156456524.gif
علما أن الأمر meshgrid يأخذ الصورة التالية في كتابته
http://www.arab-eng.org/vb/uploaded/14503_1156457304.gif
وبعد إستخدام الأمر meshgrid يتم إستخدام الأمر mesh والذي يستخدم كبديل الأمر plot ولكن في الرسم ثلاثي الأبعاد
مثال تطبيقي
نقوم في هذا المثال بتعريف قيم محور السينات X-Axis وسنقوم بوضع المعادلة التي تصف محور الصادات وعلاقته بمحور السينات, أخيراً وليس آخراً نقوم بوضع العلاقة التي تربط بين محور السينات والصادات.
http://www.arab-eng.org/vb/uploaded/14503_1156458224.gif
وبالتالي تكون الرسمة الناتجة كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156458263.gif
كما ترى فإن الرسمة الناتجة عبارة عن شبكة تعتمد مجموعة النقاط لكلاً من X & Y فإذا أكثرنا عدد نقاط X وبالتالي تزداد قيمة Y كذلك
http://www.arab-eng.org/vb/uploaded/14503_1156458520.gif
وبالتالي فإن الرسمة الناتجة تكون كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156458571.gif
أعتقد أنك تلاحظ الفرق الآن
ملاحظة كلما زادت عدد النقاط كلما زاد الوقت المستغرق لإظهار النتائج في الماتلاب


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

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

EVAL
قبل البدء بالتطبيق الأول, لابد من ذكر أمر هام وهو الأمر eval والذي له هدف أكثر من رائع سيتضح بمثال, لنقل أن لدينا معادلة جيب الزاوية Sine Wave ولكن تم وضعها في الصورة التالية في الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1156588326.gif
وللتأكد أنها في صورة string يجب الذهاب إلى الــ Workspace
http://www.arab-eng.org/vb/uploaded/14503_1156588400.gif
ولرسم موجة جيب الزاوية لابد من تعريف قيم t والتعويض فيها, ولكن كما ترون يصعب التعويض في المعادلة بسبب وجودها بين قوسين, وتلك الأقواس هي بمثابة حاجز للتعويض, وهنا يجب أن نخترق ذلك الحاجز وذلك بإستخدام الأمر eval, حيث يعمل الأمر على البحث عن المعادلة بين الأقواس, ثم يبحث عن القيم التي سوف يتم تعويضها في تلك المعادلة, وسوف يتم كتابة البرنامج كالتالي في الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1156589088.gif
وبالتالي ستظهر النتيجة كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156589128.gif
ونحن الآن على أتم إستعداد لتنفيذ التطبيق الأول


حل ثلاثة معادلات
كما تعلمنا أن الماتلاب له القدرة على إدخال حل المعادلات, فمثلاً المعادلتان التاليتين
http://www.arab-eng.org/vb/uploaded/14503_1156533239.gif
ويمكن كتابة ذلك على الماتلاب كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156533386.gif
وبالتالي نجد النتائج كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156533454.gif
ولكن هذا يشترط أن يتم إدخال المعاملات coefficients للمعادلتين, وهذا بالتالي يتطلب التمحيص والتدقيق في كل معادلة, فإذا كثرت المعادلات إزداد الوقت المستغرق في البحث, فتسهيلاً للمستخدم يجب عمل برنامج لإدخال المعادلات بشكل كام, فمثلاً سنقوم بعمل برنامج لحل ثلاثة معادلات
http://www.arab-eng.org/vb/uploaded/14503_1156534656.gif
ولحل هذه المعادلات يجب وضعها في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156534850.gif
ولذلك يجب التفكير كالتالي, عندما يقوم المستخدم بإدخال المعادلات الثلاثة, يجب على الماتلاب أن يحدد قيم المعاملات أولاً لإيجاد حل قيم المتغيرات, وحلاً لهذه المشكلة سنجعل الماتلاب يبحث عن علامة "="
لكل معادلة, ثم سنقوم بتعريف الجزء الذي يحتوى على المتغيرات لكل معادلة, ثم سنقوم بفرض أن
x=1 , y=0,z=0
ومنها نحصل على قيم معاملات x في المعادلات الثلاثة
ثم سنفرض أن x=0, y=1, z=0
ومنها نحصل على قيم معاملات y في المعادلات الثلاثة
ثم سنفرض أن x=0,y=0,z=1
ومنها نحصل على قيم معاملات z في المعادلات الثلاثة
وبالتالي نكون قد حصلنا على معاملات المعادلات الثلاثة, لم يتبقى سوى إيجاد قيم معاملات D وسوف يتم توضيح ذلك عند كتابة البرنامج على الماتلاب.
http://www.arab-eng.org/vb/uploaded/14503_1156539128.gif
وسنقوم الآن بوضع ثلاثة معادلات كما في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156539637.gif
وبالتالي ستكون النتائج كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156539940.gif
وعلى نفس المنوال يمكن حل أي عدد من المعادلات مهما كانت كبيرة, وسنأخذ لاحقاً كيفية عمل نافذة لإدخال تلك المعادلات
وبهذا نكون قد أتممنا التطبيق الأول بنجاح

eng_a_sayed
01-04-2010, 03:58 AM
Zero Crossing
في هذا المثال الهام سنقوم بشرح كيفية رسم معادلة, ووضع دائرة زرقاء على مناطق تقاطعها مع محور السينات, والتي يجب أن تأخذ الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156592307.gif
قد يعتقد البعض بأن هذا البرنامج سهلاً تقريباً, ولكن البرنامج يحتاج إلى التفكير قليلاً, فدعونا نفكر في الطريقة التي قد يفكر بها أي شخص الآن, حيث سيقوم بكتابة البرنامج الذي يبحث عن النقاط التي بها Y=0 ثم يقوم بإيجاد القيم التي بها تلك النقاط, كما في البرنامج التالي
http://www.arab-eng.org/vb/uploaded/14503_1156592049.gif
وستكون الرسمة النالتجة بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156592180.gif
فما سبب هذه المشكلة, حقيقة سببها ما يسمى بــ Digital Domain, فما هو Digital Domain
معنى ذلك أن أي معادلة يتم رسمها ليست عبارة عن خط متصل وإنما مجموعة من النقاط, تعتمد على عدد النقاط التي تم إختيارها في لرسم الدالة, ثم التوصيل بين تلك النقاط, فمثلاً إذا قمنا بعمل برنامج لرسم دالة الجيب sine wave بعدد نقاط قليل, كما في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1156593665.gif
وبالتالي ستجد الدالة بهذا الشكل
http://www.arab-eng.org/vb/uploaded/14503_1156593701.gif
كما ترى, فإن الماتلاب قام بتحديد النقاط والتوصيل بينها, وللتأكد من ذلك قم بعمل التالي في البرنامج
http://www.arab-eng.org/vb/uploaded/14503_1156593785.gif
وبالتالي فإن الرسمة الناتجة, تكون في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156593826.gif
وهذا ما يسمى Digital Domain والآن لنقم بزيادة عدد النقاط في نفس البرنامج
http://www.arab-eng.org/vb/uploaded/14503_1156594014.gif
وتكون الرسمة كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156594037.gif
كما ترى في الرسمة لايزال هنالك فراغات بين النقاط , والتي من الممكن أن لا تتقاطع مع محور السينات كما حدث في البرنامج الذي قمنا بعمله, وهذا هو سبب عدم ظهور دائرة حمراء حول منطقة التقاطع, ودعونا نقوم بعمل البرنامج الأول ولكن في صورة Digital Domain
http://www.arab-eng.org/vb/uploaded/14503_1156594594.gif
وستظهر الرسمة في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156594712.gif
والآن دعونا ننقاش حلاً لهذه المشكلة, عند ضرب نقطة في النقطة التي بعدها سنحصل على رقم, ولكن الفكرة أن الرقم قد يكون موجباً في حالة ان النقطتان فوق محور السينات, بينما إذا كانت إحدى النقط فوق محور السينات والآخرى تحت محور السينات فإن الرقم الناتج يكون سالباً, أما إذا كان كلا النقتطين أسفل محور السينات فإن ناتج ضرب النقتطين يكون موجباً, أي أن إذا ظهر رقم سالب فهذا يعني نقطة تقاطع, ثم يتم وضع دائرة حمراء على تلك النقطة, شاهد الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156597120.gif
كل ما علينا هو ضرب كل نقطة في النقطة التي تليها, وذلك عن طريق تعريف y ثم تعريف نفس الدالة, ولكن متقدمة عنها برقم واحد, ثم ضربهم معاً, فمثلاً إذا كانت قيمة y كالآتي
http://www.arab-eng.org/vb/uploaded/14503_1156597303.gif
ثم سنقوم بإضافة رقم ليتم تحريك تلك القيم, ويفضل أن يكون الرقم صفراً, كما سيتم حذف الرقم الأخير حيث أنها ستكون أطول بعدد واحد فقط من الدالة الأصلية مما سيترتب عليه خطأ داخل الماتلاب وبالتالي فإن الدالة الجديدة ستكون متأخرة برقمهي
http://www.arab-eng.org/vb/uploaded/14503_1156597368.gif
والآن سنقوم بكتابة البرنامج بالتدريج التالي
http://www.arab-eng.org/vb/uploaded/14503_1156599148.gif
وبالتالي ستلاحظ الرسمة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156599173.gif
وبالتالي تكون الرسمة قد أصبحت صحيحة
وبهذا ينتهي التطبيق الثاني



إيجاد المساحة تحت المنحنى
هذا المثال من التطبيقات الهامة, حيث سنقوم بتعريف المدخلات ورسم الدالة, ثم سنختار نقطتان نقطتان من على الرسم, ثم سنقوم بإيجاد المساحة بين تلك النقطتين, ونقوم بتظليل الجزء المختار, ولكن سنقوم في هذا المثال بإستخدام أمرين جديدين وهما
trapz لإيجاد المساحة تحت المنحنى
area لتظليل تلك المساحة من الدالة
وسنقوم بشرح الأمر area
حيث يأخذ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156682742.gif
وسنقوم بتنفيذ مثال بسيط على الماتلاب برسم دالة الجيب ثم تظليل تلك الدالة
http://www.arab-eng.org/vb/uploaded/14503_1156682900.gif
وستظهر الرسمة كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156682933.gif
أما بخصوص الأمر trapz فيستخدم في إيجاد المساحة تحت المنحنى, حيث يأخذ الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1156683108.gif
وسنقوم بعمل برنامج بسيط في إيجاد المساحة تحت منحنى دالة الجيب
http://www.arab-eng.org/vb/uploaded/14503_1156683194.gif
وبالتالي ستلاحظ قيمة المساحة من خلال نافذة Workspace
http://www.arab-eng.org/vb/uploaded/14503_1156683278.gif
الآن نتوجه إلى البرنامج الذي نريد تنفيذه, سنقوم بإدخال المدخلات inputs ثم سنقوم بالتعويض بها في المخرجات outputs ثم سنقوم بإختيار النقطتان من على الرسمة, ثم سنوجد المساحة تحت المنحنى بين تلك النقطتين, ثم سنقوم بتظليل المساحة بين النقتطين.
http://www.arab-eng.org/vb/uploaded/14503_1156684208.gif
وتم إختيار نقتطان عشوائيتان, وظهرت الرسمة كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1156684260.gif
وبهذا يكون التطبيق الثالث قد تم بنجاح
التطبيق الرابع والأخير في هذه الدورة
Curve Fitting
سنقوم الآن بأخذ المثال التطبقي الثالث والأخير وهو Curve Fitting حيث أن هذه العملية هامة جداً في إيجاد علاقة مكافأة لأي نظام, فمثلاً عند إدخال مجموعة من المدخلات inputs سنلاحظ أن الخرج outputs تأخذ مجموعة من النقاط المتشتتة التي لا تجمعها علاقة محددة, أما عند إستخدام curve fitting سنلاحظ تكون علاقة تقريبية لتوصيف النظام.
وهذه صورة لمجموعة من النقاط الخارجة من النظام لا تجمعها أي علاقة
http://www.arab-eng.org/vb/uploaded/14503_1157026695.gif
ولكن سنقوم بشرح أمرين وهما ones و zeros واللذان لهما القدرة التالية
ones يستطيع أن يكون مصفوفة أو متجه جميع عناصره 1
zeros يستطيع أن يكّون مصفوفة أو متجه جميع عناصره صفر
لاحظ الصورة التالية في طريقة كتابة كلا الأمرين
http://www.arab-eng.org/vb/uploaded/14503_1157027053.gif
وستلاحظ ظهور النتائج بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1157027085.gif
أما الآن سنتكلم عن أنواع Curve Fitting
هنالك أنواع عديدة منها
1- linear
2- Quadratic
3- Sinusoidal
4- exponential
وسنتناول النوع الأول والرابع, أما الآن سنتناول النوع الأول
Linear Curve Fitting
في هذا النظام يتم إيجاد خط مستقيم بحيث تكون المسافة العمودية بين كل نقطة والخط المستقيم أقل ما يمكن, يمكن مشاهدة الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157028186.gif
فكما هو واضح في المثال كل قيمة في محور السينات لها قيمة مناظرة في محور الصادات
وحيث اننا نستخدم طريقة Linear Curve Fitting فإن لكل نقطة على محور الصادات علاقة خطية مع نقطة محددة على محور السينات, وهذه العلاقة تكتب في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157029284.gif
فإذا عدنا بالذاكرة للخلف عند حل المعادلات سنجد اننا كنا نقوم بكتابة المعادلات بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1157029370.gif
ويمكنا كما تعلمنا كتابة تلك المعادلة في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157029609.gif
وبالرجوع إلى المعادلة الخاصة بــ Linear Curve Fitting نستطيع كتابتها في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157029936.gif
وبهذا نكون قد حصلنا على قيمة كلاً من K & T والتي نستطيع أن نقوم بتعريف مجموعة قيم للمتغير X وبالتالي نقوم بالحصول على قيمة Y ومنها نقوم برسم العلاقة بين X & Y والتي تمثل خطاً تبعاً للمعادلة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157030083.gif
والآن سنقوم بالبدء بكتابة البرنامج في الماتلاب خطوة خطوة
سنقوم الآن بتعريف الماتلاب بمجموعة القيم للمتغير X والعلاقة للنظام التي تعطينا قيمة Y
http://www.arab-eng.org/vb/uploaded/14503_1157030806.gif
والآن لنفترض أن لدينا أكثر من قيمة X وبالتالي سنحصل على أكثر من قيمة Y
وحيث أن العلاقة بين X & Y خطية كما ذكرنا مسبقاً فإننا بالتالي سيكون لدينا أكثر من معادلة يمكن كتابتها في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157031250.gif
والتي يمكن وضعها في الشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1157031484.gif
وسنقوم في الماتلاب بتحويل متجه الصف Row Vector إلى متجه عمودي Column Vector ثم إضافة متجة عمودي جميع قيمه واحد بإستخدام الأمر ones كما تعلمنا مسبقاً
http://www.arab-eng.org/vb/uploaded/14503_1157032113.gif
والآن قد يظن البعض أنه حتى نحصل على قيم K & T يجب أن تكون صورة الحل كالآتي
http://www.arab-eng.org/vb/uploaded/14503_1157031757.gif
ولكن هذا صحيح إذا كانت قيمة A مصفوفة مربعة , فهل هي كذلك الآن ؟ بالطبع لا, فما العمل
إذا كانت المصفوفة ليست مربعة يتم وضع علامة القسمة مقلوبة ( \ ) ولا يتم إستخدام الأمر inv أي أن صورة الحل الصحيح تكون
http://www.arab-eng.org/vb/uploaded/14503_1157031869.gif
وبالتالي يكون الحل في الماتلاب كالآتي
http://www.arab-eng.org/vb/uploaded/14503_1157032195.gif
وبالتالي فإن المعادلة الناتجة والتي من خلالها سنرسم خطاً بحيث تكون المسافة العمودية بينه وبين النقاط أقل ما يمكن, تكون في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157032344.gif
والآن سنقوم بتعريف الماتلاب عدة نقاط بحيث نرسم ذلك الخط
http://www.arab-eng.org/vb/uploaded/14503_1157032490.gif
وبالتالي نحصل على الرسم بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1157032520.gif
وننتقل إلى التطبيق الذي يليه وهو
Exponential Curve Fitting



Exponential Curve Fitting
سنأخذ الآن التطبيق الأخير في هذه الدورة وهو Exponential Curve Fitting , ويمكن كتابة العلاقة بين X & Y بالشكل التالي
http://www.arab-eng.org/vb/uploaded/14503_1157033724.gif
وإذا وجدت أكثر من نقطة, فهذا يعني وجود أكثر من معادلة والتي تكتب في الصورة التالية
http://www.arab-eng.org/vb/uploaded/14503_1157033854.gif
والتي يمكن كتابتها في صورة المصفوفة
http://www.arab-eng.org/vb/uploaded/14503_1157034040.gif
والآن سنقوم بوضع البرنامج على الماتلاب
http://www.arab-eng.org/vb/uploaded/14503_1157034203.gif
وبالتالي سيظهر الناتج كالتالي
http://www.arab-eng.org/vb/uploaded/14503_1157034265.gif
هذا ونكون قد أنهينا دورة الماتلاب بفضل الله
المصدر http://www.arab-eng.org/vb/showthread.php?t=15194
http://www.dbaasco.com/up/im-1/dbaasco39e6ad1b74.gif

ابو نادر
01-04-2010, 08:20 AM
ماشاء الله


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


بارك الله يا ابو ادم وتستاهل http://www.dbaasco.com/vb/images/rating/rating_5.gif

سعيد قادر
03-05-2010, 04:08 PM
ما شاء الله :musicboohoo:

samy20004
04-04-2010, 12:40 AM
شكرا على هذا الشرح والتقديم

khaled13
09-22-2010, 11:39 PM
بارك الله فيك وعليك اخى الفاضل وبارك لك فى صحتك...........

MAlsharif
12-27-2010, 10:15 AM
السلام عليكم

يؤسفني ان اقول ان العمل نسخ ولصق من منتدى المهندسين العرب أيضا هناك الموضوع مثبت

لاجديد
ذكر مصدر النسخ أفضل

eng_a_sayed
12-27-2010, 10:53 AM
السلام عليكم

يؤسفني ان اقول ان العمل نسخ ولصق من منتدى المهندسين العرب أيضا هناك الموضوع مثبت

لاجديد
ذكر مصدر النسخ أفضل

رائع أنت أخى الفاضل ... نقد بناء بلفعل

أنا لم أذكر أننى من قام بهذا الشرح والجميع يعلم ذلك

لكن

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

الرجاء الاطلاع على باقى المنتدى لتعلم ما أقول

تحياتى لك وللجميع

amiraa
02-08-2011, 11:11 PM
بارك الله فيكم

المخترع 616
03-08-2011, 10:30 AM
أخي العزيز eng_a_sayed
أولا" مشكور على جهودك الكبيره سؤالي هل يوجد لل MATLAB تطبيقات مثل التحكم ب INTERFACE و شكرا" مقدما"0 :)

محمد جاسم
07-22-2011, 12:05 AM
شكرا على هذا المجهود
الشرح وافي جدا وفقكم الله للمزيد

eng_a_sayed
07-22-2011, 12:35 PM
أخي العزيز eng_a_sayed
أولا" مشكور على جهودك الكبيره سؤالي هل يوجد لل MATLAB تطبيقات مثل التحكم ب INTERFACE و شكرا" مقدما"0 :)

طبعاً أخى الفاضل

المتلاب برنامج رائع جداً

وله تطبيقات فى معظم المجالات

ويتعامل مع معظم الانترفيس مثل السيريال والباراليل واليوأسبى

راجع المواضيع التالية:
http://www.mathworks.com/help/techdoc/matlab_external/f62852.html
http://www.mathworks.com/help/techdoc/matlab_external/f38496.html

تحياتى

emad halim
08-26-2011, 06:32 AM
التسجيل مش راضي يكمل في الموقع بتاع البرنامج يريد يكون فية رابط مباشر اعرف انزل منة البرنامج :type::type::type:

emad halim
08-26-2011, 06:42 AM
شكرا علي الشرح الجميل المنظم دة بس فيه مشكلة عندي ان البرنامج مش بينزل من الرابط الي مرفوع

emad halim
08-26-2011, 06:45 AM
شكرا يابشمهندس علي الشرح الجميل دة

Damekcloes
09-14-2011, 12:20 AM
Thanks

fahi6
10-21-2011, 08:24 PM
ما شاء الله

samerk1971
04-05-2012, 02:46 AM
thank you!

عببود
05-10-2012, 12:19 AM
شكرا

the legend
08-29-2012, 04:23 PM
لو سمحت اخوي ممكن تجددو الصور لان الصور لا تعرض

aiwa19
10-24-2012, 02:03 PM
جزاك الله كل الخير

comsol
11-12-2012, 06:42 PM
بارك الله فيك

Osama Omara
11-17-2012, 03:53 PM
جزاك الله كل خير

farisislam
10-14-2013, 12:11 AM
السلام عليكم
سأبدأ بإذن الله بتنزيل كتاب ماتلاب لمؤلفه موفق شما وسيكون على شكل فصول.

http://www.4shared.com/office/lHnlkMoN/1-_.html


http://www.4shared.com/office/NU18BcBR/3-__.html
نفعنا الله واياكم به.

farisislam
10-14-2013, 12:18 AM
الفصل الثالث

http://www.4shared.com/office/4_Xq2aas/4-_.html

farisislam
10-14-2013, 12:25 AM
الفصل الرابع
http://www.4shared.com/office/4_Xq2aas/4-_.html

farisislam
10-20-2013, 08:46 AM
المصفوفات الخلوية و البنيوية
http://www.4shared.com/office/tPSZdQ4K/4-__.html

farisislam
10-20-2013, 08:47 AM
كثيرات الحدود
http://www.4shared.com/office/tPTZ6POI/5-_.html

wimax
03-16-2014, 05:15 PM
thanks alot

wimax
03-16-2014, 05:16 PM
Good performance

ThePunisher_YA7
07-05-2017, 11:37 PM
مشكوووووووور