The MATLAB programming language

95
1 علميلي والبحث اللعاتعليم ا وزارة ال كليةلقادسيةمعة التربية / جا الرياضيات قسم ا

Transcript of The MATLAB programming language

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

1

وزارة التعليم العالي والبحث العلمي

التربية / جامعة القادسيةكلية

قسم الرياضيات

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

2

MATLAB: لغة الربجمـــــــــــة

(The MATLAB programming language)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.MATLABمقدمة عن لغة االحتساب التقن -1

الثوابت والمتغرات. -2

المصفوفات والعملات على المصفوفات. -3

.المصفوفات متعددة األبعاد -4

السالسل الرمزة. -6

جمل اإلدخال واإلخراج. -7

.الجمل الشرطـــــة -8

جمل الدوران والتكرار. -9

. MATLABملفات البانات الخاصة ببرنامج -11

القاعدة. االعازاتواعازات المجموعات والبتات -11

الدوال والبرامج الفرعة. -12

الرسوم. -13

حل المعادالت الراضة. -14

:المصــــــــــادر

1- MATLAB 6.5 دار شعاع للنشر ,عبد الكرم البكو لمهندسا ,الدلل المرجع والتعلم(.)

2- MATLAB Help Version 6.5

3- www.mathworks.com

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

3

MATLAB :The MATLAB Programming Languageلغة البرمجة

مقدمة

البرنامج األشهر ف األوساط العلمة, إذ ستخدم هذا البرناامج فا مع ام MATLABعتبر برنامج

أي مسألة أو اهرة أت بعدها دور هذا البرنامج لتعامل مع تلك ةمذجنالمسائل العلمة والهندسة, وبعد

أكثر علـــــمالبرامج وحللها بأبسط الطرق وأحدثها وأسرها برمجة, ومن الجدر ذكره بان هذا البرنامج

كف معهد وكلة ف الوالات المتحدة األمركة فقط, عدا تلك المعاهد ف أوربا وبقة العالم, و 211من

, فســـــتــــذهل من عدد MATLABأن تدخل إلى أحد محركات البحث على شبكة االنترنت وتكتب فقط

المواقع الت تتحدث عن هذا البرنامج.

وتقاوم بعملاات ,الحساابات التقناة إلجراءتستخدم األداءلغة برمجة عالة MATLABوتعتبر لغة

. تمكناك هاذه اللغاة مان إلاى احتاراك كبار ال تحتاج أنهاضمن بئة سهلة البرمجة كما واإل هارالحساب

حل العدد من المسائل التقناة حساابا, خاصاة التا عبار عنهاا بمصافوفات والتا تحتااج إلاى جهاد كبار

.FORTANو Cلبرمجتها بلغات البرمجة األخرى مثل لغة

)مختبر المصفوفة(, حاث إن MATrix LABoratoryبر أتت تسمة هذه اللغة من اختصار التع

كماا أرفقات بهاذه اللغاة أدوات البرنامج مصمم أساسا للتعامل مع العملات على المصفوفات بشكل بساط.

)وهاا أكثاار ماان عشاارن أداة(, وتعتباار هااذه toolboxesلمعالجااة وحاال تطبقااات علمااة خاصااة ساامت

لغة, حث تسام لهام باتعلم وتطباق تقناات حال متخصصاة لمعالجاة األدوات هامة جدا لمستخدم هذه ال

ون اام الااتحكم والمحاكاااة والشاابكات العصاابة والتحلاال ,مشااكالت ومسااائل خاصااة, مثاال معالجااة اإلشااارة

الكم والمال واإلحصاء ومسائل الجبر الخط واالمثلة ... الخ.العددي و

Graphical User Interfaceأدوات واجهااة التخاطااب الرسااومة MATLABاانمن برنااامج

(GUI) .الت تجعلك تتعامل مع البرنامج على انه أداة تطبقة متطورة

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

4

MATLABتشغيل برنامج

تم تشغل البرنامج بأحد الطرق التالة:

إضاافة رماز أقوناة البرناامج تمعلى الحاسابة التا تعمال علهاا. ا MATLABبعد تنصب برنامج -1

النقاار علااى األقونااة بنقاارتن فتحااة عنااد وااتم علااى سااط مكتااب الحاساابة وحماال الرمااز

.double clickمزدوجتن

MATLABثم أسام البرناامج Programsبرامج إلى ومنها startقائمة إلىأو عن طرق الذهاب -2

6.5.

ونسخة اإلصادار وسانة. ثام بعاد ثاوان MATLABعندها سوك ت هر لنا شاشة تحمل أسم البرنامج

( حاث تحتاوي 1قللة ت هر نافذة البرنامج الرئسة والت تكون ف بداة التشاغل كماا فا الشاكل رقام )

على نوافذ فرعة. Windows هذه النافذة كسائر البرمجات الت تعمل تحت بئة ن ام

start Programs MATLAB 6.5

MATLAB)سط مكتب (نافذة البرنامج الرئسة(: شاشة 1شكل )

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

5

MATLABسطح مكتب برنامج

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

, تحاوي هاذه النافاذة وتاتحكم بجماع النوافاذ األخارى المكوناة لبرناامج MATLABسط مكتب برناامج

MATLAB. وحسب خارات تنصاب البرناامج, فقاد تكاون بعا هاذه النوافاذ مرئاة أو مخفاة ضامن

. MATLABنافذة

MATLABمكونات نافذة

-من األجزاء التالة: MATLABتتكون نافذة

شرط العنوان وكون ذات لون ممز عن باق األشرطة وجد على ساره الرماز الصاوري للبرناامج -1

وف منه وأسم البرنامج

, قائمااة Edit, قائمااة تحراار Fileباادأ بقائمااة ملااك (Lists Bar)أو (Menu Bar)شاارط قااوائم -2

.Help, ... وحتى قائمة المساعدة Viewعر

الموجاودة فا قاوائم الشارط االعاازاتوضم رموز صورة لابع (Tools Bar)شرط األدوات -3

السابق.

(Current Directory)هنااك فا الجازء األخار مان شارط األدوات جازء مهام ادعى الادلل الحاال

لمناا بأنناا علاى ( ع2والذي خبر المستخدم ف أي جزء من الحاسب هو موجاود حالاا وكماا فا الشاكل )

:Cوعلى القرص MATLAB6P5\workالدلل )المجلد(

كطرااق وعملهااا Startوفااه كلمتااان األولااى MATLABهنالااك شاارط مهااام خاااص بنافااذة برنااامج -4

تعلمك بأن البرنامج جاهز للعمال حساب التوجاه المعطاى Ready. بنما ذ بع االعازاتمختصر لتنف

.هل

األشرطة أعاله هناك مجموعة من النوافذ الفرعة الت مكن تفعلهاا أو إخفائهاا حساب إلىباإلضافة

(, لكان هنااك √( حث تم تأشر أسم النافذة المرغاوب بعرضاها باشاارة )2الحاجة وذلك كما ف الشكل )

وتنفاذ , والت من خاللها تم التعامل بكتاباة Command Windowنافذة أساسة للعمل ه نافذة األمر

األوامر بصورة مباشرة أو غر مباشرة.

( ه من مكونات نافذة 3كما ف الشكل رقم ) Viewتعتبر النوافذ الداخلة ال اهرة أسمائها ف قائمة -5

-ولكل نافذة منها عملها الخاص وكما ل: MATLABبرنامج

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

6

وهاا نافااذة ال مكاان االسااتغناء عنهااا ألن بواسااطتها ااتم تنفااذ Command Window:نافااذة األماار -أ

.(<<وتكتب بعد عالمة الحث ) األوامر وعر النتائج الت نحصل علها من تنفذ تلك األوامر

تسام لاك باساتعرا وتحمال وحفا ةتخاطباوها عان واجهاة :Workspaceنافذة ساحة العمل -ب

حاث ت هار قائمااة تضام أسام المتغار وحجمااه وعادد باناتاه وصانفه )جمااع MATLABارات لغاة متغ

.(3, كما ف الشكل )ه من صنك مصفوفة( MATLABمتغرات لغة

وها أضاا واجهاة رساومة تحادد الادلل الحااوي للملاك Current Directory:نافذة الدلل الحال -ج

.MATLABالذي تعامل معه برنامج

View(: النوافذ الداخلة ف قائمة 2شكل )

Workspace.ونافذة ساحة العمل Command Window(: نافذة األمر 3شكل )

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

7

وها نافاذة تخاطباة )رساومة( تسام لاك بالبحاث واساتعرا الوثاائق بشاكل Help:نافذة المساعدة -د

مباشر.

وهاا عبااارة عاان نافااذة تسااتعر بنااة شااجرة لاا دوات Launch Pad:الباارامج التنفذااة ةلوحاا -و

. التنفذة والبرامج

تمكناك هااذه النافاذة ماان إعاادة تنفااذ األوامار السااابقة Command History:نافاذة األواماار الساابقة -هاـ

المنفذة ف نافذة األمر بدال من كتابتها مرة أخرى.

بعد تفعلها .... MATLAB( بن النوافذ الداخلة لنافذة البرنامج 4والشكل )

بعد تفعلها MATLABالنوافذ الداخلة لنافذة البرنامج (: 4شكل )

(lists bar)شرط القوائم

(tools bar)شرط األدوات

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

8

:مالحظات

موجهااة بالمصاافوفات MATLABعبااارة عان مصاافوفة, لغااة MATLABكال متغاار فاا -1

(.scalarحتى وان كانت المتغرات أعدادا مفردة )

ستخدم لحذك المتغرات والدوال من الذاكرة . Workspaceضمن clearاألمر -2

.Window Commandمراأللمس نافذة ستخدم Workspaceضمن clcاألمر -3

:مختلفة بتنسقات أ هار MATLABف لغة النتائج العددة إ هارمكن -4

format short, long, short e, long e, hex, blank, +, rat,…

من خالل: MATLABجاهزة ف عازاتاك demo( demonstrationمكن تنفذ ) -5

Help Demos (Toolboxes)مثال أختر الموضوع المحدد

-ف:مكن االستفادة منها

عر شفرة -ج .(Helpتعلم أكثر حول الموضوع ) -ب. Demosتنفذ -أ

.M–file إلى Demoاستنساخ شفرة البرنامج من -د البرنامج .

من Demosمكن الدخول إلى ة :مالح ـــــ

للداللاة علاى اساتمرار االعااز فا مسابوقة بفارا فا نهااة الساطر )...(ثالث نقااط متتالاة -6

السطر التال.

وكاذلك فا Commandمنع طباعة المتغار أو النااتج فا نافاذة تفارزة منقوطة بعد اإلعاز -7

.Editorنافذة

, مثل:ا عتبر نص تعلقبعدهفكل نص أت إشارة النسبة المئوة )%( تستخدم للتعلق -8

% This Program Compute Area

(.examplel.mمثال ) ,(m.وتكون توسعها ) M–filesتسمى MATLABملفات -9

بحركة الساهم ل علاى Command نافذة االحتفا بكتابة االعازات السابقة والالحقة ف -11

واألسفل.

Commandت هار فا شاشاة )النتائج واالخراجات( MATLABنتجة تنفذ برنامج -11

Window .لذلك جب االنتقال إلها بعد التنفذ

والثواباات واألنااواع البانااة عاان المتغاارات اإلعااالنال تحتاااج إلااى MATLABلغااة -12

المستخدمة بالبرنامج. األخرى

Start

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

9

أماانلتنفااذ مقطااع ماان البرنااامج )تعلمااة أو مقطااع ماان البرنااامج( ااتم تأشاارها ثاام النقاار -13

:فت هر القائمة المنسدلة

وننفذها. Pasteونختار Command Windowوننتقل إلى Copyوبعد ذلك نختار

ونااة الصاافحة الفارغااة )البضاااء( الموجااودة ك, أنقاار علااى أM-fileإلنشاااء ملااك نصاا -14

وماان ثاام Fileماان القائماة New, أو اختاار MATLABسااط مكتاب أدواتضامن شاارط

نافاذة محارر ألوامرا هستدع هذ لفت ملك موجود مسبقا. Openأو اختار M-fileاختر

. كماا فا األشاكال )نافذة كتابة البرامج( MATLABالت مكنك ف كتابة أوامر النصوص

(5( ,)6( ,)7.)

الموجااودة فاا شاارط أدوات نافااذة Runونااة كباختااار أ تنفااذ الملااك المخاازونمكاان -15

Editor أو عبار ضاغط المفتااF5 أو االختاارRun مان القائماةDebugكتاباة اسام , أو

بعاد انتهااء كتاباة البرناامج .Commandفا نافاذة <<الملك المخزون أمام عالماة الحاث

( علاى قرصاك example1.mماثال )باسم معان M-fileخزن هذا الملك كملك )الملك(

الخازن ضامن شارط أدوات ساط أو Fileمان القائماة Save االختاار الصلب عبر اختار

(. 8ف الشكل )كما (.MATLABمكتب

مالح ة:

فباإلمكان إعطااء االسام الاذي رغاب فاه (Untitle1)عند الخزن حمل البرنامج اسم افتراض

المبرمج أو البقاء عله.

Commandلحساب الجزء المنشر وإ هار النتجة ف نافذة الذهاب إلى الدالة المنشرة

للجزء المنشر Help ـالذهاب لل قص نسخ لصق

تعلق

رفع التعلق هكلة المقطع

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

10

مان القائماة Exit MATLAB االختاارعبار MATLABعندما نرد إغالق برناامج -16

File الموجااودة فاا نافااذة سااط مكتاابMATLAB أو عباار كتابااة األماارExit نافااذةفاا

Command ف زاوة سط مكتب )×( , أو عالمةMATLAB .العلا المنى

لإلعالن عن متغر عالم بن الدوال والبرنامج الرئس. globalاإلعاز -17

( بن االعازات.toc( و )ticلحساب زمن تنفذ البرنامج نضع تعلمت ) -18

مثال:

clc;

clear;

tic;

تنفذ البرنامج خزن البرنامج

رقم العمود رقم السطر شرط الحالة

البرامج )محرر الملفات النصة(.(: نافذة كتابة 6شكل ) (: إنشاء ملك جدد.5شكل )

(: نافذة كتابة البرامج )محرر الملفات النصة(.7شكل ) تنفذ البرنامج.(: 8شكل )

فضل كتابتها ف بداة أي برنامج رئس

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

11

(commands)

t = toc;

من خالل: Help ـللبحث عن إعاز ف ال -19

Help MATLAB Help

-هناك عدة طرق للبحث عن اإلعاز, منها:

1- Contents.

2- Index.

3- Search.

4- Demos.

قوم باقاك تنفذ البرناامج أو جازء مان البرناامج أو الدالاة )التعلماات breakاإلعاز -21

ال تــــنفذ(. breakالت بعد

:أمثـــــلــة

function ……. if ……. …….

……. ……. …….

……. else …….

……. break; break;

break; .…….

….….

}توقك تنفذ الدالة فقط{

else}توقك ف حالة {

تنفذ ال

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

12

للخروج من الدالة. returnاإلعاز -21

function …… :مثال

……..

…….

……

return;

……..

.…...

السطر ونوع الخطأ.رسالة الخطأ تحتوي على رقم -22

.ansأي عملة حسابة غر منسبة إلى متغر تنسب تلقائا إلى المتغر -23

أي متغر غر مستخدم ودخل ف العملات فان البرنامج سوك عط خطأ. -24

MATLAB :MATLAB Symbolsرموز لغة

من العناصر األساسة التالة: MATLABتتكون لغة

A, B, … , Z, a, b, … , zوه: :إنكلزةحروك أبجدة -أ

9 ,… ,2 ,1 ,0أرقام حسابة: -ب

... الخ. ,} , ) , ( ,* , ; , > , < , =, - , +رموز خاصة مثل: -ج

:Constantsالثوابت

-أنواع متعددة من الثوابت أهمها: MATLABوجد ف لغة

: ConstantsNumerical)أ( الثوابت العددية

وتتكون من عدد من األرقام ولها عدة أشكال ه:

18- ,472 ,23+ ,0 :مثل ( الثوابت الصحيحة:1)

خروج من الدالة

تنفذ ال

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

13

أكبر عدد صح مستخدم.: مالح ة

>> bitmax

ans =

9.007199254740991e+015

2 والت تقابل53

-1

18.0- ,472.5 ,51.8 ,0.0مثل: ( الثوابت الحقيقية:2)

>> realmin :مالح ة

ans =

2.225073858507201e-308

>> realmax

ans =

1.797693134862316e+308

>> pi

ans =

3.146

10 حث تحول الصاغة الجبراة ا:يائي( الثوابت الحقيقية المدونة تدوينا 3)N إلاى صاغةMATLAB

10 فمااثال تصااب ENائااة 32.0 :2.0فاا الجباارE3 2.0أوE+3 بالتاادون الااائ فااMATLAB

10 وكذلك تصب 21.7- :1.7-ف الجبرE2 0.0032 ف التدون الائ وكذلك تصب:

10-33.2E-3 : 3.2

2i ,6 - 9i ,6 + sin (0.5) * j ,sqrt (-2) - 1 :مثل :العقدية( الثوابت 4)

= 1i = j حث:

4.9497i –7.7782 -= cإذا كان: :1مثال

cr = real cr = -7.7782 (c)فالستخراج الجزء الحقق

ci = -4.9497 ci = imag (c) وإلستخراج الجزء التخل

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

14

2:9.000i –6.000 1) * 3)-sqrt ( –c2 = 3 * (2مثال

:2مثال :1مثال

>> x = 100; >> x = 100;

>> x = double (x); >> x = uint8 (x);

>> y = x + 1; >> y = x + 1;

y = 101 Error

Numeric )الرقمة )العددة

