56
Mathworks Matlab اد إعد م. يوسف دعبول1

GE 204 - Mathworks Matlab

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GE 204 - Mathworks Matlab

Mathworks Matlab

إعداد يوسف دعبول.م

1

Page 2: GE 204 - Mathworks Matlab

؟ Matlabما هو

الاسم مشتق منMatrix Laboratory

برنامج ولغة لتطبيق العملياتدسيةالرياضية للحسابات العلمية والهن

مصمم لعمليات المصفوفات صمم في بداية السبيعنات

مشهور بقدراته الخاصة بالرسوماتوالأدوات المختلفة التطبيقات

2

Page 3: GE 204 - Mathworks Matlab

Matlabاستخدام

ق بكتابة الأوامر عن طري

(<<)نافذة الأوامر

بتنفيذM-files

باستخدامSimulink

3

Page 4: GE 204 - Mathworks Matlab

Matlabنافذة

Workspace

Variables/Current

Directory

الجديدة) Matlab اصدارات)

Command History

الجديدة) Matlab اصدارات)

Command Windowنافذة الأوامر

(all Matlab versions)

اكتب الأوامر هنا

Matlabذاكرة

ا الأوامر المدخلة سابق

4

Page 5: GE 204 - Mathworks Matlab

Matlabأجزاء Operators

Matrices

Plotting

M-files

Flow control

العمليات

المصفوفات

الرسومات

الملفات

التحكم بالتنفيذ

5

Page 6: GE 204 - Mathworks Matlab

العمليات الحسابية البسيطة

الجمع+a+b

الطرح-a-b

الضرب*a*b

(من اليسار)القسمة/a/b

(من اليمين)القسمة\a\b (ba)

الأس^a^b

ت يامل

لعا

Op

era

tors

6

Page 7: GE 204 - Mathworks Matlab

أولوية العملياتالأقواس( )

الأس^LR

القسمة/الضرب* /LR

الطرح/الجمع+ -LR

مثال

>> 5/2*3+4

ans=

11.5

ت يامل

لعا

Op

era

tors

7

Page 8: GE 204 - Mathworks Matlab

نتائج العمليات

سابية إذا لم يسند ناتج العملية الح

Matlabإلى متغير، يقومansباسنادها الى المتغير

لمعرفة ناتجans،اكتب

>>ans

>> 6*5

ans =

30

>> 17/5

ans =

3.4000

>> ans

ans =

3.4000

ت يامل

لعا

Op

era

tors

8

Page 9: GE 204 - Mathworks Matlab

اسناد النتائج

إذا اسند ناتج العملية إلى متغير ،يرة إلى سيحتفظ المتغير بالقيمة الأخ

أن يتم تعديلها

يمنع ( ;)استخدام الفاصلة المنقوطةمن إظهار ناتج العملية، بينما عدم

استخدامها يظهر الناتج

اتيفضل اسناد النواتج الى متغير

من الممكن كتابة عدة أوامر بسطر:واحد

>> 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

Page 10: GE 204 - Mathworks Matlab

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

Page 11: GE 204 - Mathworks Matlab

y x

>>y=x^0.5;

>>y=x^(1/2);

>>y=sqrt(x);

Matlabعمليات

يمكن حساب الجذر التربيعي لرقم بعدة طرق: مثال:

ت يامل

لعا

Op

era

tors

11

Page 12: GE 204 - Mathworks Matlab

أسماء المتغيرات اتلتسمية المتغير_ يمكن استخدام الحروف، والأرقام، و:

>>case_34=6.45;

>>case34=6.45;

ات لا بد من بدء اسم المتغير بحرف، ولا يمكن وضع مساف

:أو علامات أخرى ضمن اسم المتغير

34case, ge204!, Name Here

case34, ge204, Name_Here

ت يامل

لعا

Op

era

tors

12

Page 13: GE 204 - Mathworks Matlab

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

Page 14: GE 204 - Mathworks Matlab

Matlab Help

اكتب•>>help

لمعرفة المزيد

عن أوامر ودوال

Matlab

ت يامل

لعا

Op

era

tors

14

Page 15: GE 204 - Mathworks Matlab

>> help sqrt

square rootfunction help

Matlab Help

ت يامل

لعا

Op

era

tors

15

Page 16: GE 204 - Mathworks Matlab

Matlab Help

يمكن أيضا

استخدام أيقونة

help لمعرفة

المزيد عن أوامر

Matlab

نافذة مستقلة

ت يامل

لعا

Op

era

tors

16

Page 17: GE 204 - Mathworks Matlab

المصفوفات

تبرز قوة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

Page 18: GE 204 - Mathworks Matlab

