تعلم الماتلاب من البداية الى الاحتراف


#1

السلام عليكم

سنبدا فى هذا الموضوع معنا فى تعلم برنامج و لغة الماتلاب من البداية حتى نصل الى الاحتراف فيه واعلم ان هناك بعض الاخوة على دراية بالبرنامج او على درجة معرفة متقدمة فلذلك يجب عليهم الانتظار حتى نتقدم مع الاخوة الذين لا يعلمون شى عن البرنامج .

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


#2

الدرس الاول فى الماتلاب

عنوان الدرس :

ما هو الماتلاب؟؟

الماتلاب هو لغة ذات مستوى عالى للحسابات والبرمجة و تمتاز بوجود برنامج يسهل عملية التعامل مع هذه اللغة .

ويشمل البرنامج على :

الحسابات الرياضية

عمل الالجوريثمات

معالجة البيانات

النمذجة والمحاكاة

تحليل البيانات و عرضها

عمل الرسومات الهندسية

عمل التطبيقات الصديقة للمستخدم (GUI)

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

ويشمل الماتلاب على مجموعة من ال toolbox مما يتيح لك التعامل مع التطبيقات المتخصصة وهذه الادوات عبارة عن برامج فى صورة M-files .

وسنبدا فى المقدمة عن البرنامج وتتكون المقدمة من خمسة اجزاء

1/شكل البرنامج Environment

2/الدوال الحسابية للبرنامج Mathematical Function Library

3/ لغة الماتلاب The MATLAB Language.

4/الرسومات البيانية Graphics

5/ التعامل مع المكونات الخارجية External Interfaces/API.

1/شكل البرنامجEnvironment

بعد الانتهاء من تسطيب البرنامج ستظهر لك ايقونه البرنامج على سطح المكتب عند الضغط عليها سيفتح لك البرنامج

2/الدوال الحسابية للبرنامج Mathematical Function Library

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

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

1/ادخال قيم الصفوف والاعمدة و يفصل بينهم فرغات او ;

 A=[16 3 2 13; 5 10 11 8; 9 6 7 12]

وتوضح هذه العلامة ; الى انتهاء السطر وتوضح هذه العلامات [] الى وجود مصفوفة تحتوى مجموعة عناصر ونلاحظ عند تنفيذ هذا الامر بالضغط على ادخال
يظهر ما يلى

 A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

ويتم حفظ قيمة المتغير فى ال workspace

اما الطرق الاخرى لعمل المصفوفات هى

  • تحميل المصفوفة من ملف بيانات خارجى
  • عمل مصفوفات باستخدام دوال موجوده فى البرنامج
  • عمل مصفوفة باستخدام M-file

وسوف نتعرض لهذا لاحقا

والان سوف نقوم ببعض العمليات على هذه المصفوفة البسيطة
مثل

sum

ويتم كتابته كما يلى

>>sum(A)

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

ans = 34 34 34 34

ونلاحظ هنا وجود كلمة ans
وهذه الكلمة هى اسم المتغير الافتراضى فى حالة عدم وجود اسم متغير

واذا كنا نرغب فى الحصول على مجموع الصفوف فاننا نقوم بعمل معكوس للمصفوفة A وبعد ذلك نقوم بتنفيذ الامر sum

>> A
producesans =16 5 9 43 10 6 152 11 7 1413 8 12 1

والان قيمة معكوس المصفوفة فى
ans ولذلك من الافضل تسميتها بمتغير جديد مثلا

 >>B=A'

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

 >>sum(B)
ans = 34 34 34 34

ولجعل هذه العناصر فى صورة عمود

 >>sum(B)'ans =34343434

الامر diag

وهذا الامر يقوم بعرض عناصر القطر الرئيسى للمصفوفة

 >>diag(A)
 producesans =161071

ولتنفيد الامر sum

 >>sum(diag(A))
producesans =34  

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

للدخول الى عناصر المصفوقة يتم تقسيم عناصر المصفوفة كما يلى

 A(i,j)