int8, uint8 (1 byte)

int16, uint16 (2 bytes)

int32, uint32 (4 bytes)

int64, uint64 (8 bytes)

single

real نوع

(4 bytes)

double

MATLAB االفتراض ف

real نوع

(8 bytes)

ال تدخل ف العملات الحسابة (تستخدم لتقلل حجم الخزن)

تدخل ف العملات الحسابة ال تدخل ف العملات الحسابة

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

15

:String Constants)ب( الثوابت الرمزية

النوع من "ثوابت" مجازا ألن الثابت هذا تكون من حروك وأرقام ورموز توضع بن سمى هذا

كعناون توض القم الناتجة من الحساابات وستخدم عادة ' ' مفردة أي quotationsعالمت اقتباس

ووحداتها, تسمى العبارات التالة والموجودة بن الحاصرات العلا ثوابت رمزة.

'The speed of wind ='

'I love Basrah'

'My birthday = 1970'

ب, ومان كل الثوابت الرمزة أعاله, وان استخدمت أرقاما حسابة داخلها, فه ال تحمل معنى حساا

الجدر بالذكر أثناء استعمال الثوابت الرمزة انه ال جوز استخدام حاصرات علوة داخل حاصراتها,

ومكان كتاباة Bاقل من الحرك Aكما نبغ التنبه أي أن هناك قما رمزة للحروك عتبر الحرك

:ذلك بالصورة

'A' < 'B'

:Boolean Constants )جـ( الثوابت المنطقية

.falseف حالة (0)و trueف حالة (1)وه الثوابت الت قمتها العددة

:مثال

3 > 2 1

0 > 5 0

:Variablesالمتغيرات

هناك بع القواعد الواجب مراعاتها عند كتابة اسم المتغر وه:

المفتاحااة )الكلمااات المحجااوزة( أو الاادوال التاا توفرهااا اللغااة ال مكاان اسااتخدام الكلمااات . 1

:كأسماء متغرات, مثال

if, end, for, break, else, global, return, function, sin, log, …

متغاارات COST, CoST, cost, Costة لحالااة الحاارك ) ساا. أسااماء المتغاارات حسا2

(. aو A مختلفة, وكذلك

1.شبه رقم MATLAB( ف لغة small letter) lحرك .3

. 63رمزا وسهمل أي رمز زائد عن 63. مكن ألسماء المتغرات أن تحوي 4

. جااب أن تباادأ أسااماء المتغاارات بحاارك متبوعااا بااأي عاادد ماان األرقااام أو األحاارك أو 5

underscore استخدام الرموز الخاصة أو الفرا . ز. وال جو

.(… ,if, while, input)تكتب بالحروك الصغرة MATLAB أوامر. جمع 6

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

16

:وه MATLABهناك عدة أنواع من المتغرات ف لغة

:Numerical Variablesالمتغيرات العددية )أ(

ومكان أن حتاوي علاى bإلاى aو Zإلى Aتتكون من حرك واحد أو مجموعة من الحروك من

ومكن أن تكون سلسالة مان األرقاام والحاروك بشارط أن بادأ بحارك )خلاط مان 9إلى 0أرقام من

رمازا. 63حتاى underscoreوحروك مبدوءة بحرك( ومكن كذلك أن حتوي المتغر علاى أرقام

(.أسأو وتكون قمة المتغر عددة ) صح , حقق, عقدي

:مثال

Ali_Ahmed, X2, S2, ks, K

بع المتغرات المعرفة مسبقا ف برنامج الماتالب والمعروفة:

التعبير الحسابي

تكون التعبر الحساب من مجموعة من الثوابت والمتغرات تجمع بنهما عملات حسابة وستخدم

^ واألمثلااة تالتااة تعباار عاان تعااابر جبرااة صااغت بلغااة ,* , /,-الحسااابة مثاال , فهااا الرمااوز

MATLAB.

MATLABالتعبر بلغة التعبر الجبري

a – 3 * b a – 3b

c ^ 2 – 10 c

2 - 10

(a ^ 2 + b ^ 2) / 12 a2 + b

2 / 12

m * (7 * d – 8 * g) m (7d – 8g)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

17

Rule of Precedenceقاعدة األسبقية )األولوية(

العملات الحسابة فا التعاابر والمعاامالت الحساابة, أولواتوهذه القاعدة مهمة ف فهم وترتب

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

وال, والضارب )أو القوسن ومن الساار إلاى المان, وبالنسابة للعملاات الحساابة فاالرفع إلاى األس أ

