Professional Documents
Culture Documents
برنامج MATLABيستخدم إلجراء الحسابات التقنية المتقدمة ويتميز MATLABبكونه برنامجا ً متخصصا ً
ييسر عمل الباحثين والدارسين في مختلف مجاالت الدراسات العليا و ما قبلها ،فهو يتعامل مع المعادالت
الرياضية ،والتكامالت ،والتفاضالت ،والمصفوفات المختلفة بسرعة وسهولة ،ويعامل األعداد المركبة بنفس
الطريقة التي يعامل بها األعداد العادية .ويمكن MATLABالمستخدم من رسم المعادالت الرياضية في
اإلحداثيات المختلفة ،ويضم المئات من الدوال الجاهزة التي توفر للمبرمج وقتا ً وجهداً عند إنشاء البرامج .
وتعني كلمة MATLABمعمل المصفوفات ( )Matrix Laboratoryويمكن استخدامه مثل اآللة الحاسبة
المتطورة أو تشغيل برامج رياضية معقدة .ويمكن تحميل البرنامج على الكمبيوتر الشخصي و استخدامه مباشرة
مع نظام Windowsوهو سهل األستخدام كما يوضح الشكل()1-1
()3-1المتجهات و المصفوفاتg:
في هذا الفصل نقوم بتناول المتجهات والمصفوفات وما يتعلق بهما من دوال وعمليgات حسgابية .المصgفوفات هي
أسggاس اإلدخggال في البرنggامج فكل عggدد يتم إدخاله هو بالنسggبة لـ MATLABمصggفوفة قيggاس 1x1فيجب أن
نراعي قواعد المصفوفات الحسابية.
المتجهات :Vectors
المتجة هو عبggارة عن مجموعة من األعggداد توضع في صف واحد أو عمggود واحد ويتم اسggتخدامها في
إدخال البيانات أو الحصول على المخرجات.
أي أنه يوجد لدينا نوعين من المتجهات:
متجه صفي : .1
والصورة العامة لكتابته كالتالي:
>> ]11,8,2,5,3[=x
=x
11 8 2 5 3
ويمكن وضع مسافة بدالً من عالمة الفاصggلة وكالهما يوضح أن جميع عناصر المتجه مرتبة
كصف واحد.
متجه عمودي: .2
>> ]11;8;2;5;3[=x
=x
3
5
2
8
11
وكما نرى فإن العالمة الgتي تفصل بين كل عنصر والتggالي له هي الفاصgلة المنقوطة (;) وهي الggتي تشgير إلى أن
كل عنصر من عناصر المتجهة في صف بمفرده.
التعامل مع المتجهات :
]>> v=[0 1 2 3
=v
0 1 2 3
وألضافة عنصر للمتجه :
>> v(4)=5
=v
0 1 2 5
ولسحب عنصر من المتجه :
)>> x=v(2
=x
1
=x
1 2 5
وألخذ فقط عناصر المتجه من الثاني إلى الرابع مع أثنان أثنان :
)>> x=v(2:2:4
=x
1 5
وألخذ عناصر المتجه من العنصر الثالث بالسالب مع واحد واحد:
)>> x=v(3:-1:1
=x
2 1 0
وألضافة عنصر للمتجه :
]>> v=[v(1:4),4
=v
0 1 2 5 4
])>> v=[-1,v(1:5
=v
-1 0 1 2 5 4
])>> v=[v(1:2),10,v(3:4
=v
-1 0 10 1 2
=v
2 5 0 1 4 -1
)>> length(v
= ans
6
الدالة :Sumتقوم هذه الدالة بإيجggاد حاصل جمع عناصر المتجه كما في .2
المثال:
)>> w=sum(v
=w
11
الدالة :Maxتقوم هذه الدالة بإيجاد أكبر عناصر المتجه من حيث القيمة كما في المثال: .3
)>> w=max(v
=w
5
الدالة :Minتقوم هذه الدالة بإيجاد أصغر عناصر المتجه من حيث القيمة كما في المثال: .4
)>> w=min(v
=w
-1
الدالة :Sizeتعطي قياس المتجة أو المصفوفة .5
]>> Matrix=[1,2,3,;4,5,6
= Matrix
)>> [Matrix]=size(Matrix
= Matrix
2 3
الدالة :Sortتقوم هذه الدالة بترتيب عناصر المتجه ترتيبا ً تصاعديا ً .6
=r
9 7 5 8 3
)>> s=sort(r
=s
3 5 7 8 9
الدالة :Rangeتقوم هggذه الدالة بحسggاب الفggرق بين أكggبر قيمة في المتجة .7
وأصغر قيمة فيه
)>> range(r
= ans
6
العمليات الحسابية الgتي يتم إجراؤها على المتجهgات :وتشgمل هgذه العمليgات الحسgابية عمليgات الجمع والطgرح
والضرب والرفع إلى أس ولكن يجب اإلشارة هنا أن هذه العمليات تتبع جميعها ما يسمى بجبر المصفوفات.
بعض األمثلة للتوضيح:
;]>> x=[1,3,5
;]>> y=[2,4,6
>> z=x+y
=z
3 7 11
>> m=y-x
=m
1 1 1
>> p=x.*y
=p
2 12 30
>> p=x.^2
=p
1 9 25
المصفوفات :Matrices
ً
المصفوفات هي عبارة عن ترتيب معين لبيانات معينه وعادة ما تكون هذه البيانات أرقاما ،والمصفوفة تتكون من
صفوف وأعمدة وعادة ما نقول من النظام ( )mxnحيث أن mهو عدد الصفوف و nهو عدد األعمدة.
]>> Matrix=[1,2,3,;4,5,6;7,8,9
= Matrix
= ans
4 5 6
= ans
2
5
8
= ans
1
4
7
2
5
8
3
6
9
أما إذا أردنا العنصر الواقع في الصف األول والعامود الثاني:
)>> Matrix(1,2
= ans
2
ونحذف صف أو عمود من المصفوفة:
] [ = )>> Matrix(:,2
= Matrix
1 3
4 6
7 9
] [ = )>> Matrix(2,:
= Matrix
1 2 3
7 8 9
ونضيف صف أو عمود للمصفوفة:
]>> Matrix=[1,2,3,;4,5,6;7,8,9;10,11,12
= Matrix
1 2 3
4 5 6
7 8 9
10 11 12
ونجد قطر المصفوفة:
)>> diag(Matrix
= ans
1
5
9
=A
'>> A
= ans
1 2
3 4
5 6
[ a A]
مصفوفة مربعة من الدرجة nيعرف محدد المصفوفة ويرمز له بالرمز ji المحددات :لتكن
) (ted A
استقرائيا ً كالتالي:
1 n ) (ted
a A 11 .1إذا كان
2 n a a12 21A 22
a ) a(ted 11 .2إذا كان
n
2 nted A )1 (a ) (ted A 1j
j1
1j .3إذا كان
j1
=A
1 0 3
4 5 0
7 8 9
)>> det(A
= ans
36
وهنا يجب اإلشارة إلى بعض أنواع المصفوفات ذات الحاالت الخاصة التي سوف نوضحها فيما يلي:
.1المصفوفة الصفرية :وهي التي تكون كل عناصggرها عبggارة عن أصggفار وتعتggبر هggذه المصggفوفة هي المحايد
الجمعي للمصفوفات.
)>> x=zeros(3,2
=x
0 0
0 0
0 0
مصفوفة التي جميع عناصرها الواحد الصحيح :وهي المصggفوفة الggتي تتكggون جميع .2
عناصرها من الرقم واحد.
)>> x=ones(3,2
=x
1 1
1 1
1 1
.3مصggفوفة الوحggدة :وهي مصggفوفة مربعة تكggون جميع عناصر القطر الرئيسي لها الواحد الصggحيح وبggاقي
عناصرها األخرى أصفار.
)>> id=eye(4
= id
=x
)>> A=sum(x
=A
)'>> A=sum(x
=A
615 24
الدالة :Maxوهي تقوم بعرض أكبر رقم موجود في كل عمود من أعمدة المصفوفة كما في المثال: .2
)>> B=max(x
=B
)'>> B=max(x
=B
3 6 9
الدالة :Sizeتقوم هذه الدالة بعرض أبعاد المصفوفة كما في المثال : .3
)>> [C,D]=size(x
=C
3
=D
3
إجراء العمليات الحسابية على المصفوفات:
الجمggع:تتم عملية الجمع بجمع كل عنصر من عناصر المصggفوفة األولى مع العنصر المنggاظر .1
له من عناصر المصفوفة الثانية كما في المثال:
;]>> A=[1,3;5,7
;]>> B=[2,4;6,8
>> C=A+B
=C
3 7
11 15
>> C=A+3
=C
4 6
8 10
الطgggرح :تتم عملية الطgggرح بطgggرح كل عنصر من عناصر المصgggفوفة األولى مع العنصر .2
المناظر له من عناصر المصفوفة الثانية كما في المثال:
>> C=A-B
=C
-1 -1
-1 -1
الضرب :تتم عملية الضرب بضرب عناصر المصفوفة ببعض كما في المثال: .3
>> C=A*B
=C
20 28
52 76
رفع المصgggفوفة إلى قgggوة(أس) :كما يمكننا رفع المصgggفوفة المربعة إلى أس أو قgggوة كما في .4
المثال:
>> C=A^2
=C
16 24
40 64
>> C=A.^2
=C
1 9
25 49
()5-1الدوال المخزنة على : MATLAB
الدوال هي عبارة عن أكواد برمجة سابقة اإلعداد أو التجهيز تggؤدي لنا وظggائف متنوعة ولكل دالة اسم خggاص بها
ال يتشابه مع غيرها إال أنه ينبغي التنوية إلى أنه يجب التمييز بين نوعين من الدوال:
الggدوال الggتي نقggوم بكتابتها بنفسggنا من خالل ملف من النggوع M-Fileوتخزينها باسم معين .1
الستخدامها فيما بعد.
فإن برنامج الـ Matlabيتيح لنا إمكانية كتابة وأضggافة دوال إلى الggدوال األساسggية الموجggودة فيggه،
وذلك عن طريق إعداد هذه الدوال كملفات M-Fileمن خالل النافذة وحفظها بإسم معين.
يتم حفظ الدالة في m-filesويجب تعريف الدالة في أول سطر مع مراعاة التالي :
أن يكون اسم الدالة الموجود في تعريف الدالة هو نفسه الذي يتم به حفظ الدالة.
أن يكون اسم الدالة مكون من مقطع واحد ال يفصل بينه مسافات .
أن ال يتجاوز اسم الدالة 31حرف .
أن يبدأ اسم الدالة بحرف ويمكن إتباعه برمز .
وعند الحاجة للبرنامج يتم كتابة اسم البرنامج ثم استخدامه ،أو يمكن تشggغيله من أمر Runالموجggود على شاشة
الملف مباشرة.
حفظ دالة بسيطة في : m-file
نفتح new m-fileثم نقوم بكتابة البرنامج التالي :
)function y = sample(x
x.^4-y=x+x.^2
الشكل (m-file :)1-2
2
0
-2
-4
-6
y-axsis
-8
-10
-12
-14
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
x-axis
الدوال المخزنة في برنامج الـ Matlabوهي دوال معggدة بواسggطة الشggركة المنتجة للبرنggامج .2
ويمكننا استخدامها مباشرة دون الحاجة لمعرفة الكود المكتوب لها.
هناك الكثير من الدوال المخزنة على Matlabويبين الجدول التالي بعضاً منها :
دوال التقريب:
الوظيفة الدالة
.تقوم بإخراج الباقي الصحيح لعملية القسمة Rem
∞-تقريب الرقم العشري أو المصفوفة باتجاه Floor
∞ تقريب الرقم العشري أو المصفوفة باتجاه Ceil
تقريب الرقم العشري باتجاه الصفر
Fix
.يعني تقوم بالغاء الكسر والحصول على الرقم الصحيح فقط
تقريب الرقم العشري باتجاه أقرب رقم صحيح Round
الجدول ()1-2
الدوال المثلثية:
الوظيفة الدالة
لحساب جيب الزاوية. Sin
لحساب جيب التمام للزاوية. Cos
لحساب ظل الزاوية. Tan
لحساب ظل التمام للزاوية. Cot
دالة ces x Sec
دالة csc x Csc
لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية جيب الزاوية. Asin
لمعرفة قيمة الزاوية بالتقدير الدائري بمعلومية جيب تمام الزاوية. Acos
الوظيفة الدالة
-D .يستخدم للرسم الخطية ثنائية األبعاد2 plot
.تستخدم للرسم ثالثي األبعاد Plot3
لكن مع تلوين الرسم وبالتالي تلوين الشكل كامالً وهوللرسم ثالثي meshمشابة لـ
surf
-D.األبعاد 3
لكن مع تلوين الرسم وبالتالي تلوين الشكل كامالً وهو للرسم ثالثي meshcمشابة لـ
Surfc
-D.األبعاد 3
.على شكل شبكة -Dللرسم على المحاور االحداثية الثالثة 3 mesh
.تقوم بالرسم على المحاور الثنائية ضمن مجال يمكن تحديده ولعالقة بمتحول أو متحولين ezplot
-D.تعريف المحاور ألستخدامها في الرسم ثالثي األبعاد 3 meshgrid
ورسم hold onتقدم هذه التعليمة امكانية رسم اكثر من منحنى حيث يتم تفعيلها ب
hold
hold offمانشاء وبعد ذلك يتم ايقافها ب
.لكتابة عنوان على الرسم Title
.لتسمية المحور األفقي للرسم Xlabel
.لتسمية المحور العمودي للرسم Ylabel
.لتسمية محور البعد الثالث للرسم Zlabel
.لرسم شبكة على الرسم (أو لتقسيم الرسم ) grid on
.لعرض عدة رسومات منفصلة في إطار واحد subplot
.لكتابة أي تعليق على الرسم Text
.مفتاح الرسم (أسماء المتغيرات) Legend
.لتحديد من أي إتجاه يرسم الشكل view
.لتحديد أطوال المحاور axis
.لعمل تخطيط للرسم في بعدين او ثالثة أبعاد contour
الجدول ()1-5
لرسم أكثر من دالة نستخدم األلوان التالية :
أزرق داكن أزرق أرجواني أخضر أصفر أسود أبيض أحمر اللون
العددg
p
تقريب العدد
p*
الخطأ النسبي(:)Relative Error
ً
تعريف :الخطأ النسبي هو القيمة المطلقة للفرق ما بين الرقم وتقريبة مقسوما على الرقم نفسه ويرمز له بالرمز
R.Eوبالرموز:
|* P P |
بشرط أن P. 0 ER .
| P|
مثال(: )1
x x2:1.0 x: 2 ؟y 2x, nis x
2
y 1, soc
2
ارسمي الدالتين التالية بنفس الرسم
الحل:
;>> x=-2:0.1:2
;)>> y1=x.^2.*cos(x);y2=x.^2.*sin(x
;)>> plot(x,y1
>> hold on
>> plot(x,y2);
>> hold off
>> xlabel('x-axis')
>> ylabel('y-axis')
>> grid on
)1( erugif :يظهر لنا الرسم التالي
4
0
sixa y
1-
2-
3-
1y
2y
4-
2- 5.1- 1- 5.0- 0 5.0 1 5.1 2
sixa x
x x y 2x nis
2
x y 1, soc
2
رسم الدالتين:)1-4( الشكل
: )2(مثال
؟x=-4:0.1:4 , y=x^2 ارسمي الدالة
:الحل
>> x=-4:.1:4;
>> y=x.^2;
>> plot(x,y,'o')
2 reugif :يظهر لنا الرسم التالي
61
41
21
01
8
Y
0
4- 3- 2- 1- 0 1 2 3 4
X
1
z
1-
2-
3
5.2 3
2 5.2
2
5.1 5.1
y 1 1
x
y x) yx (/z 2 2 2
رسم: )1-6( الشكل
>>contour(x,y,z)
>> xlabel('x')
>> ylabel('y') 1.3 erugif
3
8.2
6.2
4.2
2.2
2
y
8.1
6.1
4.1
2.1
1
1 2.1 4.1 6.1 8.1 2 2.2 4.2 6.2 8.2 3
x
y x) yx (/z 2 2 2
مخطط الدالة: )1-7( الشكل
:)4(مثال
وحاصل جمعهما وحاصل الطرح والدالتين مع بعضهما في نفس الرسم؟cosn(x),sin(x ) ارسمي الدالة
:الحل
x=-10:.01:10;
y1=sin(x);
subplot(3,2,1)
plot(x,y1);xlabel('x');ylabel('y');title('sin(x)')
subplot(3,2,2)
y2=cos(x);
plot(x,y2,'r');xlabel('x');ylabel('y');title('cos(x)')
subplot(3,2,3)
plot(x,y1+y2,'k');xlabel('x');ylabel('y');title('sin(x)+cos(x)')
y4=y2-y1;
subplot(3,2,4)
plot(x,y1,x,y4);xlabel('x');ylabel('y');title('cos(x)-sin(x)')
y5=sin(x);
y6=cos(x);
subplot(3,2,5)
plot(x,y5,'r',x,y6,'k');xlabel('x');ylabel('y');title('sin(x) and cos(x)')
)x(nis )x(soc
1 1
0 0
y
1- 1-
01- 5- 0 5 01 01- 5- 0 5 01
x x
)x(soc+)x(nis )x(nis-)x(soc
2 2
0 0
y
2- 2-
01- 5- 0 5 01 01- 5- 0 5 01
x x
)x(soc dna )x(nis
1
0
y
1-
01- 5- 0 5 01
x
5.0
Z
0
5.0-
01
5 01
0 5
0
5- 5-
y 01- 01-
x