حيث i هى رقم الصف j ترقم العمود
فمثلا لحساب مجموع عناصر العمود الرابع

>> A(1,4) + A(2,4) + A(3,4) + A(4,4)ans =34

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

>>A(k)حيث K=1 K=4 K=7K=2 K=5 K=8K=3 K=6 K=9

وكمثال على المصفوفة السحرية

 >>A(8)

ans=15

ويساوى ايضا

 >>A(4,2)ans=15

ولا يستخدم ارقام خارج حدود المصفوفة مثلا

>>A(4,5)

يعطى

Index exceeds matrix dimensions.

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

>>X = A;>>X(4,5) = 17X =16 3 2 13 05 10 11 8 09 6 7 12 04 15 14 1 17

استخدم الرمز :
ويستخدم هذا فى انشاء عناصر مثلا

>>1:10

يقوم بعمل العنصر من 1 الى 10

1 2 3 4 5 6 7 8 9 10

ويمكن ايضا تغيير خطوة العد مثلا

>>100:-7:50

والناتج

100 93 86 79 72 65 58 51

ومثلا

>>0:pi/4:pi

حيث pi
هى المتغير الطبيعى و يسوى 3.14
والناتج هو

 0 0.7854 1.5708 2.3562 3.1416

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

 A(1:k,j)>>sum(A(1:4,4))

يقوم بحساب مجموع عناصر العمود الرابع

 >>sum(A(:,end))

يقوم بحساب مجموع جميع عناصر الصف الاخير

ومن الدوال الخاصة التى تقوم بتوليد المصفوفات

 >>B = magic(4)

حيث يقوم بتوليد مصفوفة سحرية مربعة 4*4

 B =16 2 3 135 11 10 89 7 6 124 14 15 1

وهذه المصفوفة تختلف عن السابقة فقط بتغيير اماكن العمود الثانى والثالت
وللتبديل بينما نستخدم الامر الاتى

>>A = B(:,[1 3 2 4])
A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

(مرحبا هيل) #3

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


#4

اهلا بك اخى العزيز وارجو ان تكون قد استطعت تفهم الدرس وتطبيقه


(prossly) #5

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


(abdosharaf) #6

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


(جاد الامام) #7

مشكور على المااااات نبغيــــة حى


#8

التعبيرات فى الماتلاب .

ويشمل :

Variables

Numbers

Operators

Functions

اولا : Variables المتغيرات

من مميزات الماتلاب انه لا يتتطلب اى تعريف للمتغيرات declarations

وتكون المتغيرات على هيئة مصفوفات .

مثال

 >> num_students = 25

عند تنفيذ الامر يقوم البرنامج بعمل مصفوفة احادية الاعمده والصفوف لهذا المتغير .
ويجب مراعاه الاتى عند كتابة اسماء المتغيرات
ان تبدا بحرف
من الممكن ان تحتوى على ارقام او underscores
يجب التفريق بين حالة الاحرف case sensitive

ثانيا الاعداد Numbers

يستعمل الماتلاب العلامة العشرية العادية . dot
ويستعمل الرمز e للاساس العشرى
ويستعمل الرموز I, j للاعداد التخيلية

ثالثا Operators العلامات

Operators العلامات
ما يلى اشهر العلامات المستخدمة فى الماتلاب

  • Addition الجمع
  • Subtraction الطرح
  • Multiplication الضرب
    / Division القسمة
    \ Left division القسمة المعكوسة
    ^ Power الاس
    ’ Complex conjugate transpose المعكوس
    ( ) Specify evaluation order لتحديد خصائص دالة

Functions الدوال
يحتوى الماتلاب على العديد من الدوال الحسابية والرياضية وللحصول على قائمة بالدوال الحسابية الموجوده
نفذ الامر الاتى

 >> help elfun

اما بالنسبة للدوال الرياضية

 >>help specfun




 >>help elmat

يوجد فى الماتلاب نوعان من الدوال
النوع الاول وهى الدوال المبنية فى البرنامج مثل sin ,sqrt
ولايمكنك مشاهدة كود هذه الدوال والتعديل فيه

