# منتديات طلاب الجامعات الأردنية > المنتدى الهندسي العام >  الماتلاب خطوة بخطوة (تعلم كل شئ عن الماتلاب)

## المهندس

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

*ملاحظه هامه : كل الشكر والامتنان  للمشرف العام حسان القضاة على مجهوده الكبير معي في اخراج الدوره الى حيز الوجود* 


سيتم تقسيم تعليم برنامج الماتلاب إلى أقسام, تبعاً لنوع التطبيق, وسيتم التطرق إلى البرنامج تبعاً للترتيب التالي
 1- مقدمة في الماتلاب
2- مقدمة في المحاكاة Simulink
3- أنظمة التحكم بإستخدام الماتلاب Control System Using the Matlab
4- تطبيقات الأشارة بإستخدام الماتلاب Signal Application Using Matlab
5- عمليات الإشارة الرقمية بإستخدام الماتلاب Digital Signal Processing Using Matlab
6- النظريات الرياضية التقريبية بإستخدام الماتلاب Numerical Application Using Matlab
7- تطبيقات معالجة الصور بإستخدام الماتلاب Image Processing Applications Using Matlab
8- تطبيقات موجات الراديو بإستخدام الماتلاب Radio Frequency Applications Using Matlab
9- التطبيقات الميكانيكية بإستخدام الماتلاب Mechanical Applications Using Matlab
10- تطبيقات الرادار بإستخدام الماتلاب Radar Applications Using Matlab
11- تطبيقات الروبوت بإستخدام الماتلاب Robots Applications Using Matlab
12- التطبيقات الإلكترونية بإستخدام الماتلاب Electronics Applications Using Matlab
13- تطبيقات أشباه الموصلات بإستخدام الماتلاب Semiconductors Applications Using Matlab
14- التطبيقات المستخدمة في صناعة السيارات بإستخدام الماتلاب Automotive Applications Using Matlab
15- التطبيقات المستخدمة في علوم الفضاء والدفاع الجوي بإستخدام الماتلاب Aerospace and Defense Applications Using Matlab
16- تطبيقات الإتصالات بإستخدام الماتلاب Communication Applications Using Matlab
كما تروا إخواني الكرام فإن المشوار طويل, وأسأل الله أن يعيننا على إستكمال هذا المشوار إلى آخر
وسيكون هنالك ثلاثة مواضيع لابد من أخذه قبل الشروع في التطبيق وهما

1- مقدمة في الماتلاب
2- مقدمة في المحاكاة
3- أنظمة التحكم بإستخدام الماتلاب

----------


## المهندس

أخواني الكرام, وأيضاً قبل البدء, لابد من ذكر المواقع الهامة لخدمة برنامج الماتلاب.

موقع الشركة المصنعة لبرنامج الماتلاب
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:
حيث تقوم تلك القائمة, بتوفير المساعدات الضرورية في البرنامج, ووسائل الإتصال بالشركة المصنعة, وآخر التحديثات, وكذلك تعلم الماتلاب باللغة الإنجليزية



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

تحياتي للجميع

----------


## المهندس

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

عملية الجمع:

تأخذ علامة الجمع في الماتلاب الرمز المعروف للجمع وهو "+"
فمثلاً إذا قمنا بجمع 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



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



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






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








يستكمل...

----------


## المهندس

يستكمل....

----------


## المهندس

الدوال الزائدية العكسية Inverse Hyperbolic Functions




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












يقوم الماتلاب من خلال التعويض بالمتغير (z) في المعادلات الموضحة الحصول على الدوال الزائدية العكسية

أسأل الله التوفيق لي ولكم

----------


## المهندس

أخواني الكرام نستكمل برنامج الماتلاب, 
سنتحدث هنا عن : 
الدوال الأسية 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
أنظر الصورة التالية



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



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

----------


## المهندس

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



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


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



وهنا نذكر أن هنالك طريقتان لحل المعادلتان
1- طريقة الحذف
2- قسمة المصفوفات

وسأذكر سريعاً طريقة الحذف, أنظر الصورة التالية



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



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



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



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



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



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




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

