Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Mathworks Matlab
إعداد يوسف دعبول.م
1
؟ Matlabما هو
الاسم مشتق منMatrix Laboratory
برنامج ولغة لتطبيق العملياتدسيةالرياضية للحسابات العلمية والهن
مصمم لعمليات المصفوفات صمم في بداية السبيعنات
مشهور بقدراته الخاصة بالرسوماتوالأدوات المختلفة التطبيقات
2
Matlabاستخدام
ق بكتابة الأوامر عن طري
(<<)نافذة الأوامر
بتنفيذM-files
باستخدامSimulink
3
Matlabنافذة
Workspace
Variables/Current
Directory
الجديدة) Matlab اصدارات)
Command History
الجديدة) Matlab اصدارات)
Command Windowنافذة الأوامر
(all Matlab versions)
اكتب الأوامر هنا
Matlabذاكرة
ا الأوامر المدخلة سابق
4
Matlabأجزاء Operators
Matrices
Plotting
M-files
Flow control
العمليات
المصفوفات
الرسومات
الملفات
التحكم بالتنفيذ
5
العمليات الحسابية البسيطة
الجمع+a+b
الطرح-a-b
الضرب*a*b
(من اليسار)القسمة/a/b
(من اليمين)القسمة\a\b (ba)
الأس^a^b
ت يامل
لعا
Op
era
tors
6
أولوية العملياتالأقواس( )
الأس^LR
القسمة/الضرب* /LR
الطرح/الجمع+ -LR
مثال
>> 5/2*3+4
ans=
11.5
ت يامل
لعا
Op
era
tors
7
نتائج العمليات
سابية إذا لم يسند ناتج العملية الح
Matlabإلى متغير، يقومansباسنادها الى المتغير
لمعرفة ناتجans،اكتب
>>ans
>> 6*5
ans =
30
>> 17/5
ans =
3.4000
>> ans
ans =
3.4000
ت يامل
لعا
Op
era
tors
8
اسناد النتائج
إذا اسند ناتج العملية إلى متغير ،يرة إلى سيحتفظ المتغير بالقيمة الأخ
أن يتم تعديلها
يمنع ( ;)استخدام الفاصلة المنقوطةمن إظهار ناتج العملية، بينما عدم
استخدامها يظهر الناتج
اتيفضل اسناد النواتج الى متغير
من الممكن كتابة عدة أوامر بسطر:واحد
>> x=6*5;y=17/5;z=x+y
لعرض قائمة المتغيرات بالذاكرة who<<اكتب
>> x=6*5
x=
30
>> y=17/5;
>> y
y=
3.4000
>> z=x+y
z=
33.4000
>> who
Your variables are:
x y z
ت يامل
لعا
Op
era
tors
9
Matlabبعض دوال
exp(x) ex
sin(x) sin x
asin(x) sin-1x
log(x) ln x
log10(x) log x
sqrt(x)
abs(x) |x|
pi p
i,j imaginary unit
NaN Not-a-Number
Inf
x
ت يامل
لعا
Op
era
tors
10
y x
>>y=x^0.5;
>>y=x^(1/2);
>>y=sqrt(x);
Matlabعمليات
يمكن حساب الجذر التربيعي لرقم بعدة طرق: مثال:
ت يامل
لعا
Op
era
tors
11
أسماء المتغيرات اتلتسمية المتغير_ يمكن استخدام الحروف، والأرقام، و:
>>case_34=6.45;
>>case34=6.45;
ات لا بد من بدء اسم المتغير بحرف، ولا يمكن وضع مساف
:أو علامات أخرى ضمن اسم المتغير
34case, ge204!, Name Here
case34, ge204, Name_Here
ت يامل
لعا
Op
era
tors
12
Matlabمتغيرات
بايت لكل قيمة8تخزن جميع متغيرات كأرقام حقيقية وبحجم
لا فرق بين الأرقام الصحيحة والحقيقية:>> p = 3;
>> p = 3.0;
يمكن تخزين أرقام أو حروف كقيم:>>number_123=7;
>>text04='This is GE204';
يوجد فرق بين الحروف الكبيرة والصغيرة:>> a = 4;
>> A = 10;
يمكن مسح المتغير من الذاكرة:>> clear a
Aa
!نفس الأمر
ت يامل
لعا
Op
era
tors
13
Matlab Help
اكتب•>>help
لمعرفة المزيد
عن أوامر ودوال
Matlab
ت يامل
لعا
Op
era
tors
14
>> help sqrt
square rootfunction help
Matlab Help
ت يامل
لعا
Op
era
tors
15
Matlab Help
يمكن أيضا
استخدام أيقونة
help لمعرفة
المزيد عن أوامر
Matlab
نافذة مستقلة
ت يامل
لعا
Op
era
tors
16
المصفوفات
تبرز قوةMatlab عند
استخدام المصفوفات
لادخال مصفوفة، استخدم
] [الأقواس المربعة
أو;لادخال صف آخر، اضغط
Enter
>> A=[6 5; 3 4]
A=
6 5
3 4
>> B=[1 2 3 4]
B=
1 2 3 4
>> C=[4 8
7 5];
ت فافو
صلم
اA
rra
ys
17
(تابع)المصفوفات
كل مصفوفة تتكون من عناصر
ف عناصر المصفوفة تكون الصفووالأعمدة
فة يمكن التعامل مع عناصر المصفوباستخدام رقم الصف والعمود
عد مصفوفة ذات ب)يمكن توليد متجه:باستخدام الأمر التالي( واحد
initial:step:final
البداية:الخطوة:النهاية
أنها اذا لم يتم تحديد الخطوة، سيفرض)1 )
>> A=[6 5; 3 4]
A=
6 5
3 4
>> A(1,1)=10
A=
10 5
3 4
>> 1:2:7
ans=
1 3 5 7
>> 1:4
ans=
1 2 3 4
ت فافو
صلم
اA
rra
ys
18
Scalars, Vectors, MatricesMATLAB treat variables as “matrices”
Matrix (m n) - a set of numbers
arranged in rows (m) and columns (n)
Scalar: 1 1 matrix
Row Vector: 1 n matrix
Column Vector: m 1 matrix
22.715.0
5.92.342
5231
21.73.202.5 27.5
D
BA
ت فافو
صلم
اA
rra
ys
19
عمليات المصفوفاتالضرب*
ضرب العناصر.*
القسمة/
قسمة العناصر./
الأس^
الأس للعناصر.^
ت فافو
صلم
اA
rra
ys
20
1 2 3
4 5 6
A2 3 4
5 6 7
B4 5
6 7
8 9
C
صحيحة
>>D=A+B;
>>D=A-B;
>>D=A*C;
>>D=C*A;
>>D=A.*B;
خطأ
>>D=A+C;
>>D=A*B;
>>D=B*A;
>>D=A.*C;
ر ضرب المصفوفات غي
تبديلي
أمثلة لعمليات المصفوفات
لجمع وطرح
المصفوفات ، يجب
ات أن تكون المصفوف
من نفس الحجم
لضرب المصفوفات
لا بد من تساوي
الأبعاد الداخلية
ت فافو
صلم
اA
rra
ys
21
1C A B
1C BA
(تابع)عمليات المصفوفات
Matlabأمر
>> C=A\B;
>> C=B/A;
العملية الرياضية
ت فافو
صلم
اA
rra
ys
22
1 2 3
4 5 6
A
1 4
2 5
3 6
B
>>B=A’;
مصفوفةمنقول
Matlabأمر
>>C=A’;
العملية الرياضية
C=AT
ت فافو
صلم
اA
rra
ys
23
تضمين المصفوفات
1 2 3
4 5 6
A2 3 4
5 6 7
B
>> D=[A B];
765654
432321D
A B تفافو
صلم
اA
rra
ys
24
الأساسيةالماتلاببعض دوال Linspace()
Size()
Length()
Magic()
Zeros()
Ones()
Inv()&det()
Eig()
ت فافو
صلم
اA
rra
ys
25
Linspace()
Linspace(a,b) قيمة بدءا 100يولد نسق سطري من
.bوانتهاء بـ aمن
Linspace(a,b,n) يولد نسق سطري منn قيمة بدءا من
a وانتهاء بـb.
القيم المولدة تشكل متوالية حسابية اساسهاr=(b-a)/(n-1)
مثال :
>>x=linspace(1,10,5)
x=
1 3.25 5.5 7.57 10
ت فافو
صلم
اA
rra
ys
26
Size()
لتاليةيعيد حجم المصفوفة أو النسق الممر اليه وله الأشكال ا :
d=size(a) يعيد فيd عدد اعمدة وعدد اسطرa
[m n]=size(a) يعيد فيm عدد اسطرa وفيn عدد
aأعمدة
مثال :
>>a=[1 2 3]; >>a=[2 3;4 5];
>>d=size(a) >> [m n]=size(a)
d= m=2
1 3 n=2
ت فافو
صلم
اA
rra
ys
27
Length()
Length(x) يعيد طول الشعاعx ، وهو يعيد القيمة
من أجل sizeالعظمى من القيمتين التي يعيدها التابع
المصفوفات غير الفارغة و صفر من أجل المصفوفات
. الفارغة
مثال :
>>a=[1;2;3;4]; >>a=[];
>>b=length(a) >>b=length(a)
b=4 b=0
ت فافو
صلم
اA
rra
ys
28
Magic()
Magic(n) يولد مصفوفةn*n تتألف من أعداد صحيحة
وتكون اسطرها و أعمدتها [n2..1]تنتمي قيمها إلى المجال
. و اقطارها متساوية المجموع
ستكون المصفوفة السحرية الناتجة صحيحة في حالn>2 .
ت : مثالفافو
صلم
اA
rra
ys
29
Zeros()
Zeros(n) : يولد مصفوفةn*n من الأصفار
Zeros(m,n) أوzeros([m n]) يولد مصفوفةm*n
.من الأصفار
ت فافو
صلم
اA
rra
ys
30
Ones()
Ones(n) يولد مصفوفةn*nمن الواحدات.
Ones(m,n) أوones([m n]) يولد مصفوفةm*n من
الواحدات
أمثلة :
ت فافو
صلم
اA
rra
ys
31
Inv() & det()
Inv(x) يعيد مقلوب المصفوفة المربعةx.
Det(x) يعيد محدد المصفوفة المربعةx.
أمثلة :
ت فافو
صلم
اA
rra
ys
32
Matlabرسومات >> x=0:.1:20;
>> y=exp(0.1*x).*sin(x);
>> plot(x,y)
>> xlabel('Time (t) in Seconds')
>> ylabel('Response in mm')
>> title('A Simple 2-D Plot')
من مزايا برنامجMatlab
الرسومات
،توجد العديد من الخيارات
:حيث يمكن التحكم بـ
نوع الرسم–
نوع النقاط والخطوط–
العناوين–
التحكم بالمحاور–
عدد الرسومات–
ت ما
سولر
اP
lott
ing
33
plotأمر >> n=0:11;
>> y=sin((pi/6)*n);
>> plot(n,y)
رسم بدون أية خيارات
y1, x1 , …!لا بد من تساوي أبعاد
ت ما
سولر
اP
lott
ing
34
>> plot(n,y,'--')
رسم باستخدام
خط متقطع
يمكن معرفة المزيد
:عن الأمر بكتابة
>> help plotplot(x1,y1[,x2,y2,x3,y3.....])
ت ما
سولر
اP
lott
ing
35
Color, Symbols, and Line TypesUse “help plot” to find available
Specifiers
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- dashed
m magenta * star
y yellow s square
k black d diamond
v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
Colors Symbols Line Types
ت ما
سولر
اP
lott
ing
36
إضافة شكل إلى شكل موجود
بالامكان إضافة رسم إلى رسم آخر موجود من خلال
فإن hold onفعند استخدام الأمر holdاستخدام الأمر
ديد ماتلاب لا يزيل الرسم الموجود و إنما يضيف الرسم الج
. إلى الرسم الحالي
يستخدمhold off ت .لتحرير الرسم السابقما
سولر
اP
lott
ing
37
مثال
ت ما
سولر
اP
lott
ing
38
دوال الرسومات title
xlabel
ylabel
grid
axis
legend
figure
لرسمةا( عنوان)لكتابة اسم
لكتابة اسم محورx
لكتابة اسم محورy
لعرض شبكة بالرسم
لتحديد القيم الصغرى والكبرىللمحاور
لتوضيح أسماء الخطوط المرسومة
أخرىرسمةالىللانتقال
ت ما
سولر
اP
lott
ing
39
مثال
ت ما
سولر
اP
lott
ing
40
مثال
ت ما
سولر
اP
lott
ing
41
subplotأمر
subplot(m,n,p)عدد الصفوف عدد الأعمدة
رقم الرسمة
ت ما
سولر
اP
lott
ing
42
figureالأمر
يستخدم لفتح نافذه لصورة جديدة
مثال :
ت ما
سولر
اP
lott
ing
43
Matlabملفات
كتابة أوامرMatlab كثيرة عدة مرات غير عملية
يتيحMatlabإمكانية تجميع الأوامر بشكل ملف
ةيكفي كتابة إسم الملف لتنفيذ جميع الأوامر المضمن
يوجد نوعان من الملفات:
– Script files (ملفات تحتوي على مجموعة أوامر)
– Function files (ملفات بشكل دوال)
جميع الملفات تحتوي على الامتداد.m
ت فامل
الM
-Fil
es
44
M(M-files)انشاء الملفات
لكتابة أي ملفM-file:
في نافذة الأوامرedit filename<<بكتابة –
New > M-fileباختيار –
بالنقر على–
ميع الأوامر لتنفيذ الملفات، فقط اكتب اسم الملف، وستنفذ ج
المتضمنة بالملف
ت فامل
الM
-Fil
es
45
Script Files:scriptملف
على سبيل)تخزين الأوامر بملف(testالمثال باسم
ثم كتابة الاسم بنافذة الأوامر:
>> test
y =
9.0
الكتابة بنافذة الأوامر
>> x=3.0;
>> y=x^2;
>> y
y =
9.0
>>
يمكنها التعامل مع المتغيرات
!Matlabبذاكرة
ت فامل
الM
-Fil
es
46
ملفات الدوال
شبيهة بملفاتscript،مع الفروقات التالية:
function [list of outputs] = ge204(list of inputs)
% function help
.
.
.
program
.
.
.
return
اسم الدالة
تعريف الدالة
قائمة المخرجات قائمة المدخلات
متوضيح الدالة للمستخد
للرجوع لا تتعامل مع المتغيرات
متغيرات ) Matlabبذاكرة
(! مستقلة
ت فامل
الM
-Fil
es
47
مثالcmbالدالة
function [x,y]=cmb(a,b)
%Test function
x=a+b;
y=a/b;
return
Commandنافذة الأوامر Window
>> [j,k]=cmb(5,2)
j=7
k=2.5
>>help cmb
Test function
ت فامل
الM
-Fil
es
48
التحكم بالتنفيذ
عادة، يكون تنفيذ الأوامر بالتسلسل
لباستخدام أوامر التحكم بالتنفيذ، يمكن تغيير هذا التسلس
الأوامر المهمة:
ifإذا–
if-elseغير ذلك-إذا–
whileطالما–
for...لــ–
a=2;
b=3;
c=a+b;
d=sqrt(b);
أوامر تكرار
(تنفذ مرة واحدة)أوامر شرطية
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
49
if expression
statementsend
if expression
statements1else
statements2end
while expression
statementsend
whileو ifأوامر
يقومMatlab بتنفيذ الأوامر(statements ) فقط إذا تحقق الشرط(expression)
عند التحقق من الشرط(expression) يخرج ،Matlab إما(false)غير صحيحأو ( true)صحيحبنتيجة
الأوامر(statements ) هي أي أوامر بالـMatlab
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
50
أية معادلة حسابية
a=4;
b=5;
c=5;
if a+b
if b-c“true” 0 ≠لأن الناتج “false” 0 =لأن الناتج
!انتبه من أخطاء التقريب
if sin(0)
if sin(pi)
sin(pi) = 1.22e-16
“false”“true”
المعاملات الشرطيةيساوي ==
أقل من >
أكبر من <
أقل من أو يساوي =>
أكبر من أو يساوي =<
لا يساوي =~
المعاملات المنطقية
& and و| or أو
while(3<=a)&(a<=5)
الشرطتقييم
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
51
(if/if-else)أمثلة
>> a=6;
>> if a<10
b=a/2;
end
>> b
b = 3
>> a=6;
>> if a<10
b=a/2;
else
b=a/5;
end
>> b
b = 3
>> a=50;
>> if a<10
b=a/2;
end
>> b??? Undefined function or variable 'b'.
>> a=50;
>> if a<10
b=a/2;
else
b=a/5;
end
>> b
b = 10
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
52
(while)أمثلة >> a=1;
>> while a<5
a=a+1
end
a = 2
a = 3
a = 4
a = 5
>> a=10;
>> while a<5
a=a+1
end
>> a
a = 10
>> a=1;
>> while a<5
b=a+1
end
b = 2
b = 3
b = 4
b = 5
b = 6
b = 7
.
.
.
. loop!
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
أمر
!تكرار
53
for index = start : [increment :] end
statementsend
forأمر
الزيادةقيمة(increment ) 1اختيارية، وستفرض قيمتهاإذا لم توضع
أن تكون كسورالنهايةوالزيادةوالبدايةيمكن لقيم
أن تكون موجبة أو سالبةلزيادةيمكن ل
المتغيرأو )النهاية< المتغيرينتهي التكرار إذا كان<(النهاية
ذ في
تنبال
م حك
لتا
Flo
w c
on
tro
l
أمر
!تكرار
54
أمثلة>> for a=1:5
a
end
a = 1
a = 2
a = 3
a = 4
a = 5 ذفي
تنبال
م حك
لتا
Flo
w c
on
tro
l
55
وظيفةما هو عمل التوابع التالية ؟
Min
Max
Round
Ceil
Sort
56
ة يف
ظو