القسمة( ثانا, والجمع )أو الطر ( أخرا والمثال التال وضع هذه القاعدة:

التعبر:

A / B + C كافئ ف الجبر + CB

A

كافئ ف الجبر A( / B + Cبنما كافئ التعبر )CB

A

على نتجة القوس. A جري أوال حسب األولوة ثم قسم األقواسالن الجمع داخل

التعبر :مثال

M) ^ A - B / (K * F - X

تنفذ العملات حسب الخطوات التالة:

حسب األولوة أضا.تأخذ األقواس األولوة األولى, وتنفذ العملات داخلها

لتصب كمة واحدة. Mإلى األس X: رفع العملة األولى

لتصب كمة واحدة. F ف Kضرب العملة الثانة:

1

2

2

1

3

4

2

5

1

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

18

واحدة. : طر نتجة العملة األولى من نتجة العملة الثانة وتصب النتجة كمةالعملة الثالثة

على نتجة العملة الثالثة وتصب النتجة كمة واحدة. B: تقسم العملة الرابعة

وتصب النتجة كمة واحدة. A: تطر نتجة العملة الرابعة من العملة الخامسة

Arithmetic Statementالجملة الحسابية

تشاترط MATLABتكافئ المعادلة الحساابة فا الجبار إال أن MATLABالجملة الحسابة ف

بادون أشاارة بنماا كاون التعبار هأن كون اسم المتغر المراد حساب قمته ف الطارك األسار وحاد

ة المعادلة( ف الطرك األمن, كما ف األمثلة التالة: الحساب )بق

1( y = A * X + B

2) A = 3.14 * R ^ 2

:مثال

لوة العملات الحسابة ف الجمل الحسابة:أو

Z = A – B / C

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

الطرك األمن.

String Variables:)ب( المتغيرات الرمزية

تشاابه فاا تركبهااا المتغاارات العددااة والفاارق الوحااد بنهمااا هااو أن قمااة المتغاار الرماازي تكااون

(.اقتباس)محصورة بن عالمت رمزة

String Statementالجملة الرمزية

تشبه ف تركبها الجملاة الحساابة والفارق الوحاد بنهماا هاو أن المتغار فا طرفهاا األمان كاون

رة بن عالمت اقتباس( والتعبر ف طرفها األسر كون متغر.رمزا )محصو

واألمثلة التالة توض ذلك:

A = 'Hameed Abdul–Kareem';

N = 'Number of Student';

Dept = 'Computer Science';

2

3

1

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

19

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

. ' ' موضوعة داخل

:Library Functionsالمكتبية الدوال الجاهزة

راضاة كثار اساتعمالنا الالادوال الجااهزة MATLABلغاة باساتخدامتوفر ف مع ام الحاسابات

وغرها ومكن استدعائها ف أي وقت, ومنها: المثلثة واللوغارتمة االقتراناتولها, مثل الدوال

المعـــــــــنى االقتران

Sqrt الجذر التربع

abs القمة المطلقة

exp 10المرفوع إلى قوة بأساس

log اللوغارتم الطبع

log 10 اللوغارتم العشري

log 2 2اللوغارتم ذو األساس

sin جب الزاوة

Cos جب تمام الزاوة

Tan ل الزاوة

atan ل معكوس الزاوة

fix الصفر باتجاهالتدور

floor الالنهاة السالبة باتجاهالتدور

ceil الالنهاة الموجبة باتجاهالتدور

round أقرب عدد صح باتجاهالتدور

mod الجزء الصح من حاصل القسمة

rem بقة القسمة

Sign كانت موجبة, سالبة, صفرإشارة العدد إذا

imag القسم التخل

real القسم الحقق

factor العوامل األولة

Isprime عدtrue أولاإذا كان العدد

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

20

primes نشئ قائمة باألعداد األولة

gcd القاسم المشترك األع م

lcm المضاعك المشترك األصغر

انمعكوسحانذوال انمثهثيح انذوال انمثهثيح

MATLAB انذانح MATLAB انذانحSine sin() Inverse Sine asin() Cosine cos() Inverse Cosine acos() Tangent tan() Inverse Tangent atan() Cotangent cot() Inverse Cotangent acot() Secant sec() Inverse Secant asec() Cosecant csc() Inverse Cosecant acsc()

انذوال انمثهثيح قطع سائذ انمعكوسح انذوال انمثهثيح قطع سائذ

MATLAB انذانح MATLAB انذانحHyperbolic Sine sinh() Inverse Hyperbolic

Sine asinh()

Hyperbolic Cosine cosh() Inverse Hyperbolic

Cosine acosh()

Hyperbolic Tangent tanh() Inverse Hyperbolic

angent atanh()

Hyperbolic Cotangent coth() Inverse Hyperbolic

Cotangent acoth()

Hyperbolic Secant sech() Inverse Hyperbolic

Secant asech()

Hyperbolic Cosecant csch() Inverse Hyperbolic

Cosecant acsch()

:مثال

>> x = 2.6;

>> y1 = fix (x); y2 = floor (x); y3 = ceil (x); y4 = round (x);

y1 = 2

y2 = 2

y3 = 3

y4 = 3 س/ مالفرق بن الدوال األربعة أعاله؟

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

21

)( ma

yxt

523

cabpg

مالح ة:

تأخذ االقترانات المكتبة أولوة بعد األقواس عند تنفذ العملات الحسابة.

sin (a + b) – m / sqrt (d)

كون تنفذ العملات الحسابة كما ل:

.bمع a: إجاد قمة جمع العملة األولى

(.1: إجاد قمة جب الزاوة لناتج العملة )العملة الثانة

.d: إجاد قمة الجذر التربع لــ العملة الثالثة

(.3على ناتج العملة ) m: إجاد ناتج قمة ناتج قسمة العملة الرابعة

( وتصاب النتجاة النهائاة كماة واحادة 2( مان نااتج العملاة )4: طر نااتج العملاة )العملة الخامسة

.(عددا واحدا )

:MATLABقمتها ف وإزائهامكتبة ف الجبر تمثل الجمل التالة إقترانات :مثال

102 ab b = sqrt ( a ^ 2 + 10 )

z = ln (cx + ny) z = log (c * x + n * y)

y = sin 3 (x + nk) y = (sin (x + n * k)) ^ 3

s = tan-1

(y / x) s = atan (y / x)

52 xer r = 2 * sqrt (exp (x – 5 ))

t = abs (x – sqrt (y)) / (a + m)

g = p ^ (3 / 2) + (a * b / c) ^ (1 / 5)

5

4

3 1 2

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

22

مالحظات:

كل متغر ف الماتالب عبارة عن مصفوفة, لغة الماتالب موجه بالمصفوفات حتى وان كانت -1

المتغرات اعداد فردة او اعداد مفردة.

ستخدم لمسح نافذة االوامر. clcاالمر -2

ثالث نقاط متتالة )... ( ف نهاة السطر مسبوقة بفراغ للداللة على استمرار االعاز ف -3

السطر التال.

اشارة % النسبة المؤة تستخدم للتعلق فكل نص ات بعدها ال عتبر اعاز )تعلق(. -4

.M( وكون امتدادها M fileملفات الماتالب تسمى ) -5

ة الخطأ تحتوي على رقم السطر ونوع الخطأ.رسال -6

اي متغر غر معرف ودخل ف العملات فأن البرنامج سوف عط رسالة خطأ. -7

جمع اوامر ماتالب تكتب بحروف صغرة. -8

:()dispعبارة الطباعة

مكن ف الماتالب من اظهار قم المتغرات او النتائج بأستخدام اسلوبن:

.x2و x1الظهار قم x2او x1االول عن طرق كتابة المتغر مثل -

ونحدد المتغر الذي نرد طباعته بن القوسن مثل ()dispالثان عن طرق عبارة -

disp(x1) اوdisp(x2).

.او العبارة ( ف نهاة المتغر ;نستخدم الرمز ) او القم لمنع طباعة المتغر -

على المصفوفاتالمصفوفات والعمليات

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

مفردة. وتعتبر العملات المجراة على األعداد المفردة ه أساسات علام الراضاات. وبانفس الوقات,

اج إلاى أكثار إعاادة إجاراء وعندما رد الشخص إجراء نفس العملة علاى عادد مفارد أو أكثار, فساحت

MATLABالعملة عدة مرات, مما عن هدر ف الوقت والجهد. ولحل هذه المشكلة, عماد برناامج

إلى إجراء العملات الراضة على مصفوفة من البانات.

المصفوفة البسيطة

ة, إذ أن إنشااااء لماااع المصااافوفات بشاااكل مباشااار وبطرقاااة سلسااا MATLABتعامااال برناااامج

المصفوفات تم بطرقة سهلة جدا.

x = [1, 3, 7, 9, 20] :)1( مثال

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

23

حث y = sin (x) :(2)مثال x0

x = [0 0.1 * pi .2 * pi .3 * pi .4 * pi .5 * pi .6 * pi .7 * pi .8 * pi .9 *

pi pi]

y = sin (x)

علاى أن تبادأ بقاوس سااري ثام تادخل MATLABقتصر كل ما علك إلنشاء مصافوفة فا لغاة

فاأن sin (x)القم المطلوبة بفرا أو )فارزة( ثم أغلاق المصافوفة بقاوس منا. وعنادما تراد كتاباة

وقااوم بوضااع النتااائج فاا مصاافوفة xعلاام بأنااك ترااد حساااب الجااب لكال قاام MATLABبرناامج

برمجة األخرى.مختلفة عن لغات ال MATLABوتجعل هذه اإلمكانة yأخرى ه

عنونة المصفوفة أو الفهرسة

عنصر, مكن الوصول إلى أي عنصر منها باستخدام الفهرسة له. 11المصفوفة أعاله تتكون من

>> x (3)

ans =

0.6283

>> y (5)

ans =

0.9511

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

(:.)

>> x (1: 5)

ans =

0 0.3142 0.6283 0.9425 1.2566

وتعد حتى 1بأن تبدأ بالرقم 5 :1, وجبرك الرمز xهذه ه العناصر الخمسة األولى من المصفوفة

.5الرقم

:مثال

>> x (7: end)

ans =

1.885 2.1991 2.5133 2.8274 3.1416

x 0 0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

y 0 0.31 0.59 0.81 0.95 1 0.95 0.81 0.59 0.31 0

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

24

إلاى تخاار عنصار ماان endوهناا تكمال ماان العنصار الساابع وحتااى نهااة المصافوفة, إذ تشاار الكلماة

عناصر المصفوفة.

مثال:

>> y (3: -1: 1)

ans =

0.5878 0.3090 0

3باأن تبادأ باالرقم 1 :1- :3 هنا العنصر الثالث ثم الثان ثم األول بترتاب عكسا, وخبارك الرماز

.1وتقك عند الرقم 1وتعد نزوال بقمة

مثال:

>> x (2: 2: 7)

ans =

0.3142 0.9425 1.5708

2باأن تبادأ باالرقم 7 :2 :2 , وخبارك الرمازxهنا العنصر الثان والرابع والساادس مان المصافوفة

.7وتقك عندما تصل إلى الرقم 2وتعد نحو األعلى بــ

مثال:

>> y ([8 2 9 1])

ans =

0.8090 0.3090 0.5878 0

بالترتاب الاذي نرغاب yلوضاع عناصار المصافوفة [1 9 2 8] استخدمنا هناا مصافوفة أخارى

فه, حث وضع العنصر الثامن أوال والعنصر الثان ثانا, بنما وضع العنصر التاسع ثالثا والعنصر

.yعناون العناصر المرغوبة من المصفوفة [1 9 2 8] األول رابعا. ف الواقع تدل المصفوفة

مثال:

>> y ([1 1 3 4 2 2])

ans =

0 0 0.5878 0.8090 0.3090 0.3090

مثال:

رساالة عطا حاثقبل الدلل كرقم غار صاح ال MATLABالتالة بأن برنامج توض األمثلة

.خطأ

>> y (3.2)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

25

Error

>> y (3.7)

Error

>> y (11.6)

Error طول المصفوفةخطأ بسبب تجاوز الدلل

إنشاء المصفوفة

األمار مقباول عبر كتابة كل العناصر ضمن المصافوفة, وهناا xلقد قمنا سابقا بادخال قم مصفوفة

عنصرا؟ 111تحوي احد عشر عنصرا فقط, ماذا لو احتوت xالن المصفوفة

المتعامدتن., وذلك باستخدام النقطتن xهناك طرقتان إلدخال عناصر المصفوفة

أمثلة:

1) >> x = (0: 0.1: 1) * pi

2) >> x = linspace (0, pi, 11 )

مثال:

>> a = [1: 7]

a =

1 2 3 4 5 6 7

مثال:

>> b = [linspace (1, 7, 5)]

b =

1 2.5 4 5.5 7

مثال:

>> a = (1: 7)

a =

1 2 3 4 5 6 7

مثال:

>> a = 1 : 5 , b = 1: 2: 9

a =

القمة النهائة عدد القم القمة االبتدائة

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

26

1 2 3 4 5

b =

1 3 5 7 9

مالح ة:

تفصال هنا تم إنشاء مصافوفتن, ولكان تاذكر بأناك تساتطع دماج التعبارن ضامن ساطر واحاد إذا لام

بفواصل:

>> c = [b a]

c =

1 3 5 7 9 1 2 3 4 5

.aمتبوعة بعناصر bمنلفة من عناصر cوبذلك تم إنشاء مصفوفة

تكييف المصفوفة

باالعتماد على المثال السابق, فاان فصال العناصار بفراغاات أو بفواصال عاداة حادد عناصار فا

ف حن أن استخدام الفاصلة المنقوطة جعل العناصر واقعة ف أسطر مختلفة. أعمدة مختلفة,

مثال:

>> c = [1 2 3 4 5]

c =

مصفوفة أفقة 5 4 3 2 1

مثال:

>> c = [1; 2; 3; 4; 5]

c =