----------


## المهندس

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





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




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



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




ماهي العمليات الشائعة على المتجهات؟
1- طول المتجه
2- إضافة عنصر
3- إستبدال عنصر
4- عملية حذف عنصر
5- نداء عنصر
6- نداء عدد عناصر
7- إيجاد العنصر الأكبر
8- إيجاد العنصر الأصغر
9- إيجاد حاصل ضرب العناصر
هذه هي العمليات الشائعة في الماتلاب وسنتناول كل منها بالتفصيل بإذن الله

----------


## المهندس

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



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



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


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

----------


## sam7jon

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

----------


## المهندس

إضافة عنصر



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



كما هو واضح, أن عدد العناصر الموجودة في هذا المتجه هو 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
ويجب أن يأخذ هذا الأمر الصورة التالية في كتابته


والآن لنأخذ مثالاً تطبيقياً في الماتلاب

----------


## المهندس

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


 يجب تعريف أنواع المصفوفات, فهنالك نوعان من المصفوفات
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 ولكن عملية الجمع يقوم الماتلاب بإيجاد جمع كل عمود على حدى وتوضع في صورة متجه, كما في المثال التالي

----------


## المهندس

إيجاد حاصل ضرب العناصر

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

----------


## المهندس

إيجاد قطر المصفوفة

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



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



أو أننا نريد الحصول على حاصل ضرب تلك العناصر

----------


## المهندس

المصفوفة السحرية

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

----------


## المهندس

*M-File*


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



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

----------


## المهندس

نافذة M-File

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



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



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



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



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



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



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

----------


## المهندس

مثال على M-File


سنقوم الآن بكتابة الـــ M-File




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



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




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



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

----------


## المهندس

بعض الأوامر الهامة
قبل الإنتقال إلى الرسم plotting لابد من أخذ بعض الأوامر الهامة, والتي سيتم تداولها بشكل مستمر بإذن الله
linspace

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



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






وهذا ما يسمى النظام العشوائي للماتلاب Randomization System in Matlab
والميزة في هذا النظام هو أن المتجه نظام عشوائي متزايد

randint

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



وهذا مثال بسيط بإستخدام هذا الأمر على الماتلاب





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



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

----------


## المهندس

لنستكمل الأوامر الهامة
أولاً ما الفرق بين 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 وعنوان للرسمة,ووضع شبكة على الرسمة ,وكيفية تغيير لون الرسمة, وكذلك وضع أكثر من رسمة فوق بعضهما, وكيفية عمل كل رسمة في نافذة منفصلة, وكيفية إنشاء عدة رسومات منفصلة في نافذة

----------


## المهندس

إضافة خصائص إلى الرسومات داخل الماتلاب

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


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



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



وبالتالي نحصل على الصورة التالية



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




وبالتالي نحصل على الشكل التالي



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



وبالتالي نحصل على الشكل التالي




وهنا نكون قد شرحنا خصائص الرسومات داخل الماتلاب

----------


## المهندس

عملية وضع شبكة على الرسم

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




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




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



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





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

----------


## المهندس

علمية وضع الرسومات في نوافذ منفصلة

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



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



وستحصل على نافذيتين بهما كلتا الرسمتين






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

----------


## المهندس

إنشاء رسومات منفصلة في نافذة واحدة


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




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




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



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



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




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



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



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



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




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

----------


## المهندس

تسمية المحاور


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



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




وبالتالي نحصل على الصورة التالية






وضع عنوان في أعلى الرسمة

يمكن وضع عنوان أعلى كل رسمة وذلك من خلال الأمر title
حيث يكون هذا الأمر بالشكل التالي





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



وبالتالي نحصل على الصورة التالية

----------


## المهندس

وضع نص على نقطة أو أكثر داخل الرسم


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



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



وعند تشغيل البرنامج, نجد القيم كالتالي



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



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



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




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

----------


## المهندس

الأمر legend


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



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




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



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



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



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

----------


## المهندس

فتح نافذة جديدة وتحديد دقتها


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




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




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



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

----------


## المهندس

كيفية إدخال النقاط من خلال الماوس


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



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