(تابع)المصفوفات

كل مصفوفة تتكون من عناصر

ف عناصر المصفوفة تكون الصفووالأعمدة

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

عد مصفوفة ذات ب)يمكن توليد متجه:باستخدام الأمر التالي( واحد

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

Page 19: GE 204 - Mathworks Matlab

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

Page 20: GE 204 - Mathworks Matlab

عمليات المصفوفاتالضرب*

ضرب العناصر.*

القسمة/

قسمة العناصر./

الأس^

الأس للعناصر.^

ت فافو

صلم

اA

rra

ys

20

Page 21: GE 204 - Mathworks Matlab

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

Page 22: GE 204 - Mathworks Matlab

1C A B

1C BA

(تابع)عمليات المصفوفات

Matlabأمر

>> C=A\B;

>> C=B/A;

العملية الرياضية

ت فافو

صلم

اA

rra

ys

22

Page 23: GE 204 - Mathworks Matlab

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

Page 24: GE 204 - Mathworks Matlab

تضمين المصفوفات

1 2 3

4 5 6

A2 3 4

5 6 7

B

>> D=[A B];

765654

432321D

A B تفافو

صلم

اA

rra

ys

24

Page 25: GE 204 - Mathworks Matlab

الأساسيةالماتلاببعض دوال Linspace()

Size()

Length()

Magic()

Zeros()

Ones()

Inv()&det()

Eig()

ت فافو

صلم

اA

rra

ys

25

Page 26: GE 204 - Mathworks Matlab

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

Page 27: GE 204 - Mathworks Matlab

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

Page 28: GE 204 - Mathworks Matlab

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

Page 29: GE 204 - Mathworks Matlab

Magic()

Magic(n) يولد مصفوفةn*n تتألف من أعداد صحيحة

وتكون اسطرها و أعمدتها [n2..1]تنتمي قيمها إلى المجال

. و اقطارها متساوية المجموع

ستكون المصفوفة السحرية الناتجة صحيحة في حالn>2 .

ت : مثالفافو

صلم

اA

rra

ys

29

Page 30: GE 204 - Mathworks Matlab

Zeros()

Zeros(n) : يولد مصفوفةn*n من الأصفار

Zeros(m,n) أوzeros([m n]) يولد مصفوفةm*n

.من الأصفار

ت فافو

صلم

اA

rra

ys

30

Page 31: GE 204 - Mathworks Matlab

Ones()

Ones(n) يولد مصفوفةn*nمن الواحدات.

Ones(m,n) أوones([m n]) يولد مصفوفةm*n من

الواحدات

أمثلة :

ت فافو

صلم

اA

rra

ys

31

Page 32: GE 204 - Mathworks Matlab

Inv() & det()

Inv(x) يعيد مقلوب المصفوفة المربعةx.

Det(x) يعيد محدد المصفوفة المربعةx.

أمثلة :

ت فافو

صلم

اA

rra

ys

32

Page 33: GE 204 - Mathworks Matlab

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

Page 34: GE 204 - Mathworks Matlab

plotأمر >> n=0:11;

>> y=sin((pi/6)*n);

>> plot(n,y)

رسم بدون أية خيارات

y1, x1 , …!لا بد من تساوي أبعاد

ت ما

سولر

اP

lott

ing

34

Page 35: GE 204 - Mathworks Matlab

>> plot(n,y,'--')

رسم باستخدام

خط متقطع

يمكن معرفة المزيد

:عن الأمر بكتابة

>> help plotplot(x1,y1[,x2,y2,x3,y3.....])

ت ما

سولر

اP

lott

ing

35

Page 36: GE 204 - Mathworks Matlab

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

Page 37: GE 204 - Mathworks Matlab

إضافة شكل إلى شكل موجود

بالامكان إضافة رسم إلى رسم آخر موجود من خلال

فإن hold onفعند استخدام الأمر holdاستخدام الأمر

ديد ماتلاب لا يزيل الرسم الموجود و إنما يضيف الرسم الج

. إلى الرسم الحالي

يستخدمhold off ت .لتحرير الرسم السابقما

سولر

اP

lott

ing

37

Page 38: GE 204 - Mathworks Matlab

مثال

ت ما

سولر

اP

lott

ing

38

Page 39: GE 204 - Mathworks Matlab

دوال الرسومات title

xlabel

ylabel

grid

axis

legend

figure

لرسمةا( عنوان)لكتابة اسم

لكتابة اسم محورx

لكتابة اسم محورy

لعرض شبكة بالرسم

لتحديد القيم الصغرى والكبرىللمحاور

لتوضيح أسماء الخطوط المرسومة

أخرىرسمةالىللانتقال

ت ما

سولر

اP

lott

ing

39

Page 40: GE 204 - Mathworks Matlab

مثال

ت ما

سولر

اP

lott

ing

40

Page 41: GE 204 - Mathworks Matlab

مثال

ت ما

سولر

اP

lott

ing

41

Page 42: GE 204 - Mathworks Matlab

subplotأمر

subplot(m,n,p)عدد الصفوف عدد الأعمدة

رقم الرسمة

ت ما

سولر

اP

lott

ing

42

Page 43: GE 204 - Mathworks Matlab

figureالأمر

يستخدم لفتح نافذه لصورة جديدة

مثال :

ت ما

سولر

اP

lott

ing

43

Page 44: GE 204 - Mathworks Matlab

Matlabملفات

كتابة أوامرMatlab كثيرة عدة مرات غير عملية

يتيحMatlabإمكانية تجميع الأوامر بشكل ملف

ةيكفي كتابة إسم الملف لتنفيذ جميع الأوامر المضمن

يوجد نوعان من الملفات:

– Script files (ملفات تحتوي على مجموعة أوامر)

– Function files (ملفات بشكل دوال)

جميع الملفات تحتوي على الامتداد.m

ت فامل

الM

-Fil

es

44

Page 45: GE 204 - Mathworks Matlab

M(M-files)انشاء الملفات

لكتابة أي ملفM-file:

في نافذة الأوامرedit filename<<بكتابة –

New > M-fileباختيار –

بالنقر على–

ميع الأوامر لتنفيذ الملفات، فقط اكتب اسم الملف، وستنفذ ج

المتضمنة بالملف

ت فامل

الM

-Fil

es

45

Page 46: GE 204 - Mathworks Matlab

Script Files:scriptملف

على سبيل)تخزين الأوامر بملف(testالمثال باسم

ثم كتابة الاسم بنافذة الأوامر:

>> test

y =

9.0

الكتابة بنافذة الأوامر

>> x=3.0;

>> y=x^2;

>> y

y =

9.0

>>

يمكنها التعامل مع المتغيرات

!Matlabبذاكرة

ت فامل

الM

-Fil

es

46

Page 47: GE 204 - Mathworks Matlab

ملفات الدوال

شبيهة بملفاتscript،مع الفروقات التالية:

function [list of outputs] = ge204(list of inputs)

% function help

.

.

.

program

.

.

.

return

اسم الدالة

تعريف الدالة

قائمة المخرجات قائمة المدخلات

متوضيح الدالة للمستخد

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

متغيرات ) Matlabبذاكرة