مصفوفة عمودة )كل عنصر ف سطر( 1

2

3

4

5

مثال:

>> a = 1: 5

a =

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

27

1 2 3 4 5

مثال:

>> b = a'

b =

1

2

3

4

5

مثال:

>> k = b; (سبنت )المصفوفات

مثال:

>> g = [1 2 3 4 ; 5 6 7 8 ]

g =

مصفوفة متكونة من سطرن وأربعة أعمدة 4 3 2 1

5 6 7 8

مثال:

>> g = [1 2 3 4

5 6 7 8

9 10 11 12]

باأن نتقال إلاى ساطر جداد MATLABخبرنا برناامج Returnأو Enterكذلك فأن ضغط مفتا

أثناء إدخال قم المصفوفة.

مثال:

>> h = [1 2 3 ; 4 5 6 7]

Error عمدة غر متساوةعدد األ

:مالح ة

; half = g (2, 2) عنصر

.b إلى العمود a لقد استخدمنا هنا إشارة المنقول )المدور( لتحول السطر

تنزل سطر تخر

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

28

; full = g مصفوفة

مثال:

>> c = [1: 5; 2: 2: 10; 7: -1: 3]

c =

1 2 3 4 5

2 4 6 8 10

7 6 5 4 3

>> c (1, 2)

ans =

2

مالح ة:

طرقة أخارى لإلشاارة إلاى عناصار المصافوفة باساتخدام رقام واحاد فقاط, MATLABتقدم لغة

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

أعمدة المصفوفة من األعلى إلى األسفل )أي عناصر العمود األول ثم الثان ثم الثالث وهكذا(.

>> c (12)

ans =

4

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

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

وبن جمع عناصر المصفوفة.

مثال:

>> g – 2 % المعرفة سابقا g المصفوفة

ans =

-1 0 1 2

3 4 5 6

7 8 9 10

.2العدد gر من كل عنصر من عناصر المصفوفة وهنا ط

مثال:

>> 2 * g – 1

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

29

ans =

1 3 5 7

9 11 13 15

17 19 21 23

مثال:

>> 2 * g / 5 + 1

ans =

1.4 1.8 2.2 2.6

3 3.4 3.8 4.2

4.6 5 5.4 5.8

م الناتج على العدد س , ثم ق 2بالعدد gرب كل عنصر من عناصر المصفوفة أما ف هذه الحالة, فقد ض

لها الواحد. أضكوبعدها 5

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

مثاال العملااات الحسااابة المجااراة باان العملااات الحسااابة باان المصاافوفات بسااطة تمامااا ال تعتباار

باان مصاافوفات مختلفااة فالعملاات الحسااابة المجااراة ,أوضاا المفااردة. وبشااكل واألعاادادالمصافوفات

والحجااوم تعااد عملااات صااعبة التحدااد, وتعااد العملااات الحسااابة علااى المصاافوفات متساااوة األبعاااد

األمثلاةوالاك MATLABفا لغاة األساساةمن جمع وطر وضرب وقسمة من العملات األبعاد

التالة:

>> g % ة السابقةاستخدام المصفوف إعادة

g =

1 2 3 4

5 6 7 8

9 10 11 12

>> h = [1 1 1 1 ; 2 2 2 2 ; 3 3 3 3]

h =

1 1 1 1

2 2 2 2

3 3 3 3

>> g + h

gأما هنا فضرب كل عنصر من عناصر المصفوفة

ر من كل عنصر من العناصر , ثم ط 2بالعدد

1.الناتجة الرقم

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

30

ans =

2 3 4 5

7 8 9 10

12 13 14 15

>> ans – h

ans =

1 2 3 4

5 6 7 8

9 10 11 12

>> 2 * g – h

ans =

1 3 5 7

8 10 12 14

15 17 19 21

>> 2 * (g – h)

ans =

0 2 4 6

6 8 10 12

12 14 16 18

ح أضا بأن العملات الحسابة بن المصفوفات تعتمد نفس تسلسل أسبقة العملات المعتمد عناد ال

لكسار تلاك األولواة. إجراء العملات الحسابة على األعداد المفاردة, ومكان أضاا اساتخدام األقاواس

كما ومكن ضرب كل عنصر بالعنصر المنا ر له من المصافوفة األخارى أو قسامته شارط إن تسابق

إشارة الضرب أو القسمة بنقطة كما ف الشكل:

>> g .* h

ans =

1 2 3 4

10 12 14 16

27 30 33 36

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

31

عنصار بعنصاار عبار اسااتخدام إشاارة الضاارب hبالمصافوفة gولقاد قمناا هنااا بضارب المصاافوفة

المسبوقة بنقطة.

ضرب المصفوفتن MATLABأمام إشارة الضرب القاسة برنامج جعل وجود النقطة مالح ة:

عادة.بنما تخبر إشارة الضرب لوحدها البرنامج بان قوم بضرب مصفوفات عنصرا بعنصر,

>> g * h

Error

hعدد األعمدة للمصفوفة g الن عدد األسطر للمصفوفة

القسمة مسبوقة بنقطة كما فا إشارةقسمة مصفوفتن عنصرا بعنصر ممكنة عن طرق كتابة إنكما

المثال التال:

>> g ./ h

ans =

1.0000 2.0000 3.0000 4.0000

2.5000 3.0000 3.5000 4.0000

3.0000 3.3333 3.6667 4.0000

بتقساام MATLABإذا ساابقت إحاادى إشااارة القساامة بنقطااة, عناادها سااقوم برنااامج مالح ااة:

المصفوفتن عنصرا بعنصر. أما إذا كانت القسمة بدون نقطة, فاننا ستحدد قسمة مصفوفات عادة.

>> g .^ 2

ans =

1 4 9 16

25 36 49 64

81 100 121 144

. gولقد وجدنا هنا مربع كل عنصر من عناصر المصفوفة

القياسية المصفوفات

من إنشاء مصفوفات قاسة, وذلاك لتمتاع تلاك المصافوفات بخاواص MATLABمكنك برنامج

المصاافوفات التاا جمااع عناصاارها صاافرة أو مساااوة للواحااد, وماازات خاصااة, وتتضاامن أضااا

ثابتة. أعدادومصفوفات األعداد العشوائة والمصفوفات القطرة والمصفوفات الت عناصرها

>> ones (3) ( واحده)مصفوفة

ans =

1 1 1

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

32

1 1 1

1 1 1

>> zeros (2, 5) )مصفوفة صفرة(

ans =

0 0 0 0

0 0 0 0

>> size (g) )تحدد أبعاد مصفوفة(

ans =

3 4

>> ones (size (g))

ans =

1 1 1 1

1 1 1 1

1 1 1 1

فأن برنامج zeros (n)أو ones (n)عندما تبع اسم المصفوفة القاسة برقم مفرد مثل :مالح ة

MATLAB نشىء مصفوفات مربعةnn .تحتوي على أصفارا أو واحده على الترتب

>> eye (4) )مصفوفة الوحدة(

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

>> rand (3) )مصفوفة عشوائة(

ans =

0.9501 0.4860 0.4565

0.2311 0.8913 0.0185

0.6068 0.7621 0.8214

>> rand (1, 5)

األعمدة األسطر

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

33

ans =

0.4447 0.6154 0.7919 0.9218 0.7382

مثال:

>> d = pi;

>> d * ones (3, 4)

ans =

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

>> d + zeros (3, 4)

ans =

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

>> repmat (d, 3, 4) (34 d دباألبعا )تكرار القمة

ans =

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

3.1416 3.1416 3.1416 3.1416

مصفوفة فتكون حنئذ تكرر مصفوفات ولس قم. dمكن ان تكون :مالح ة

التعامل مع المصفوفة

العدد من الطرق للتعامل مع المصافوفات, وكانات هاذه الخاصاة MATLABبرنامج لكلقد امت

هاا أهاام مماازات البرنااامج, فمااا إن تحاادد المصاافوفة حتااى اازودك البرنااامج بااأقوى طاارق اإلدخااال,

تعلماات محاددة وممتعاة, أوالمصافوفة عبار اساتعمال تعاابر أجازاءترتاب بعا إعادة أوالتوسعة

. ولشار التعامال ماع MATLABوتعتبار معرفاة هاذه التعلماات مفتاا االساتعمال الفعاال لبرناامج

المصفوفات نأخذ األمثلة التالة:

>> A = [1 2 3; 4 5 6; 7 8 9]

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

34

A =

1 2 3

4 5 6

7 8 9

>> A (3, 3) = 0

A =

1 2 3

4 5 6

7 8 0

>> A (2, 6) = 1

A =

1 2 3 0 0 0

4 5 6 0 0 1

7 8 0 0 0 0

>> A (:, 4) = 4

A =

1 2 3 4 0 0

4 5 6 4 0 1

7 8 0 4 0 0

>> A (:, 4) = [4; 4; 4]

A =

1 2 3 4 0 0

4 5 6 4 0 1

7 8 0 4 0 0

>> A (:, 4) = [4 4 4]

Error بسبب عدم وجود فارزة منقوطة

مثال:

>> B = [7 8 9; 4 5 6; 1 2 3]

صفرا. (3 ,3)جعل العنصر ف الموقع

ال Aوبما ان المصفوفة 1تكون (6 ,2)جعل العنصر ف الموقع

تمتلك ستة أعمدة, لذلك سقوم البرنامج بتوسعها حسب الضرورة

وضع بق العناصر صفرا وتكون مستطلة.

4جعل جمع عناصر العمود الرابع تكون

4جعل جمع عناصر العمود الرابع تكون

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

35

B =

7 8 9

4 5 6

1 2 3

>> A = [1 2 3; 4 5 6; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> C = [A B(:, [1 3])]

C =

1 2 3 7 9

4 5 6 4 6

7 8 9 1 3

>> B = A (1: 2, 2: 3)

B =

2 3

5 6

عمود. كمصفوفة عمود واخذ أعمدتها عمود بعد Aبجعل المصفوفة Bتشكل المصفوفة مثال:

>> B = A (:)

B =

1

4

7

2

5

8

3

6

باضافة Aعبر توسع المصفوفة Cحصلنا على المصفوفة

.Bالعمودن األول والثالث من المصفوفة

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

36

9

مثال:

>> B = [1 2 3; 4 5 6; 7 8 9];

>> B = reshape (A, 1, 9)

B =

1 4 7 2 5 8 3 6 9

>> B = reshape (A, [1 9]);

B =

1 4 7 2 5 8 3 6 9

9*1إلى مصفوفة أحادة 3*3ف المثال أعاله إعاز تحول أبعاد المصفوفة الثنائة

مثال:

>> A = B

A =

1 2 3

4 5 6

7 8 9

>> B (:, 2) = [ ]

B =

1 3

4 6

7 9

. reshapeإجاد منقول )مدور( المصفوفة وإعادة تشكلها بالتعلمة مثال:

>> C = B'

C =

1 4 7

3 6 9

>> reshape (B, 2, 3)

عبر حذك كل اسطر العمود الثان من Bتمت إعادة صاغة المصفوفة

, [ ]األصلة, وعندما تضع أي عنصر مساوا للمصفوفة الفارغة B المصفوفة

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

بعد الحذك.

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

37

ans =

1 7 6

4 3 9

عمود بعد عماود وللحصاول علاى ساطر بعاد ساطر نعمال المادور reshapeتعمل تعلمة :مالح ة

(transport) .

.Cهنا حذفنا السطر الثان ف المصفوفة مثال:

>> C (2, :) = [ ]

C =

1 4 7

.Cبعناصر Aاستبدلنا عناصر السطر الثان من المصفوفة مثال:

>> A (2, :) = C

A =

1 2 3

1 4 7

7 8 9

مثال:

>> x = -3: 3

x =

-3 -2 -1 0 1 2 3

اساتخدام المصافوفات أضاا هناك المصفوفات المنطقة الناتجاة عان العملاات المنطقاة. كماا مكان

على العناصر اإلبقاء, وتم ف هذه الحالة كان حجمها مساوا لحجم المصفوفات المعنونة إذاالمنطقة

وها falseأي (0)عناصار وه العناصر المحققة للشارط بنماا تجاهال ال trueأي (1)ذات القمة

غر المحققة الشرط. ولنأخذ المثال التال: العناصر

>> abs (x) > 1

ans =

1 1 0 0 0 1 1

>> y = x (abs (x) > 1)

الت قمتها اكبر من الواحد. xمن تلك العناصر من المصفوفة yهنا تم إنشاء المصفوفة

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

38

y =

-3 -2 2 3

ومكن العمل مع المصفوفات الثنائة المنطقة كما عملنا مع األحادة المنطقة, كما ف المثال التال:

>> B = [5 -3; 2 -4]

B =

5 -3

2 -4

>> x = abs (B) > 2

x =

1 1

0 1

>> y = B (x)

y =

5

-3

-4

ترتيب المصفوفة

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

كما هو واض ف المثال التال:, MATLABعملة الترتب ف لغة sortاالعاز

x = randperm (8) << )إعاز ترتب األرقام بصورة عشوائة(

x =

7 5 2 1 3 6 4 8

>> [y, indx] = sort (x)

y =

1 2 3 4 5 6 7 8

indx =

4 3 5 7 2 6 1 8

المواقع القدمة الترتب الجدد

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

39

وعندما تكون المصفوفة ثنائة البعد فان عملة الترتب تتم بشكل مختلك وكما ل:

)عمود بعد عمود(

>> A = [randperm (6); randperm (6); randperm (6); randperm (6)]

A =

1 2 5 6 4 3

4 2 6 5 3 3

2 3 6 1 4 5

3 5 1 2 4 6

>> [As, idx] = sort (A)

As =

1 2 1 1 3 1

2 2 5 2 4 3

3 3 6 5 4 5

4 5 6 6 4 6

idx =

1 1 4 3 2 2

3 2 1 4 1 1

4 3 2 2 3 3

2 4 3 1 4 4

فوفة جزئيةالبحث عن مص

دلل العناصر الت تحقق شرطا معنا, والموجاودة أوإن تعرك موقع األحانف بع من المفد

, والذي عاد findبتحقق هذه الغاة عبر االعاز MATLABضمن مصفوفة معنة. قوم برنامج

المثال التال:, والك trueالذي تكون نتجة تحققه لشرط ما موقع العنصر أولك دلل

>> x = -3: 3

x =

-3 -2 -1 0 1 2 3

>> k = find (abs (x) > 1)

k = )الموقع(

1 2 6 7

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

40

>> y = x (k)

y =

-3 -2 2 3

>> y = x (abs (x) > 1)

y =

-3 -2 2 3

فمثال: ,)عمود بعد عمود( أن عمل ف المصفوفات الثنائة البعد أضا findوستطع االعاز

>> A = [1 2 3; 4 5 6; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> [i, j] = find (A > 6)

i =

3

3

3

j =

1

2

3

وجد عناصر القطر الرئس للمصفوفة. diagاالعاز :مالح ة

A =

9

8

8

7

987

654

997

998

>> diag (A)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

41

ans =

7

8

8

9

:مالح ة

الذن وجدان اكبر واصغر عنصر ف المصافوفة max, min الدالتن MATLABوفر برنامج

ومواقعهما.

ف حالة المصفوفة األحادة:

>> v = rand (1, 6)

v =

0.3046 0.1897 0.1934 0.6822 0.3028 0.5417

>> max (v)

ans =

0.6822

>> [mx, i] = max (v)

mx =

0.6822

i =

4

>> min (v)

ans =

0.1897

>> [mn, j] = min (v)

mn =

0.1897

j =

2

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

42

ف حالة كون المصفوفة ثنائة البعد:

>> A = rand (4, 6)

A =

0.1509 0.8537 0.8216 0.3420 0.7271 0.3704

0.6979 0.5936 0.6449 0.2897 0.3093 0.7027

0.3784 0.4966 0.8180 0.3412 0.8385 0.5466

0.8600 0.8998 0.6602 0.5341 0.5681 0.4449

>> [mx, r] = max (A)

mx =

0.8600 0.8998 0.8216 0.5341 0.8385 0.7027

r =

4 4 1 4 3 2

:مالح ة

>> max (A'); )اكبر عنصر لكل سطر(

>> [mn, r] = min (A)

mn =

0.1509 0.4966 0.6449 0.2897 0.3093 0.3704

r =

1 3 2 2 2 1

:مالح ة

>> min (A'); لكل سطر( )اصغر عنصر

<<مالح ة: اكبر عنصر ف مصفوفة ثنائة البعد.

mmx = max (mx)

mmx =

0.8998

>> [mmx, i] = max (A (:))

mmx =

0.8998

i = 8

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

43

توجد طرقة أخرى: :مالح ة

>> z = max (max (A));

>> z = min (min (A));

.sumنفس الشء لحساب المجموع :مالح ة

>> z = sum (sum (A));

توابع التعامل مع المصفوفة

عنوناااة المصااافوفات والمقااادرة علاااى التعامااال ماااع إلاااى باإلضاااافة, MATLABااازودك برناااامج

صفوفات, وه سهلة التطبق مثل:بعملات التعامل مع الم, المصفوفات الت شرحناها سابقا

>> A = [1 2 3; 4 5 6; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

>> flipud (A) up-down قلب المصفوفة باتجاه

ans =

7 8 9

4 5 6

1 2 3

>> fliplr (A) left-right قلب المصفوفة باتجاه

ans =

3 2 1

6 5 4

9 8 7

>> triu (A) (upper) استخالص الجزء المثلة العلا

ans =

1 2 3

0 5 6

0 0 9

>> tril (A) (lower) استخالص الجزء المثلة السفلى

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

44

ans =

1 0 0

4 5 0

7 8 9

>> g = det (A); )حساب محدد المصفوفة )قمة

>> h = inv (A); مصفوفة(معكوس المصفوفة )حساب

>> i = eig (A); حساب القم الذاتة للمصفوفة

>> j = eye (3) حساب مصفوفة الوحدة

j =

1 0 0

0 1 0

0 0 1

>> trace (A); حساب مجموع عناصر القطر الرئس

حجم المصفوفة

ثالثااة البعااد غاار معااروفن وكناات أوثنائااة أو أحادااةبعااد مصاافوفة أوتعاارك حجاام أن إذا أردت

مكنك من خالل االعااز MATLABبع العملات الراضة, فان برنامج إلجراءبحاجة لحجمها

length و size و numel:والك األمثلة التالة

>> A = [1 2 3 4; 5 6 7 8]

A =

1 2 3 4

5 6 7 8

>> S = size (A)

S =

2 4

.(4)بنما عط العنصر الثان عدد األعمدة (2)عبر العنصر األول عن عدد األسطر

>> [r, c] = size (A)

r =

2

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

45

c =

4

>> r = size (A, 1)

r =

2

>> c = size (A, 2)

c =

4

ثال:العدد الكل لعناصر مصفوفة فم numelعد االعاز

>> numel (A)

ans =

8

عدد العناصر الموجودة ضمن البعد األطول للمصفوفة, كما ل: lengthبنما عد االعاز

>> length (A)

ans =

4

>> B = -3: 3

B =

-3 -2 -1 0 1 2 3

>> length (B)

ans =

7

>> min (size (A)) مصفوفة ثنائة A

ans =

2

طرقة تولد مصفوفة بالدمج. مالح ة:

>> x = [1 2; 3 4];

>> y = [x x .^ 2; x .^ 3 x .^ 4];

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

46

مثال: عنصر: 12اعداد صححة موجبة, عدد عناصرها عرف مصفوفة عشوائة عناصرها

طباعة هذه العناصر. -1

اجاد اكبر واصغر عنصر. -2 معدل هذه العناصر. -3

ترتب العناصر تنازلا وتصاعدا. -4

solve:

x=fix(20*rand(1,12)+1);

disp(x)

xmax=max(x)

xmin=min(x)

mean(x)

x1=sort(x)

x2=fliplr(sort(x))

مثال:

, ثم جد ما ل: عرف مصفوفة عشوائة عناصرها اعداد صححة موجبة

معدل كل عمود من المصفوفة. -1 طباعة عناصر القطر الرئس, مجموع عناصر القطر الرئس. -2

اكبر عدد واصغر عدد ف كل صف من المصفوفة. -3 اكبر عدد واصغر عدد ف كل عمود من اعمدة المصفوفة. -4 المصفوفة.جد المحدد ومعكوس -5

solve:

X=fix(20*rand(6,6)+1);

disp(x)

mean(x)

disp(diag(x))

sum(diag(x))

xmax=max(x’)

xmin=min(x’)

xmax=max(x)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

47

xmin=min(x)

det(x),inv(x)

المرتبةالسالسل

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

1- X1=1:10

x =

1 2 3 4 5

2- X2=2:2:20

x =

2 4 6 8 10 12 14 16 18 20

3- X3=1:2:9

X3 =

1 3 5 7 9

4- X4=5:5:25

x =

5 10 15 20 25

5- X5=20:-1:10

X5 =

20 19 18 17 16 15 14 13 12 11 10

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

48

جمل اإلدخال واإلخراج

اإلدخالجمل

عملة التنسب منها: إلى باإلضافة لإلدخالهناك عدة صغ

:inputتعليمة -1

(:1مثال )

>> x = input ('enter x: ')

enter x:

.األعداد إدخال (:2مثال )

n = input ('enter n:');

m = input ('enter m:');

for i = 1: n

for j = 1: m

result (i, j) = i ^ j;

end;

end;

رمزة. أسماء إدخال (:3مثال )

clc;

clear;

z = input ('enter name', 's');

)على شكل مربع حوار(: لإلدخالصيغة ثابتة -2

مثال:

prompt = {'enter x'};

def = {'20'};

dlgTitle = 'Input for my program';

lineNo = 1; % عدد السطور المدخلة

stringللداللة على إدخال

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

49

answer = inputdlg (prompt, dlgTitle, lineNo, def);

;x = str2num (answer {1})% ف حالة التعامل مع رقم num إلى stringتحول

اإلخراججمل

منها: لإلخراجهناك عدة صغ

:disp او ايعاز تعليمة -1

:(1) مثال

>> d = 15;

>> disp (d);

15

:(2) مثال

>> a = 'ali';

>> disp (a);

ali

:(3) مثال

>> sum = 9.8;

>> disp (['sum = ', num2str (sum)]);

sum = 9.8

:(4) مثال

>> disp ('computer');

computer

(:1) مالح ة

قمة ذات ناوع باان واحاد ضامن الجملاة الواحادة )كال جملاة ناوع disp كون محتوات أنجب

بان واحد(.

القمة األولى من مصفوفة الخالا

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

50

(:2) مالح ة

)جاب من قمة ذات نوع بانة مختلفة ضامن الجملاة الواحادة أكثر dispف حالة كون محتوات

.(((3) )مثال [ ] ان تجمع القم ف قوسن كبرن

:msgbox او ايعاز تعليمة -2

>> msgbox ('ok', 'result')

:fprintf او ايعاز ( تعليمة3)

(:1) مثال

>> y = 1.2;

>> x = 100.5;

>> fprintf ('variable x is % 6.3f\n', x);

>> fprintf ('variable y is % 6.3f\n', y);

variable x is 1.200

variable y is 100.500

مراتب بعد الفارزة العشرة. 3مراتب منها 6تم حجز بأنهوهذا عن

(:2) مثال

>> fprintf ('% 8.3f\n', round (3.8));

4.000

(:1) مالح ة

مختلفة للطباعة وكما ل:مكن استخدام صغ

c%رمز واحد

d% تدون عشري

e%تدون ائ

الصندوقعنوان

) نوع بان رمزي( هالشء المطلوب طباعت

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

51

f% ة الثابتة طتدون النق

i%تدون عشري

o%تدون ثمان

s%تدون رمزي

x% عشر تدون سداس

(:2) مالح ة

وسات هر االعاازات بادون فاارزة منقوطاةكتاباة من خاالل والنتائج واألسماء األعدادمكن طباعة

.Command Window األمر ف نافذةالنتائج

الجمل الشرطية

العملات المنطقة والمقارنة مثلماا ادعم العملاات الراضاة, وتهادك MATLABدعم برنامج

و خطااأأ صاا بالتاا جاااب عنهااا ل ساائلة أجوبااةالعملااات والمعااامالت المنطقااة الحصااول علااى

(True/False).

عادد غار أي إنف تعاملها مع جمع التعابر المنطقة وعملات المقارنة MATLAB تعتبر لغة

جمااع التعااابر المنطقااة وعملااات إخااراج, كمااا وكااون Falseوعتباار الصاافر Trueصاافري هااو

والعادد صافر مان اجاال Trueالمقارناة عباارة عان مصافوفات منطقاة تحاوي العادد واحاد مان اجال

False.

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

.العددةنفس طرقة عنونة باق المصفوفات الت استخدمها سابقا ضمن التعابر المنطقة ب

perators O tionalelaR)العوامل العالئقية( : معامالت المقارنة

المقارنة الشائعة والمدرجة ف الجدول التال: اإلشاراتتتضمن معامالت المقارنة كل

الوصف معامل المقارنة

أصغر من >

ساوي أوأصغر =>

أكبر من <

ساوي أوأكبر =<

=( )لك نمزها عن المساواة إشارة ==

اشارة عدم المساواة ~=

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

52

مكن استخدام معامالت المقارنة للمقارنة بن مصفوفتن لها نفس الحجم, أو للمقارنة بن مصفوفة

الحالاة مقارناة كال عنصار مان المصافوفة ماع العادد المفارد, وتكاون المصافوفة هاذهوعدد مفرد وتتم

لتال:االمثال هالناتجة بنفس حجم المصفوفة الت تمت مقارنتها كما بن

(:1) مثال

>> a = 1; b = 5;

>> x = a > b

x =

0

>> A = 1: 9, B = 9 - A

A =

1 2 3 4 5 6 7 8 9

B =

8 7 6 5 4 3 2 1 0

>> tf = A > 4

tf =

0 0 0 0 1 1 1 1 1

الناتجة فا مواقاع المصفوفةهر االصفار ف , وت4الت ه أكبر من Aالعناصر من أوجدنالقد

.A > 4عندما 1هر الرقم , بنما A ≤ 4العناصر عندما

>> tf = (A == B)

tf =

0 0 0 0 0 0 0 0 0

.Bالت تساوي العناصر ف المصفوفة Aعناصر إجادلقد تم هنا

مالح ة:

)=( و )==( تعنان شئا مختلفاا, حاث قاوم )==( بمقارناة متغارن وتعاد اإلشارتنالح بان

العملاة إخاراج إلسناد)=( متساون, بنما تستخدم الم كون إذاكانا متساون وصفرا إذاالعدد واحد

متغر. إلى

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

53

( واصافارا )فا thrمنطقة عناصرها واحدات )ف حالاة اكبار مان أحادةلتولد مصفوفة (:1) مثال

.(thr تساوي أو ناصغر محالة

>> inddent = [10 17 22 0 7 3 2];

>> thr = 7;

>> y = (indent > thr)

y =

1 1 1 0 0 0 0

( واصافارا )فا thrمان رحالاة اكباعناصارها نفاس العناصار )فا أحادةلتولد مصفوفة (:2) مثال

.(thr تساوي أوحالة اصغر من

>> z = inddent .* (inddent > thr)

z =

10 17 22 0 0 0 0

peratorsOogical L: المعامالت المنطقية )العوامل المنطقية(

هار الجادول التاال المعاامالت نفا تعاابر المقارناة, و أوتوفر المعامالت المنطقة طرقة لادمج

MATLAB:المنطقة الموجودة ف لغة

الوصف المعامل المنطقي

& AND )و(

| OR )أو(

~ NOT )نف(

على استخدام المعامالت المنطقة: األمثلةوسنقدم لك فما ل بع

>> a = 1;

>> b = 5;

>> x = a ~= b

x =

1

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

54

>> b = (1 == 1) & (2 ~= 3)

b =

1

>> b = (1==1) | (2 ~= 3)

b =

1

>> b = (1==1) & not ((2 ~= 3))

b =

0

>> A = 1: 9; B = 9 - A;

>> tf = A > 4

tf =

0 0 0 0 1 1 1 1 1

4الت قمها اكبر من Aعناصر باجادحث قام

>> tf = ~ (A > 4)

tf =

1 1 1 1 0 0 0 0 0

.توالواحدالقد قام البرنامج بقلب النتجة السابقة, وتعن استبدال مواقع االصفار

>> tf = (A > 2) & (A < 6)

tf =

0 0 1 1 1 0 0 0 0

6.واقل من 2اكبر من Aالعبارة العدد واحد عندما كون العنصر من هذهحث تعد

أسبقية المعامل

باجااد قماة تعبار مساتندا إلاى مجموعاة مان القواعاد النا ماة ألسابقة MATLABقاوم برناامج

المعامل, وتحسب المعامالت ذات األسبقة العلا قبل المعامالت ذات األسبقة الدنا, وتقام المعاامالت

المان. وشار الجادول التاال قواعاد أسابقة المعامال التا إلاىذات األسبقة المتساوة مان الساار

.MATLABدها برامج عت

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

55

END-ELSE-IF الصيغة

ستخدم هذا االعاز لتنفذ عبارة او عدة عبارات عند تحقق شرط معن والصغة العامة له ه:

if expression

(commands) العبارة او العبارات المطلوبة عند تحقق الشرط

end

كانااات قماااة التعبااار إذا endو if( الواقعاااة بااان العباااارتن commands) األواماااروساااتنفذ

(expression) تكونtrue:والك المثال التال .

>> x = 10;

>> if x == 10

disp ('ok')

end;

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

:اخر مثالاذا كان المعدل suesاكتب برنامج الدخال ثالثة اعداد وحساب المعدل لها ثم طباعة عبارة

ناجح:

األسبقيةمستوى المعامل

األعلى ( األقواس )

.(^, ^) (, القوة'المدور)

(~النف ) إشارة

(./, /.(, القسمة )*, *الضرب )

(-) ) (, والطر الجمع

):( المتعامدتنمعامل النقطتن

(, <) ناكبر م (,=>ساوي) أوواصغر (,>) أصغر من

(~)= )==(,عدم المساواة المساواة (,=<ساوي) أواكبر من

ANDالجمع المنطق)&(

األدنى OR( |) المعامل المنطق

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

56

a1= input(‘the first degree=’) a2= input(‘the second degree=’) a3= input(‘the third degree=’) av= (a1+a1+a3)/3; if av >= 50 disp (sues) end

ifصيغة اخرة للـ

if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------

else if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------

else if expression (condition) ---------------------- العبارة او العبارات المطلوبة عند تحقق الشرط ---------------------

.

. end

بنماا ,trueالقماة expressionمتلك التعبر اف حال األوامرمن األولىحث ستنفذ المجموعة

.falseالقمة expression التعبر امتلك إذاتنفذ المجموعة الثانة

التالية: األمثلةواليك

(:1مثال )

>> x = 10;

>> if x == 10

msgbox ('ok', 'result');

(:2مثال )

>> if x == 10

msgbox ('ok', 'result');

else

msgbox ('no', 'result');

end;

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

57

(:3مثال )

>> x = 11;

>> if x == 1

disp ('1');

elseif x == 2

disp ('2');

else

disp ('3');

end;

اإلخراج

3

جمل الدوران والتكرار

مجموعة من جمل الدوران والتكرار وه: MATLABتوفر لغة

)ايعاز التكرار( for جملة

لعادد معان مان المارات األوامرمن والذي ستخدم لتكرار تنفذ مجموعة for جملة او اعازتقوم

:كما ل forوبخطوة معنة, وتعطى الصغة العامة لحلقة

for i = x1: x3: x2

(commands) اىخطاخ اىشاد تنشاسا

end;

x1مان القماة االبتدائاة endو forالواقعة بان عباارت (commands)األوامرحث عاد تنفذ

كما ف المثال التال: .x3مقدارها وبزادة x2القمة النهائة إلى

مثال:

>> for n = 1: 10

x (n) = sin (n * pi / 10);

end;

>> x

x =

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

58

Columns 1 through 7

0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090

Columns 8 through 10

0.5878 0.3090 0.0000

كما ل: هأعال التكرارومكن تفسر

التالاة, endب قماة العباارة الموجاودة حتاى عباارة اجاب حسا 10 إلاى 1مان nـمن اجل كل قمة ل

= n إلاىوهكذا حتى تصل n = 2وتكون ف الدورة الثانة ,n = 1 األولىف الدورة nتكون قمة

10.

(.10..1عشوائة قمتها ) عدادأ 10تولد مثال:

>> array = randperm (10)

array =

8 2 10 7 4 3 6 9 5 1

>> for n = array

x (n) = sin (n * pi / 10);

end;

>> x

x =

Columns 1 through 7

0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090

Columns 8 through 10

0.5878 0.3090 0.0000

.array( معطاة بالمصفوفة 10( و )1هنا قما عشوائة بن ) n سأخذ متغر الحلقة

مالح ة:

المثال التال:كما ف متداخلة, forعدة حلقات إنشاءمكن

>> for n =1: 5

for m = 5: -1: 1

A (n, m) = n ^ 2 + m ^ 2;

end;

disp (n);

end;

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

59

اإلخراج

1

2

3

4

5

>> A

A =

2 5 10 17 26

5 8 13 20 29

10 13 18 25 34

17 20 25 32 41

26 29 34 41 51

:أمثلة

>> for i = 1: 10

disp (i);

end;

اإلخراج

1

2

3

.

.

10

>> for i = 0: 2: 10

disp (i);

end; اإلخراج

0

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

60

2

4

6

8

10

>> for i = 10: -2: 1

disp (i);

end;

اإلخراج

10

8

6

4

2

>> for i =1: 10

for j = 1: 10

mult (i, j) = i * j;

end;

end; 1 2 3 4 5 6 7 8 9 10

2 4 6 8 10 12 14 16 18 20

3 6 9 12 15 18 21 24 27 30

4 8 12 16 20 24 28 32 3 6 40

. . . . . . . . . .

. . . . . . . . . .

10 20 30 40 50 60 70 80 90 100

WHILEجملة

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

والصغة العامة ه : ,التكراراتالت تندي عددا معنا من

)طبع جدول الضرب(

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

61

While expression (condition) ---------------------- الخطوات المراد تكرارها ----------------------

---------------------- End

وعبارة Whileحث ان برنامج الماتالب قوم بتكرار تنفذ خطوات المحصورة بن عبارة

end مادام الشرط الموجود بعد كلمةWhile وقمته متحققtrue وتوقف التكرار عند

. falseاي صبح توقف الشرط عن التحقق

(:1) مثال

>> x = 1;

>> while x < 25

disp (x);

x = x + 1;

end; اإلخراج

1

2

3

.

.

24

(:2) مثال

>> num = 0; EPS = 1;

>> while (1 + EPS) > 1

EPS = EPS / 2;

num = num + 1;

end;

>> num

num =

53

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

62

ة: حمال

وكاالت: whileو forهناك طرقة قانونة للخروج من حلقة

(whileوكذلك for)ف حال تحقق الشرط تم الخروج من الدوارة

s = 0; s = 0;

for i = 1: 100 x = 1;

s = s + i; while x < 100

if s > 250 s = s + x;

break; if s > 250

end; break;

end; end;

x = x + 5;

end;

اإلخراج اإلخراج

i = 22 x = 51

s = 253 s = 286

مالح ة:

ضامن حلقاة داخلاة واقعاة ضامن حلقاات اكبار فاان البرناامج break او االعاز التعلمةأذا وجدت

.األكبرخرج من الحلقة الت صادك فها التعلمة وال خرج من الحلقات

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

63

MATLABملفات البيانات الخاصة ببرنامج

وفاق صاغة خاصاة ببرناامج ,MATLABمكن تخزن المتغر الموجود ف ساحة عمل برنامج

MATLAB األمر, وذلك عن طرق استخدام save :كما ل

>> save

فا ملاك ذي صاغة (Workspace)وبذلك تم خزن جمع المتغرات الموجودة ف ساحة العمال

الملفااات ذات صااغة الثنائااة, هااذهمجلااد الحااال. وتحاااف الوضااع فاا matlab.matثنائااة باساام

المتغاارات أسااماءعلااى كاماال القاام وبدقااة مضاااعفة, كمااا وتخاازن ,MATLABرنااامج والخاصااة بب

أناواعها متوافقاة تماماا ماع بقاة إنماا مساتقلة, أصاولذات M-filesبنفس الدقة, وال تعتبار ملفاات

نساتطع تخازن أي متغاار وفاق ناوع مان الملفااات إذ, MATLABملفاات الموجاودة فا برناامجال

معالجة خاصة للملك. أة إجراءدون األخرى األنواعوفتحة من قبل

لتخزن متغرات معنة كما ف المثال التال: save األمرستخدم أنومكن

>> save var1 var2 var3

نحدد اسم أن, ومكن matlab.matضمن الملك var3و var2و var1أي قم بتخزن المتغرات

كما ل: save ل مر أولالملك كوسط

>> save filename var1 var2 var3

هضاامن ملااك اساام var1, var2, var3ن المتغاارات وتفساار التعلمااة السااابقة كمااا لاا: خااز

filename.mat.

save بااألمر إنشاانهاملفات البانات الت تام األمرفت هذا إذ save األمر load األمروعاكس

كما ل:

>> load

سواء ف أوال هحثما وجدت matlab.matكل المتغرات الت تجدها ضمن الملك وه تعن حمل

المتغارات المخزوناة أساماءواتم تخازن .MATLABف مسار البحث لبرناامج أوالمجلد الحال

المطابقاة لهاا فا األساماءل فاوق المتغارات ذات وساتحم ,ف سااحة العمال matlab.matف الملك

حال وجودها.

جااب ان نااذكر اساام الملااك وقائمااة (MAT-file)ولتحماال متغاارات معنااة ماان ملااك ذي الحقااة

المتغرات كما ل:

>> load filename var1, var2, var3

العمل. ةساح إلى var1, var2, var3وحملت المتغرات filename.matلقد تم هنا فت الملك

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

64

file-M

احد االمكانات الت قدمها الماتالب ه امكانة كتابة البرامج والت تعن كتابة مجموعة من االوامر ومن ثم تنفذها مرة واحدة اي بعكس الطرقة المعتادة M-fileواالعازات وخزنها ف ملف سمى

برمج الوقت والجهد حث تنفذ مجموعة ف تنفذ االعازات ف نافذة االوامر, هذه االمكانة توفر للمصعب تصححها ومكن ادخال االعازات من جدد وكذلك اذا اردنا اعادة M-fileمن االوامر بدون

جنبنا كل M-fileتنفذ االعازات جب اعادتها بالكامل, ف حن ان كتابة البرنامج وخزنه من خالل

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

ولكتابة البرنامج نقوم باالت:

باحدى الطرقتن: M-fileفتح ملف -1

file→new→ M-file

سوف تظهر من خالل االمر الموجود ف شرط االدوات ف برنامج الماتالب

فارغة نقوم بكتابة االعازات كما كنا نرد تطبقها ف نافذة االوامر M-fileنافذة

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

لتظهر نافذة نكتب من خاللها اسم الملف saveنختار منها االمر fileخالل قائمة

أ االسم برقم, ان الحتوي االسم ونحدد مكان الخزن والذي شترط فه ) ان البد

(.+ * − ÷على مسافة فاصلة, ان الحتوي على الرموز الراضة

عند خزن البرنامج تم تنفذه باحدى الطرق التالة: -2

من خالل نافذةM-file نختار القائمةdebug ومن ثم نختار االعازrun.

من خالل نافذةM-file نضغط على المفتاحF5.

افذة من خالل نM-file ومن شرط االدوات نختار االداة.

من خالل نافذة االوامر نكتب اسم الملف ونضغط المفتاحEnter.

مثال:

Q\ Write program in MATLAB using M-file and save the program with name ‘prog’ and run it in used four methods.

1 x=-3:0.2 =3;

2 y=cos(x);

3 [x,y]=meshgrid(x,y);

4 Z=peaks(x,y);

5 mesh(x,y,z)

: مالحظة

لك نجعل البرنامج ف الماتالب على شكل دالة اي ان البرنامج ستقبل مدخالت وعط نتائج جب والذي صغته العامة : functhinان تكون الخطوة االولى ف البرنامج ه اعاز الـ

Function [output]_name function[input]

هذه الحالة تحول البرنامج الى دالة وعند التنفذ جب اوال حفظ البرنامج باسم الدالة ومن ثم وف كتابة االمر المتمثل والمدخالت ف نافذة االوامر.

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

65

مثال:

Q\ Compute the value of function y=x3+x2 using matlab after inter value of x:

function y=prog2(x)

y=x^3+x^2

>> prog2(3)

ans

36

ايعازات المجموعات والبتات وااليعازات القاعدية

ايعازات المجموعات

تجمع منت م لعدد من القام وانطالقاا مان هاذا ألنهامجموعات إنهانستطع تقم المصفوفات على

المثاال التاال وقدم لك الختبار ومقارنة المجموعات, توابععدة MATLABم لك برنامج الفهم, قد

ابسط اختبار للمساواة:

>> a = rand (2, 5);

>> b = rand (2, 5);

>> isequal (a, b)

ans =

0

>> isequal (a, a)

ans =

1

:اإلدخالبحذك العناصر المتكررة من وسط uniqueوقدم لك المثال التال االعاز

>> a = [2: 2: 8; 4: 2: 10]

a =

2 4 6 8

4 6 8 10

>> unique (a)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

66

ans =

2

4

6

8

10

كماا ismemberومكن تحدد مجموعاة العناصار المشاتركة بان وساطن عبار اساتخدام االعااز

ل:

>> a = 1: 9

a =

1 2 3 4 5 6 7 8 9

>> b = 2: 2: 9

b =

2 4 6 8

>> ismember (a, b)

ans =

0 1 0 1 0 1 0 1 0

>> ismember (b, a)

ans =

1 1 1 1

.التحاد مجموعتن unionكذلك االعاز

>> union (a, b)

ans =

1 2 3 4 5 6 7 8 9

.لتقاطع مجموعتن intersect إعازكذلك

>> intersect (a, b)

ans =

2 4 6 8

للفضلة بن مجموعتن. setdiff إعازكذلك

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

67

>> setdiff (a, b)

ans =

1 3 5 7 9

مالح ة:

مصفوفات خالا. أوالعملات السابقة على مصفوفات رمزة إجراءمكن

البت إيعاز

العملاات بااجراءالمعامالت المنطقة الت ذكرناها ساابقا, انمن البارامج توابعاا تسام إلى إضافة

الصححة. األعدادالمنطقة على بتات منفصلة من

>> bitand (3, 4)

ans =

0

>> bitor (3, 4)

ans =

7

>> bitxor (13, 27)

ans =

22

>> bitcmp (20, 5) لخمس بتات 21متمم العدد

ans =

11

>> bitset (30, 1) 1كون 31من ىجعل البت األول

ans =

31

>> bitget (30, 1) 31من ىجلب البت األول

ans =

0

>> bitshift (3, 2) )إزاحة للسار )موقعن

ans =

الموقع

العدد الموقع

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

68

12

>> bitshift (12, -2) )إزاحة للمن )موقعن

ans =

3

>> z = [7 5 4 ; 3 8 9];

>> circshift (z, 1)

ans =

3 8 9

7 5 4

االيعازات القاعدية

وفاق أخرىقواعد إلىالعشرة األعدادالت تحول األوامرالعدد من MATLABنمن برنامج

ناالعااازالثنائااة عباار واألعاادادالعشاارة األعاادادصااغ سالساال رمزااة ونسااتطع التحواال باان

bin2dec,dec2bin :كما ل

>> a = dec2bin (17)

ans =

10001

>> class (a)

ans =

char

>> bin2dec (a)

ans =

17

>> class (ans)

ans =

double

>> dec2bin (17, 6)

ans =

01001

عدد الخانات

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

69

( عبر االعازن16العد فها العدد أساس)كون العشرة والستة عشرة األعدادتحول بن الوتم

hex2dec وdec2hex :كما ل

>> a = dec2hex (2047)

a =

7FF

>> dec2hex (2047, 4)

ans =

07FF

>> class (a)

ans =

char

>> hex2dec (a)

ans =

2047

>> class (ans)

ans =

double

عدد الخانات

رمزي

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

70

اإلدخال اإلخراج

الدوال والبرامج الفرعية

ه: للدوال . والصغة العامةMATLAB لغة تستخدم الدوال بشكل واسع ف

[out1, out2,…, outn] = function_name (input1, input2,...,inputn);

التالة: األمثلةكما ف

(:1) مثال

>> x = [1, 2, 3, 4, 5, 6, 7, 8];

>> y = [11, 12, 13, 2, 9, 70];

>> avgx = average1 (x);

>> avgy = average1 (y);

function result = average1 (z);

L = length (z);

sum1 = sum (z);

result = sum1 / L;

>> avgx

avgx =

4.5000

>> avgy

avgy =

19.5000

(:2) مثال

>> res1 = mult2 (x);

>> res2 = mult2 (y);

تدخالالم المخرجات

اسم الدالة

البرنامج الرئس

البرنامج الفرع )الدالة(

البرنامج الرئس

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

71

function result = mult2 (x);

result = 2 * x;

>> res1

res1 =

2 4 6 8 10 12 14 16

>> res2

res2 =

22 24 26 4 18 140

(:3) مثال

>> [sin_x, cos_x, x_2] = multf (x);

>> [sin_y, cos_y, y_2] = multf (y);

function [x1, x2, x3] = multf (x);

x1 = sin (x);

x2 = cos (x);

x3 = 2 * x;

>> plot (sin_x) لرسم النقاط

البرنامج الفرع )الدالة(

البرنامج الرئس

البرنامج الفرع )الدالة(

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

72

(:4) مثال

امتة داىح تاستخذا تشاذ اىاتالب ىحساب اىق اىتاىح :

z1=x2+sin(y)-tan(z)

z2= cos(z-y)+log(x)

solve:

function[z1 z2]=prog3(x,y,z)

z1=x^2+sin(y)-tan(z)

z2= cos(z-y)+log(x)

end

>>prog3(1,2,3) تفز ف شاشح اىتفز

(:5) مثال

:nامتة تشاذ ىحساب ضشب

solve:

function fact(n)

ni=0

for m=1:n

ni=ni*ni

end

(:6) مثال

:sامتة تشاذ ىحساب قح

S=1/(x+y)+ 1/(x+y)2+ 1/(x+y)

3+…..1/(x+y)

n

solve:

function s=prog(x,y,n)

s=0;

for m=1:n

s=s+1/(x+y)^ n

end

نقوم بحفظه بأسمprog : ثم نذهب الى نافذة االوامر لك ننفذه

>>prog(3,2,5)

. 90—10س/ اكتة دانح نحساب مجموعح االعذاد انمحصورج تين

انمتسهسح انتانيح:س/ اكتة دانح نحساب قيمح

S=r+r2+…..+r

n

(:7) مثال

اىعادىح االتح: sامتة تشاذ ىحساب قح

S=1/11+1/21+ ….. +1/n!

solve:

function s=prog1(n)

s=0;

mi=1;

for m=1:n

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

73

for k=1:m

mi=mi*k

end

s=s+1/mi

end

end

شت تتاىت ف ز اىحاىح زة ا ت االعاص forا الحظ اا حتاد اى استخذا االعاص

ت forقثو ا ت االعاص االه نزا ا ا ارا احتزا اى امخش endاىخا خاله اىعثاسج

ااء االعاص االخش ح قثو االخش.

:اتمالح

بعد اساتدعائها بالبرناامج إالالدالة الت تكون على شكل ملك مفصول المكن تنفذها مباشرة -1

الرئس.

)=( الموجود ف السطر تكون اسم الدالة المخزون ف القرص الصلب واسم الدالة بعد عالمة -2

متطابقن. جب ان كونا األول

مثال:

function y = myfunction (a, b);

-------

-------

-------

myfunction.mفكون الخزن

.(end)تحتوي نهاة الدالة على ال -3

لدوال.تخزن البرامج بعد كل تعدل وخاصة ا -4

بحرك. تبدأ أناسم الدالة المخزون جب -5

.أخرىتستدع دالة من قبل دالة أنمكن -6

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

74

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

وثالثاة األبعاادهار الباناات ثنائاة بالعدد من االعاازات التا ت MATLABزودك برنامج

بنماا رسام بعضاها ساطوحا األبعاادوثالثاة بعااداأل, حث رسام بعضاها منحناات ثنائاة األبعاد

, كما مكن استخدام اللون كبعد رابع.وإطارات

انزسم انثنائي نهذوالقوم هذا plot سس ح اىذاه اىت تخو اىعالقح ت تغش ف اىست خاله االعاص

اىز صغت اىعاح : هار البانات على شكل ثنائ األبعاد االعاز با

plot (x.axis, y.axis, 'p')

حثx.axis عبارة عن متجه تمثل قم المتغر االول اي محورx.

y.axis عبارة عن متجه تمثل قم المتغر الثان اي محورy.

P .تمثل إحدى مختصرات خواص المنحن الت تمثل اللون والشكل, تكون اختارة

مختصزاخ خواص انمنحني:b اىي االصسق g االخضشاىي r اىي االحش m اىي اسرا

y اىي االصفش k شنو اىقطح . اىي االسد o شنو دائشج

x شنوx + شنو اىزح * شنو سض اىزع S شنو اىشتع

v شنو خيج ىي < شنو خيج ىيساس > شنو خيج ىألعي ^ شنو خيج ىألسفو

غشا اخش تذ خط سس none شنو خط قط : شنو خط تصو -

(:1) مثال

x = [1: 0.5: 10];

;y = exp (x) )مصفوفة( yالحتساب مجموعة قم للـ

plot (x, y) x, y لرسم قم بانة للمحورن

(:2) مثال

x = 1: 10;

plot (x)

:مالح ة

رة باالمحورن برسم قم بانة متنا plotواحد )قائمة واحدة( قوم االعاز إحداثف حالة وجود

( لكل عناصر القائمة.x, xأي )

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

75

(:3) مثال

y = [ ];

for i = 1: 10

y (i) = exp (i);

end;

plot (y);

(:4) مثال

y = [ ];

for i = 1: 10

y = [y exp (i)];

end;

plot (y);

(:5) مثال

>> x=0:0.1:1*pi;

>> y=sin(x);

>> plot(x,y)

plotعذ تفز االعاص سظش

اىشس ثاششج ف افزج ستقيح

figureNعاا حج N

ىفتحح خو تسيسو اىافزج ا

ما ف اىشنو اىقاتو

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

76

(:6) مثال

(graph).ارسم مخطط بان

clc;

clear;

x = 0: pi / 100: 2 * pi;

y = sin (x);

plot (x, y);

legend ('sin (x)'); دلل المخطط

xlabel ('x = 0: 2: pi'); x عنوان المحور

ylabel ('sin (x) cos (x)'); y عنوان المحور

title ('plot sin cos function'); )عنوان المخطط الرئس )أعلى المخطط

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