وبعد الإنهاء من إدخال النقاط كل ما عليك هو الضغط على مفتاح Enter في لوحة المفاتيح.

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




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



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

----------


## المهندس

الرسم ثلاثي الأبعاد


كما تعلمنا أن الرسم ثلاثي الأبعاد يعتمد على ثلاثة محاور لرسمها, محور 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 كذلك



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





أعتقد أنك تلاحظ الفرق الآن

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

----------


## المهندس

حل ثلاث معادلات


*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 وسوف يتم توضيح ذلك عند كتابة البرنامج على الماتلاب.



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



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



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

----------


## المهندس

*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 بالشكل التالي



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



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



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



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



هذا ونكون قد أنهينا دورة الماتلاب بفضل الله

*كل الشكر للمشرف العام حسان القضاة على مجهوده الكبير معي في اخراج الدوره الى حيز الوجود*

----------


## احساس المطر

بجد الله يعطيك الف عافييييييييييييييييييييييييييييييييييييييييييييييي  يييييييييييييييييييييييييه

مو متخيله المجهود الكبير يالي قمت فيه 

انا ما  بعرف البرنامج ومو محتاجه استخدامه بس طريقه شرحك واسلوبك الرائع صرت افكر اتعلم 

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

ويا رب يستفيدو منه  كل يال بحتاجوه

----------


## ساره

> الحمد لله رب العالمين, والصلاة والسلام على خير المرسلين, سيدنا محمد عليه أفضل الصلاة والتسليم
> أخواني نبدأ معاً تعليم الماتلاب خطوة بخطوة, والذي اسأل الله أن يكون خير أداة للجميع, علما بأن هذه الدوره الشامله قد تمت  بناء على طلب الاخت مها مشرفه المنتدى العام 
> 
> *ملاحظه هامه : كل الشكر والامتنان  للمشرف العام حسان القضاة على مجهوده الكبير معي في اخراج الدوره الى حيز الوجود* 
> 
> 
> سيتم تقسيم تعليم برنامج الماتلاب إلى أقسام, تبعاً لنوع التطبيق, وسيتم التطرق إلى البرنامج تبعاً للترتيب التالي
>  1- مقدمة في الماتلاب
> 2- مقدمة في المحاكاة Simulink
> ...


شكرا الك مووووووووووووووووووضوووووووووووووووووووووووووووووو  وووووووووووع كتير حلو

----------


## المهندس

شكرا على ردودكم جميعا

----------


## smart-engineer-amool

mashkooooooooooooooooooooooooooooooooooooooooooooo  ooooooooooooor

----------


## المهندس

شكرا على الردود

----------


## بنت الحصن



----------


## mosa

THANXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SZZXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXXXXXXXXXX
XXXXXX
XXXX
XXX

----------


## marmar

مجهود رائع جدا
شكرا على الافاده الكبيره

----------


## samurai505

شكرااااااااااااااااااااااااااااا

----------


## محمدوصفى احمد

مشكووووووووووووووووووووووووووووور

----------


## alahmed4ever

Thanx alot

----------


## alahmed4ever

Thanks alot for this course ,i was really in need of it  :Smile:

----------


## yatia

شكرا جزيلا وبارك الله فيكم

----------


## mufeed

شكراً اخي في الله 
على هذا المجهود الرائع
تمنياتي لك بالتوفيق

----------


## mimota

sehr gut
 :Icon15: 
السلام عليكم ورحمة الله وبركاته

----------


## mimota

بسم الله الرحمن الرحيم

----------


## mimota

شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

----------


## mimota

كيف حالك إن شاء الله دائما بخير ؟

----------


## farid louiz

:SnipeR (61):  :SnipeR (61):  :SnipeR (61):  :SnipeR (50):  :SnipeR (50):  :SnipeR (50):  :Icon14:

----------


## farid louiz

[caution]null[/caution] الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

----------


## ملكة الاحساس

يسلمووو

----------


## munther123456

لكم جزيل الشكر على جهودكم

----------


## كنان

ميرسييييييييييييييييييييييييييييييييييييييي

----------