(! مستقلة

ت فامل

الM

-Fil

es

47

Page 48: GE 204 - Mathworks Matlab

مثال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

Page 49: GE 204 - Mathworks Matlab

التحكم بالتنفيذ

عادة، يكون تنفيذ الأوامر بالتسلسل

لباستخدام أوامر التحكم بالتنفيذ، يمكن تغيير هذا التسلس

الأوامر المهمة:

ifإذا–

if-elseغير ذلك-إذا–

whileطالما–

for...لــ–

a=2;

b=3;

c=a+b;

d=sqrt(b);

أوامر تكرار

(تنفذ مرة واحدة)أوامر شرطية

ذ في

تنبال

م حك

لتا

Flo

w c

on

tro

l

49

Page 50: GE 204 - Mathworks Matlab

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

Page 51: GE 204 - Mathworks Matlab

أية معادلة حسابية

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

Page 52: GE 204 - Mathworks Matlab

(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

Page 53: GE 204 - Mathworks Matlab

(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

Page 54: GE 204 - Mathworks Matlab

for index = start : [increment :] end

statementsend

forأمر

الزيادةقيمة(increment ) 1اختيارية، وستفرض قيمتهاإذا لم توضع

أن تكون كسورالنهايةوالزيادةوالبدايةيمكن لقيم

أن تكون موجبة أو سالبةلزيادةيمكن ل

المتغيرأو )النهاية< المتغيرينتهي التكرار إذا كان<(النهاية

ذ في

تنبال

م حك

لتا

Flo

w c

on

tro

l

أمر

!تكرار

54

Page 55: GE 204 - Mathworks Matlab

أمثلة>> for a=1:5

a

end

a = 1

a = 2

a = 3

a = 4

a = 5 ذفي

تنبال

م حك

لتا

Flo

w c

on

tro

l

55

Page 56: GE 204 - Mathworks Matlab

وظيفةما هو عمل التوابع التالية ؟

Min

Max

Round

Ceil

Sort

56

ة يف

ظو