77

اما اذا اردنا اضافة خواص مثل )المنحن بشكل دوائر

وباللون االحمر( فكون االعاز التال :بالشكل

>> plot(x,y,'ro')

(:7) مثال

plot (x, sin (x), 'r: +', x, cos (x), 'b: *');

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

xlabel ('عا حس اىساخ اىطيب')

ylabel ('عا حس اىصاداخ اىطيب')

title ('عا اىشنو اىطيب')

text (x, y, z, 'عا اىقطح اىطيت')

مكن كتابة أي نص على المخطط باستخدام االعاز:

لون احمر sin (x)لون ازرق عالمة المخطط cos (x)عالمة المخطط

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

78

text (x, y, 'string');

تخو احذاحاخ اىقطح اىطيتح ع الحظح ا ز االعاصاخ تفز عي اىافزج اىفعاىح x, yحج ا

:m-fileشاذ ف افزج ما ف اىخاه اىتاى حج سف نتة ت

x=0:0.1:1*pi;

y=sin(x)

plot(x,y)

xlabel('x-axis')

ylabel('y-axis')

title('the curve of

sin')

text(0.2,0.19887,'the

point1')

text(1.5,1,'the

point2')

text(3.2,0.058379,'the

point3')

خو تز sinx z خو تز yىن ىغاح 0 عثاسج ع اىق xتمزين: ىتن اىتز

cosx ا w خو اىتز x2

ق تتفز اإلرشاءاخ اىتاىح:

ف نافذة واحدة بحث كون المنحن بلون اخضر وعلى x,y (y=sinx)ارسم الدالة بن .1

.y=sinxشكل مربعات على ان كون عنوان الرسم

وتاثره على الرسم السابق. plotالعاز والحظ تنفذ ا z=cosxارسم الدالة .2

w=xوالدالة z=cosxوالدالة y=sinxارسم الدالة .32

ف نافذة واحدة وباكثر من طرقة.

اعد تنفذ التمرن مع عنوان المحاور. .4

فتح امخش افزج سس احذج ستن اخش افزج اىافزج اىفعاىح figureتفز االعاص عذمالحظح:

اىت تستتقثو تتيحش االعتاصاخ اىفتزج ىتزىل فعتذا تتاد رعتو افتزج عتح ت اىافتزج اىفعاىتح ستتخذ

تخال زعتو اىتشمتض عيت figure(3) خو تسيسو اىافتزج اىطيتتح تخال nحج figure(n)االعاص

.3زج راخ تسيسو اىاف

وظهور الرسم ف نافذة الشكل فان تنفذ االعاز مرة اخرى بصغه plotعند تنفذ االعاز مالحظة:

جددة ؤدي الى مسح الرسم االول ورسم الرسم الجدد.

لتجنب مشكله ضاع الرسومات سوك نتبع ف الرسم احد الطرق التالة:

االحداث النص المطلوب االحداث كتابته الصادي السن

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

79

نافذة واحدةرسم عدة دوال بأشكال منفصلة في -1

والذي قوم subplotمكن رسم عدة دوال وبأشكال منفصلة ف نافذة واحدة من خالل االعاز

بتحول النافذة الواحدة الى مصفوفة من االشكال المنفصلة ف النافذة الواحدة والذي صغته العامة

ه:

subplot (n,m,x)

مثل متجه حدد من خالله تسلسل الشكل xمثل عدد االعمدة و mمثل عدد الصفوف و nحث ان

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

الثان 2),(1االول والشكل 1),(1ثالثة صفوف وثالثة عمدة وتم تسلسل االشكال بالتسلسل فالشكل

ف االعاز هو تسلسل الشكل xعله فالذي كتب بدل الموقع الخامس وهكذا و 2),(2واتسلسل

المطلوب.

, وكما ف المثال التال حث xواذا اردنا دمج اكثر من شكل فتم كتابته تسلسل االشكال ف المتجه

طبق ف شاشة التنفذ اعاز اعاز:

>> x= -1:0.1: 1; >> y=asin(x); >> z=cos(x); >> subplot(3,3,1) >> plot(x,y,'or') >> title('the curve of asin') >> subplot(3,3,5) >> plot(x,z,'ok') >> title('the curve of cos')

: m-fileوكما مكن تطبقه بشكل برنامج كامل ف نافذة

x= -1:0.1: 1; y=asin(x); z=cos(x); subplot(3,3,1) plot(x,y,'or') title('the curve of asin') subplot(3,3,5) plot(x,z,'ok') title('the curve of cos')

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

80

حث نالحظ ان الشكل االول اخذ الموقع االول ضمن مصفوفة ابعادها حث نالحظ ان الشكل االول

والشكل الثان اخذ الموقع الخامس. 3x3اخذ الموقع االول ضمن مصفوفة ابعادها

او باستخدام شاشة التنفيذ: file-mتمرين: اكتب برنامح باستخدام

w=xو z=cosxو y=sinxارسم الدوال -2

كما ف التمرن السابق حث جزء النافذة الواحدة

واسم الدالة 4و 3ف الموقعن y=sinxواجعل الدالة (4x4)الى مصفوفة من االشكال

z=cosx ف الموقع السابع وارسم الدالةw=x2

.11و 10و 9ف المواقع

التمرن مع تنفذ عنوان االشكال والمحاور.اعد -

رسم اكثر من دالة في نافذة واحدة -2

مكن رسم اكثر من دالة ف نافذة واحدة وذلك باحد الطرقتن:

اوال: وذلك من خالل وضع كل الدوال ف اعاز واحد كما ف المثال التال:

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

81

>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or',x,z,'sk')

وكما ف المثال التالوالذي ؤدي plotقبل كل تنفذ جدد لإلعاز hold onثانا: باستخدام االعاز

الى ظهور الشكل اعاله:

>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or') >> hold on >> plot(x,z,'sk')

نوافذ منفصلةرسم اكثر من دالة في -3

والذي ستخدم لفتح نافذة جددة وكما ف المثال التال: figureستخدم االعاز

>> x=0:0.1:2*pi; >> y=sin(x); >> z=cos(x); >> plot(x,y,'or') >> figure >> plot(x,z,'sk')

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

82

بعض االمثلة لرسم الدوال:

الدوال المثلثة : -1

x=6الى x=0من sin(x)مثال : ارسم الدالة

x= 0:pi/50:6*pi; y=sin(x); plot(x,y)

.cos(x) ,sec(x) ,tan(x) ,cos(x)تمرن : حاول رسم بقة الدوال المثلثة

الدوال المثلثة القطع الزائد: -2

=xالى x=0ف الفترة من cosh(x) والدالة sinh(x)مثال : ارسم الدالة

x= 0:pi/50: pi; y1=sinh(x); y2=cosh(x); plot(x,y1,':',x,y2'-') legend('sinh(x)','cosh(x)')

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

83

الدوال المعكوسة: -3

x≤1≥1-ف الفترة sin-1(x)مثال : ارسم الدالة

x= -1:0.1: 1; y=asin(x); plot(x,y)

ارسم الدوال التالة وحسب الفترة المحددة: تمرين:

1. Y= е –x

; 0≤x≤10

2. Y=log(x) ; 0.1≤x≤10

3. Y=log10(x) ; 1≤x≤105

انزسم ثالثي االتعاد نهذوال:

plot3 سس ح اىذاه اىت تخو اىعالقح ت حالث تغشاخ ف اىفضاء خاله االعاص

اىز صغت اىعاح :

Plot3(x.axis,y.axis,z.axis,'p') .xعبارة عن متجه تمثل قم المتغر االول وهو محور x.axisحث ان -

- y.axis وهو محور الثانعبارة عن متجه تمثل قم المتغر y.

- z.axis وهو محور الثالثعبارة عن متجه تمثل قم المتغر z.

- P .تمثل احدى مختصرات خواص المنحن كاللون والشكل وتكون اختارة

plot3 (x1, y1, z1, s1, x2, y2, z2, s2,…);

-

-

االحداث االحداث االحداث اللون )خط رمزي( الثالث الصادي السن

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

84

مثال:

>> x=0:0.125:10;

>> z=peaks(x,y);

>> plot3(x,y,z)

عثاسج ع داىح راضج تستخذ ىشس حاخ تحت ق ختيفح. peaks اىذاىح

عذ تفز االعاصاخ ما ف اىخاه اعال ظش ثاششج ما ف اىشنو اعال ن اىتحن تاىافزج

figureاىظاشج ما ش تا ف اىشس اىخائ حج ن فتح افزج رذذج ىيشس تا خاله االعاص

ح اىرد ستخذ ىتس xlabel,ylablel,zlabelمزىل ن تسح اىحاس خاله االعاصاخ

.textىتسح قطح عح ستخذ االعاص titleاالعاص

انزسم ثالثي االتعاد عهى شكم شثكح:

عثاسج ع تحو احذاحاخ ىتغش االه اىخا اى شنو شثنح )تا( خاله االعاص

meshgrid رىل فق تاىشس خاله االعاص ح تحذذ اىعالقح تا ت اىتغش اىخاىج تعذ

mesh:حج ا اىصغح اىعاح ىالعاص ما ي

[X_new Y_new]= meshgrid (X_old,Y_old);

اى شنو شثنح ت خضا تتغش X_old,Y_oldا ق تتحو اىتزت meshgridاالعاص

X_old,Y_old :ما ضح ف اىخاه اىتاى

>> x=-3:0.125:3;

>> y=x;

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

85

>> [x,y]=meshgrid(x,y); >> z=peaks(x,y); >> mesh(x,y,z)

ا متاتت االعاصاخ تشنو اخش:

>> [X,Y] = meshgrid(-3:.125:3); >>Z = peaks(X,Y); >>mesh(X,Y,Z); >>axis([-3 3 -3 3 -10 5])

حج ا اىتشتثا عطا فس اىشنو:

فصغت اىعاح : meshحج ا االعاص

mesh(x,y,z)

اىزاه اىقاتو ىالحاءاخ في فزا زا االعاص فسن cحج ا meshcاك اعاص اخش

اىشس ما ف اىشنو اىتاى:

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

86

=zىتن y=sin(x) ىتن x=0:0.1:10ىن تمزين: ( )

( ) اسس اىعالقح ت ز

اىتغاساخ اىخالحح شج سس اعتاد شج عي شنو شثنح.

:(1)مثال

t = linspace (0, 10 * pi, 100);

plot3 (sin (t), cos (t), t);

xlabel ('sin (t)');

ylabel ('cos (t)');

zlabel ('t');

text (0, 0, 0, 'origin');

grid on لرسم الشبكة

(:2) مثال

for i = 1: 10

for j =1: 10

mult (i, j) = i * j;

end;

end;

surf (mult) ( ثالث االبعاد)شكل مجسم

مالح ة:

هندسة منها: أشكالهناك من االعازات لرسم

bar االيعاز

bar chartستخدم لرسم

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

87

مثال:

x = -2.9: 0.2: 2.9;

bar (x, exp (-x .* x));

hist االيعاز

histogramستخدم لرسم

مثال:

x = -2.9: 0.1: 2.9;

y = randn (10000, 1);

hist (y, x);

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

88

pieااليعاز

pie chartستخدم لرسم

مثال:

x = [1 3 0.5 2.5 2];

explode = [0 1 0 0 0];

pie (x, explode);

لرسم مخطط بان. مثال:

clear;

clc;

corr = [0.0012, 0.0208, 0.0633, 0.1391];

amount = [1, 2, 3, 4];

subplot (211);

plot (amount, corr, '--rs');

title ('Cipher-image VS Amount of Encrypted Data');

xlabel ('Amount of Encrypted Data');

ylabel ('Cipher-image Correlation');

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

89

في الماتالب (polynomials)التعامل مع الدوال الكثيرة الحدود

x^2+2*x+3الدالة الكثرة الحدود من الدرجة الثانة

x^3+2*x^2+3*x+1الدالة الكثرة الحدود من الدرجة الثالثة

على صورة مصفوفتن كالتال: جتم ادخالهم ف البرنام

>> p=[0 1 2 3]

p = 0 1 2 3

>> g=[1 2 3 1]

g = 1 2 3 1

اي وضع معامالت كثرة الحدود ف مصفوفة صفة. ولنتعامل مع دالتن جب وضعهم ف درجة

واحدة اي بوضع الحد االعلى الغر موجود ف الدالة االولى بقمة تساوي صفر, والجراء الجمع بن

دالتن كالتال:

>> q=p+g

q = 1 3 5 4

كالتال: convالضرب بن دالتن نستخدم دالة والجراء

>> c=conv(p,g)

c = 0 1 4 10 13 11 3

كالتال: residueوالجاد القسمة نستخدم الدالة

>> w=residue(p,g)

w =

-0.1336 - 0.1283i

-0.1336 + 0.1283i

1.2672

كما التال: polyvalنستخدم الدالة xد عند قمة معنة للمتغر المستقل وإلجاد قمة كثرة الحدو

>> x=3;

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

90

>> v=polyval(p,x)

v = 18

كما rootsوإلجاد جذور المعادلة عندما تكون قمة الدالة كثرة الحدود تساوي صفر نستخدم الدالة

التال:

>> r1=roots(p)

r1 =

-1.0000 + 1.4142i

-1.0000 - 1.4142i

>> r2=roots(g)

r2 =

-0.7849 + 1.3071i

-0.7849 - 1.3071i

-0.4302

polyوإلجاد كثرة الحدود عند معرفة الجذور نستخدم الدالة

>> pr1=poly(r1)

pr1 = 1.0000 2.0000 3.0000

>> gr2=poly(r2)

gr2 = 1.0000 2.0000 3.0000 1.0000

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

91

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

لحل المعادالت االنة االتة:

X+2y=5

2x+y=4

نكتب المعادلتن على شكل مصفوفات:

1 2 X 5

2 1 Y 4

اي ان:

AxZ=B

Z=A-1

Xb

كالتال:والبرنامج سكون

clc clear a=[1 2; 2 1]; b=[5;4]; z=inv(a)*b x=z(1) y=z(2)

والتنفذ كالتال:

z = 1.0000 2.0000

x = 1

y = 2.0000

: solveحل المعادالت االنية باستخدام الدالة

لحل المعادالت على النحو التال solveنستخدم الدالة

>> eg1='x+5=0'

eg1 =

x+5=0

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

92

>> solve(eg1)

ans = -5

كما مكن استخدامها بصورة مباشرة كالالت:

>> solve('y^2+3*y+2=0')

ans =

-1

-2

كالتال yبداللة xوكون الحل x,yكما مكن حل المعادلة ف

>> solve('x^2+9*y^4=0')

ans =

3*i*y^2

-3*i*y^2

كالتال: x,yومكن حل معادلتن ف متغرن

>> eq1='6*x+2*y=14';

>> eq2='3*x+7*y=31';

>> [x,y]=solve(eq1,eq2)

x = 1 y = 4

example:

>> eq1='(x-3)^2+(y-5)^2=4';

>> eq2='(x-5)^2+(y-3)^2=3';

>> [x,y]=solve(eq1,eq2)

x =

33/8+1/8*47^(1/2)

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

93

33/8-1/8*47^(1/2)

y =

31/8+1/8*47^(1/2)

31/8-1/8*47^(1/2)

التفاضل والتكامل:

diff(e,v,n)الصغة العامة لدالة التفاضل ه

عدد مرات التفاضل. nمتغر التفاضل و vه الصغة المراد تفاضلها, eحث ان

Examples:

>> syms x

>> diff(sin(x^2))

ans =

2*cos(x^2)*x

>> syms x

>> diff(sin(x^2))

ans =

2*cos(x^2)*x

>> syms y

>> diff(x*y^2,'y',2)

ans =

2*x

int(e,v,a,b)اما الصغة العامة للتكامل

رمزه a,b ومن الممكن ان كون bالى الحد aمن الحد vبالنسبة للمتغر eاي تكامل

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

94

Examples:

>> syms x

>> int(2*x)

ans =

x^2

>> int(1/x)

ans =

log(x)

>> syms x

>> int(-2*x/(1+x^2))

ans =

-log(1+x^2)

>> int(x^2,2,5)

ans =

39

>> syms x y

>> int(x*y^2,y,0,5)

ans =

125/3*x

>> syms x a b

>> int(x^2,a,b)

ans =

1/3*b^3-1/3*a^3

>> syms x

جامعة القادسة / كلة التربة / قسم الراضات MATLABالبرمجة بلغة

95

>> int(int(2*x))

ans =

1/3*x^3

>> syms x a b

>> int(int(2*x,a,b),a,b)

ans =

1/3*b^3-1/3*a^3-a^2*(b-a)