والنوع الاخر من الدوال تم ادخالها بواسطة M-files مثل gamma and sinh,

وموضح فيما يلى دوال لايجاد قيم الثوابت العددية فى البرنامج

ويجب ملاحظة ان المالانهاية تتولد عند القسمة على الصفر او عندما يزيد نتيجة العملية الحسابية عند الحد الادنى او الاقصى المسموح به فى البرنامج وهذه الحدود موضحة فى

 realmax<<realmin<<

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

 >>pi=20pi = 20

ولاستعادة قيمة المتغير الطبيعى استخدم الامر الاتى

 >> clear pi

بعض الامثلة على التعبيرات

الامر sqrt
يستخدم لايجاد الجذر التربيعى

 >> a=sqrt(25)a = 5

الامر abs

ويستخدم لايجاد القيمة المطلقة لرقم مركب
مثال

 >> a = abs(3+4i)a = 5

تذكر القيمة المطلقة تساوى الجذر التربيعى لمجموع الجزء الحقيقى + مجموع الجزء التخيلى

LOG

لايجاد قيمة اللوغاريتم الطبيعى
مثال

 >> log(10)ans = 2.3026

EXP Exponential.

المفكوك وهو معكوس اللوغاريتم الطبيعى

 >> exp(2.3026)ans = 10.0001

أكبر رقم يمكن للماتلاب الوصول اليه
مثال :

 >> realmaxans = 1.7977e+308

مثال :

>> huge = exp(log(realmax))huge = 1.7977e+308

مثال :

>> toobig = pi*hugetoobig = Inf

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



(zizofeen) #9

متشكر جدا وجزاك الله كل خير


(system) #10

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


#11

أهلا بك اخى العزيز واذا واجهت اى مشكلة فى الدورة لا تترد بمراسلتى


(Mathkar) #13

أخي الفاض جزاك الله خير على ها المجهودولدي سؤال اذا افدتني فيه أكون شاكرا لك
السؤال : أريد أعرف كيف أحل معادلات ODE التاليه : (الكود وطريقة كتابته)

dy1/dx = 2y1(1-y2) first equation
dy2/dx = y2(y1 -1) second equation
 
for x the initila value 0 and finla value 10
initial value for y1 is 1
initilal value for y2 is 3

#14

السلام عليكم

اخى العزيز يمكنك استخدام

Symbolic Math Toolbox

ولان خبرتى به قليلة ساقوم باعطاءك بعض النصائح

اولا استخدم الامر sym لعمل المتغيرات وهى x و y مع اعتبار ان dy/dx= x

وليكن كما يلى

 x = sym('x1') 
 y = sym('y1') 
 a = sym('x2') 
 b = sym('y2') 

ثم قم بتنفيذ الامر التالى للحل

dsolve(your_equation,initial_condition)

(eng_asa) #15

السلام عليكم ورحمة الله وبركاته
اريد معرفة فائدة وهدف دالة fftshift

شكرا


#16
fftshift(X)

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

وتستخدم ايضا فى التعامل مع ال array


(eng_asa) #17

شكرا
لكن كنت أريد معرفة فائدتها فى عمل signal spectrum
وذلك باستخدام فورير
حيث لم نستخدم دالة fft مباشرة


(mohannd) #18

جزاك الله خير معا لنكون افضل من الغرب


#19

اهلا اخى العزيز

معذرة على التاخر فى الرد وان شاء الله سارد عليك غدا ان شاء الله


(ahmed awad) #20

بارك الله فيك أخي وجعلها في ميزان حسناتك سأتابع الدروس إن شاء الله


(حمدينو محمد) #21

جزاكم اللة خيرا انا فعلا محتاج اتعلم من زمان وحضرتك ادتنى الفرصة دى ولكن لى طلب عند حضرتك ممكن ترسل لى الدروس على الايميل نظرا لعملى الذى يمنعن من الدخول على النت بصفة مستمرة واخشى ان تفوتنى دروس