:جديد المواضيع
صفحة 8 من 8 الأولىالأولى ... 45678
النتائج 71 إلى 80 من 80

الماتلاب خطوة بخطوة (تعلم كل شئ عن الماتلاب)

  1. #71
    عضو متميز

    User Info Menu

    Post Three Dimensional Plotting

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

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

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



    0 Not allowed!

  2. #72

  3. #73
    عضو متميز

    User Info Menu

    Post الإسبوع الثالث

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

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



    0 Not allowed!

  4. #74
    عضو متميز

    User Info Menu

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

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

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

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

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

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



    0 Not allowed!
    التعديل الأخير تم بواسطة م.أحمد عفيفي سلامة ; 2006-08-26 الساعة 01:47 PM

  5. #75
    عضو متميز

    User Info Menu

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

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

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

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

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

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

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

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

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

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



    0 Not allowed!

  6. #76
    عضو متميز

    User Info Menu

    Post Zero Crossing

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

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

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

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

    وبالتالي ستجد الدالة بهذا الشكل

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

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

    وهذا ما يسمى Digital Domain والآن لنقم بزيادة عدد النقاط في نفس البرنامج

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

    كما ترى في الرسمة لايزال هنالك فراغات بين النقاط , والتي من الممكن أن لا تتقاطع مع محور السينات كما حدث في البرنامج الذي قمنا بعمله, وهذا هو سبب عدم ظهور دائرة حمراء حول منطقة التقاطع, ودعونا نقوم بعمل البرنامج الأول ولكن في صورة Digital Domain

    وستظهر الرسمة في الصورة التالية

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

    كل ما علينا هو ضرب كل نقطة في النقطة التي تليها, وذلك عن طريق تعريف y ثم تعريف نفس الدالة, ولكن متقدمة عنها برقم واحد, ثم ضربهم معاً, فمثلاً إذا كانت قيمة y كالآتي

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

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

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

    وبالتالي تكون الرسمة قد أصبحت صحيحة
    وبهذا ينتهي التطبيق الثاني



    0 Not allowed!

  7. #77
    عضو متميز

    User Info Menu

    Post إيجاد المساحة تحت المنحنى

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

    وسنقوم بتنفيذ مثال بسيط على الماتلاب برسم دالة الجيب ثم تظليل تلك الدالة

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

    أما بخصوص الأمر trapz فيستخدم في إيجاد المساحة تحت المنحنى, حيث يأخذ الصورة التالية

    وسنقوم بعمل برنامج بسيط في إيجاد المساحة تحت منحنى دالة الجيب

    وبالتالي ستلاحظ قيمة المساحة من خلال نافذة Workspace

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

    وتم إختيار نقتطان عشوائيتان, وظهرت الرسمة كالتالي

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



    1 Not allowed!

  8. #78
    عضو متميز

    User Info Menu

    Post curve fitting

    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



    0 Not allowed!

  9. #79
    عضو متميز

    User Info Menu

    Post Exponential Curve Fitting

    Exponential Curve Fitting
    سنأخذ الآن التطبيق الأخير في هذه الدورة وهو Exponential Curve Fitting , ويمكن كتابة العلاقة بين X & Y بالشكل التالي

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

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

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

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

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



    0 Not allowed!

  10. #80
    عضو متميز

    User Info Menu

    Lightbulb الخاتمة

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



    1 Not allowed!
    التعديل الأخير تم بواسطة م.أحمد عفيفي سلامة ; 2008-11-06 الساعة 02:28 PM

صفحة 8 من 8 الأولىالأولى ... 45678

الكلمات الدلالية لهذا الموضوع

ضوابط المشاركة

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