You are on page 1of 72

‫بسم هللا الرحمن الرحٌم‬

‫تطبٌقات الماتالب الهندسٌة‬

‫اعداد‬
‫محمد رفٌق علً‬
‫جامعة البلقاء التطبٌقٌة ‪ -‬كلٌة الهندسة التكنولوجٌة‬
‫‪2010‬‬
‫بسم هللا الرحمن الرحٌم‬
‫المقدمة‬
‫ٌعتبر برنامج الماتالب الٌد الٌمنى ألي مهندس مهما كان مجاله ‪ ,‬نظراً لما ٌحوٌه‬
‫من مرونه فً التعامل مع العملٌات الحسابٌة واألقترانٌة فهو ٌوفر الوقت والجهد‬
‫والدراٌة ‪ ,‬ونظرا ً لفقر المكاتب العربٌة وخصوصا ً على الشبكة العنكبوتٌة من كتب‬
‫تشرح هذا البرنامج العمالق بكل ما ٌحتوٌه فقد ارتأٌت أن أقوم بتبادل خبرتً ضمن‬
‫هذا البرنامج وأهدٌها لكل مسلم وعربً عسى ان تعم الفائدة واكسب منكم صالح‬
‫دعائكم ‪.‬‬
‫قبل البدء بالبرنامج ودراسته ٌجب أن تعلم أخً القارئ أن هذا الكتاب لٌس شامالً‬
‫وال ٌوجد أي كتاب فً العالم ٌشمل الماتالب كامالً وذلك لتعدد تطبٌقات الماتالب‬
‫لكن فً هذا الكتاب حاولت ان تكون جمٌع األمثله تطبٌقات للهندسة وخصوصا ً‬
‫الهندسة الكهربائٌة لكن هذا ال ٌعنً ان هذا الكتاب ال ٌٌصلح اال للمهندسٌن‬
‫الكهربائٌٌن فقط ‪ .‬فالكتاب كانت امثلته من الكهرباء لكن األساس فهو ٌشمل جمٌع‬
‫العلوم فممكن ان تحول التطبٌق لمٌكانٌكً او كٌماوي او فٌزٌاءي او رٌاضً وما‬
‫شابه ‪ .‬وحاولت قدر االمكان وضع اغلب األوامر المهمه التً تهم العلوم والهندسة‬
‫فً تطبٌقاتهم ‪.‬‬
‫ونصٌحة اخٌرة انصح بها من ٌقرأ الكتاب أن ٌتأنى بدراسته وٌحاول تطبٌق جمٌع‬
‫ما ورد به وان ٌقوم اٌضا بتطبٌقات أخرى ‪.‬‬

‫محمد رفٌق علً ‪.‬‬

‫‪2010- 11- 19‬‬


‫الفهرس‬
‫الفصل األول ‪ :‬نظرة عامة على الماتالب‬

‫‪ 1.1‬مكونات شاشة الماتالب‬

‫‪ 1.2‬ادخال التعلٌمات‬

‫‪ 1.3‬العملٌات الحسابٌة‬

‫الفصل الثاني ‪ :‬أوامر الماتالب وأساسياته‬

‫الفصل الثالث ‪ :‬المصفوفات‬

‫‪ 3.1‬التعرٌف بالمصفوفة‬

‫‪ 3.2‬التعبٌر عن المصفوفة بالماتالب‬

‫‪ 3.3‬عملٌات حسابٌة على المصفوفات‬

‫‪ 3.4‬أوامر تخص المصفوفات بالماتالب‬

‫‪ 3.5‬حذف عنصر او عناصر من المصفوفة‬

‫الفصل الرابع ‪M-file :‬‬

‫‪ 4.1‬التعرٌف بال ‪m-files‬‬

‫‪ 4.2‬أوامر ال ‪m-files‬‬

‫‪ 4.3‬أوامر المقارنة‬

‫الفصل الخامس ‪ :‬الجمل الدورانية ‪Loops‬‬

‫‪if statement 5.1‬‬

‫‪for statement 5.2‬‬

‫‪while statement 5.3‬‬

‫الفصل السادس ‪ :‬التكامل والتفاضل بالماتالب‬

‫‪ 6.1‬الرموز واألرقام بالماتالب‬

‫‪ 6.2‬التفاضل‬

‫‪ 6.3‬التكامل‬
‫ﺍﻟﻔﺻﻝ ﺍﻻﻭﻝ‬
‫ﻧﻅﺭﺓ ﻋﺎﻣﺔ ﻋﻠﻰ ﺍﻟﻣﺎﺗﻼﺏ‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫ﻓﻲ ﻫﺫﺍ ﺍﻟﻔﺻﻝ ﺳﻳﺗﻡ ﺍﻟﺗﻌﺭﻑ ﻋﻠﻰ ﺍﻟﺷﺎﺷﻪ ﺍﻟﺭﺋﻳﺳﻳﺔ ﻟﻠﻣﺎﺗﻼﺏ ﻭﻣﺣﺗﻭﻳﺎﺗﻬﺎ ﻭﺍﺳﺗﺧﺩﺍﻡ ﺑﺳﻳﻁ‬
‫ﻟﻠﻣﺎﺗﻼﺏ ﻛﺂﻟﺔ ﺣﺎﺳﺑﻪ ﺑﺳﻳﻁﺔ ﺑﺩﺍﻳﺔ‬

‫‪ 1.1‬ﻣﻛﻭﻧﺎﺕ ﺷﺎﺷﺔ ﺍﻟﻣﺎﺗﻼﺏ‬


‫‪Command Windows _1‬‬

‫ﺗﺳﺗﺧﺩﻡ ﻫﺫﻩ ﺍﻟﺷﺎﺷﻪ ﻟﻠﺗﻭﺍﺻﻝ ﻣﻊ ﺑﺭﻧﺎﻣﺞ ﺍﻟﻣﺎﺗﻼﺏ ﻣﻥ ﺧﻼﻝ ﻭﺿﻊ ﺍﻻﻭﺍﻣﺭ ﺑﻬﺎ ‪.‬‬

‫ﻭﺗﻘﺳﻡ ﺍﻷﻭﺍﻣﺭ ﻭﺍﻟﺗﻌﻠﻳﻣﺎﺕ ﻓﻲ ﺍﻟﻣﺎﺗﻼﺏ ﺍﻟﻰ ﺛﻼﺙ ﺃﻗﺳﺎﻡ ﻭﻫﻲ ‪Commands , statements ,‬‬
‫‪functions‬‬

‫ﻭﺳﻳﺗﻡ ﺗﻭﺿﺣﻳﻬﺎ ﻻﺣﻘﺎ ‪ ,‬ﻭﺳﻧﻛﺗﻔﻲ ﺍﻻﻥ ﺑﺗﺳﻣﻳﺔ ﺟﻣﻳﻊ ﺍﻻﻭﺍﻣﺭ ﺏ ‪Commands‬‬

‫‪current directory _2‬‬

‫ﺗﺳﺗﺧﺩﻡ ﻫﺫﻩ ﺍﻟﻧﺎﻓﺫﺓ ﻟﻠﻭﺻﻭﻝ ﻟﻠﻣﻠﻔﺎﺕ ‪ ,‬ﻛﺑﺳﺔ ﻣﺯﺩﻭﺟﻪ ﻋﻠﻰ ﺍﻟﻣﻠﻑ ﻳﺗﻡ ﻓﺗﺣﻪ ﺧﻼﻝ ﺍﻝ ‪Editor‬‬
‫ﺍﻟﺫﻱ ﺳﻳﺩﺭﺱ ﻻﺣﻘﺎ ً ﺍﻧﻅﺭ ﺍﻟﺷﻛﻝ‬

‫‪Command History_3‬‬

‫ﻳﺗﻡ ﻣﻥ ﺧﻼﻝ ﻫﺫﻩ ﺍﻟﻧﺎﻓﺫﺓ ﻣﻌﺭﻓﺔ ﺟﻣﻳﻊ ﺍﻷﻭﺍﻣﺭ ﺍﻟﺗﻲ ﻛﺗﺑﺕ ﻣﻊ ﺍﻣﻛﺎﻧﻳﺔ ﺍﻟﺭﺟﻭﻉ ﺍﻟﻳﻬﺎ ﺑﺎﻟﺿﻐﻁ‬
‫ﻋﻠﻳﻬﺎ ﺑﻛﺑﺳﺔ ﻣﺯﻭﺩﺟﺔ ﺍﻧﻅﺭ ﺍﻟﺷﻛﻝ‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫‪ 1.2‬ﺍﺩﺧﺎﻝ ﺍﻟﺗﻌﻠﻳﻣﺎﺕ ‪commands‬‬
‫ﺗﺗﻡ ﻋﻣﻠﻳﺔ ﺍﺩﺧﺎﻝ ﺍﻟﺗﻌﻠﻳﻣﺎﺕ ﻟﻠﻣﺎﺗﻼﺏ ﺑﺳﻬﻭﻟﺔ ﺗﺎﻣﻪ ﻭﺑﺩﺍﻳﺔ ﺳﻭﻑ ﻧﺩﺭﺱ ﺍﺩﺧﺎﻟﻬﺎ ﻋﻥ ﻁﺭﻳﻕ ﺍﻝ‬
‫‪ command windows‬ﻭﻻﺣﻘﺎ ً ﺳﻭﻑ ﻧﺗﻌﺭﻑ ﻋﻠﻰ ﻁﺭﻕ ﺍﺧﺭﻯ ﺣﺗﻰ ﺗﻛﻭﻥ ﻟﺩﻧﻳﺎ ﻧﻅﺭﻩ ﺷﺎﻣﻠﺔ‬

‫ﺣﺗﻰ ﻧﺗﻌﺭﻑ ﻋﻠﻰ ﻧﺎﻓﺫﻩ ﺍﻟﺗﻌﻠﻳﻣﺎﺕ ﺳﻭﻑ ﻧﺳﺗﺧﺩﻣﻬﺎ ﻣﺑﺩءﻳﺎ ً ﻛﺂﻟﺔ ﺣﺎﺳﺑﺔ ﻭﺑﻌﺩ ﺫﻟﻙ ﺳﻧﺗﻌﺭﻑ‬
‫ﺗﺩﺭﻳﺟﻳﺎ ً ﻋﻠﻰ ﺟﻣﻳﻊ ﺍﻭﺍﻣﺭ ﺍﻟﻣﺎﺗﻼﺏ‬

‫‌ﺃ( ﺍﻟﻁﺭﻳﻘﺔ ﺍﻟﻣﺑﺎﺷﺭﺓ ﻟﻠﻌﻣﻠﻳﺎﺕ ﺍﻟﺣﺳﺎﺑﻳﺔ‬

‫ﺍﻧﻅﺭ ﺍﻟﺷﻛﻝ ‪1.2‬‬

‫)ﺍﻟﺷﻛﻝ ‪(1.2‬‬

‫ﺏ( ﻁﺭﻳﻘﺔ ﺗﻌﺭﻳﻑ ﺍﻟﻣﺗﻐﻳﺭ‬


‫‌‬

‫ﻳﻌﻁﻳﻙ ﺍﻟﻣﺎﺗﻼﺏ ﺍﻣﻛﺎﻧﻳﺔ ﺗﻌﺭﻳﻑ ﻣﺗﻐﻳﺭ ﻣﺛﻝ ‪ X‬ﻭﺍﻋﻁﺎءﻩ ﻗﻳﻣﺔ ﻣﻌﻳﻧﻪ ﻳﺑﻘﻰ ﺣﺎﻣﻼً ﻟﻬﺎ ﻁﻭﻝ‬
‫ﺍﻟﺑﺭﻧﺎﻣﺞ ﻣﺎﻟﻡ ﻳﺗﻡ ﺗﻐﻳﻳﺭﻫﺎ ﺑﻌﺩ ﺫﻟﻙ‬

‫ﻳﺗﻡ ﺗﻌﺭﻳﻑ ﺍﻟﻣﺗﻐﻳﺭ ﺑﻁﺭﻳﻘﺔ ﻣﺑﺎﺷﺭﺓ‬

‫ﻣﺛﺎﻝ‪:‬‬

‫‪x=2‬‬

‫‪y=9‬‬

‫‪y+x‬‬

‫‪ans=11‬‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫ﻣﻼﺣﻅﺎﺕ ﻋﻠﻰ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ‬

‫‪Small don’t equal capital‬‬

‫ﻳﺟﺏ ﺍﻥ ﻳﺑﺩﺃ ﺍﻟﻣﺗﻐﻳﺭ ﺑﺣﺭﻑ‬

‫ﻳﻣﻛﻥ ﺍﻥ ﻳﻛﻭﻥ ﻁﻭﻝ ﺍﻟﻣﺗﻐﻳﺭ ﻟﺣﺩ ‪ 32‬ﺭﻣﺯ‬

‫ﻻ ﻳﺟﻭﺯ ﺍﻥ ﻳﻛﻭﻥ ﺍﻟﻣﺗﻐﻳﺭ ﺍﺳﻣﺎ ً ﻣﺣﺟﻭﺯﺍ ً ﻣﺛﻝ ‪for ,while , find ….etc‬‬

‫ﻫﻧﺎﻙ ﻣﺗﻐﻳﺭﺍﺕ ﻟﻬﺎ ﻗﻳﻣﻪ ﻣﺳﺑﻘﻪ ﺍﻱ ﻳﻣﻛﻥ ﺗﻐﻳﻳﺭﻫﺎ ﻟﻛﻥ ﺑﺷﻛﻝ ﻁﺑﻳﻌﻲ ﻫﻲ ﻣﻌﺭﻓﻪ ﺑﻬﺫﺍ ﺍﻟﺷﻛﻝ‬
‫ﺍﻧﻅﺭ ﺍﻟﺟﺩﻭﻝ ‪1.1‬‬

‫‪ans‬‬ ‫ﻣﺗﻐﻳﺭ ﻣﺗﻌﺭﻑ ﺩﺍﺋﻣﺎ ﻭﻗﻳﻣﺗﻪ ﻗﻳﻣﺔ ﺍﺧﺭ ﺟﻭﺍﺏ‬


‫ﻟﻡ ﻳﺗﻡ ﺗﻌﺭﻳﻔﻪ‬
‫‪pi‬‬ ‫ﻫﻭ ‪π‬‬

‫‪i,j‬‬ ‫ﻫﻭ ﺟﺫﺭ ﺍﻟﻭﺍﺣﺩ ﻭﻳﻌﻧﻲ ﺍﻝ ‪complex‬‬


‫ﻣﺛﺎﻝ ‪3+4j=3+4i‬‬
‫‪inf‬‬ ‫ﻭﻳﻌﻧﻲ ﺍﻟﻣﺎﻻﻧﻬﺎﻳﺔ‬
‫ﻣﺛﺎﻝ ‪1/0‬‬
‫‪NaN Indicates an undefined numerical‬‬
‫‪result‬‬
‫ﻋﻨﺪﻣﺎ ﻳﻜﻮﻥ ﺟﻮﺍﺏ ﻋﻤﻠﻴﻪ ﺣﺴﺎﺑﻴﺔ ﻣﻌﻴﻨﻪ‬
‫‪NaN‬‬
‫ﺗﻌﺮﻑ ﺍﻧﻪ ﺍﻟﺠﻮﺍﺏ ﻏﻴﺮ ﻣﻌﺮﻑ ‪.‬‬
‫ﻣﺛﺎﻝ ‪0/0‬‬
‫ﺍﻟﺟﺩﻭﻝ ‪1.1‬‬

‫ﻳﻣﻛﻥ ﺗﻌﺭﻳﻑ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ ﺑﺳﻁﺭ ﻭﺫﻟﻙ ﺑﺎﻟﻔﺻﻝ ﺑﻳﻧﻬﻡ ﺑﻔﺎﺻﻠﺔ‬

‫ﻣﺛﺎﻝ ‪:‬‬

‫‪x=2 , y=x+2, z=x+y‬‬

‫ﺑﻌﺩ ﻛﺗﺎﺑﺔ ﻫﺫﺍ ﺍﻻﻣﺭ ﻋﻠﻰ ﺍﻟﻣﺎﺗﻼﺏ ﺳﻭﻑ ﻳﻌﻁﻲ ﻫﺫﻩ ﺍﻟﻧﺗﻳﺟﻪ‬

‫‪X =2‬‬

‫‪Y= 4‬‬

‫‪Z=6‬‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫‪ 1.3‬ﺍﻟﻌﻣﻠﻳﺎﺕ ﺍﻟﺣﺳﺎﺑﻳﺔ‬
‫ﺃﻭﻟﻭﻳﺎﺕ ﺍﻟﻌﻣﻠﻳﺎﺕ ﺍﻟﺣﺳﺎﺑﻳﺔ‬

‫ﺍﻧﻅﺭ ﺍﻟﺟﺩﻭﻝ ﺍﻟﺫﻱ ﻳﺑﻳﻥ ﺗﻌﺑﻳﺭ ﺍﻟﻌﻣﻠﻳﺔ ﺍﻟﺣﺳﺎﺑﻳﺔ ﺑﻭﺍﺳﻁﺔ ﺍﻟﻣﺎﺗﻼﺏ ﻭﺃﻭﻟﻭﻳﺎﺗﻬﺎ‬

‫‪Symbol‬‬ ‫‪Operation‬‬ ‫‪Matlab form‬‬


‫^‬ ‫ﻭﻳﻌﻧﻲ ﺍﻟﻘﻭﻩ ﺍﻭ ﺍﻻﺱ‬ ‫‪A^B‬‬
‫*‬ ‫ﺍﻟﺿﺭﺏ‬ ‫‪A*B‬‬
‫‪/‬‬ ‫ﺍﻟﻘﺳﻣﻪ‬ ‫‪A/B‬‬
‫\‬ ‫ﺍﻟﻘﺳﻣﺔ ﺍﻟﻌﻛﺳﻳﺔ‬ ‫‪A\B=B/A‬‬
‫‪+‬‬ ‫ﺍﻟﺟﻣﻊ‬ ‫‪A+B‬‬
‫‪-‬‬ ‫ﺍﻟﻁﺭﺡ‬ ‫‪A-B‬‬

‫‪Example 1 :‬‬

‫‪Write using matlab the following‬‬

‫‪10 18‬‬
‫‪6‬‬‫‪+‬‬ ‫‪+ 5(9) 2‬‬
‫)‪A - 13 5(7‬‬

‫‪B-‬‬
‫‪6(351/ 4 ) + 140.35‬‬

‫‪Solution:‬‬

‫‪A‬‬

‫‪6*(10/13)+18/(5*7)+5*9^2‬‬

‫‪Ans =410.1297‬‬

‫‪B‬‬

‫‪6*35^(1/4)+14^.35‬‬

‫‪Ans =17.1123‬‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫*** ﻭﺍﻵﻥ ﻭﺑﻌﺩ ﺃﻥ ﺗﻡ ﺍﻟﺗﻌﺭﻑ ﻋﻠﻰ ﺍﻟﻣﺎﺗﻼﺏ ﻭﺗﻌﺭﻑ ﻋﻠﻰ ﺑﻌﺽ ﻣﻥ ﻓﻳﺽ ﺃﺳﺗﺧﺩﺍﻣﺎﺗﻪ‬
‫ﻳﻣﻛﻧﻙ ﺗﺟﺭﻳﺏ ﺍﻟﻛﺗﺎﺑﺔ ﻋﻠﻳﻪ ﻭﺍﻟﺗﻌﺭﻑ ﻋﻠﻳﻪ ‪ ,‬ﻭﻳﻭﺟﺩ ﺑﻌﺽ ﺍﻷﻣﺛﻠﻪ ﺣﺎﻭﻝ ﺣﻠﻬﺎ ﻋﻥ ﻁﺭﻕ‬
‫ﺍﻟﻣﺎﺗﻼﺏ‬

‫ﻣﻼﺣﻅﺔ ‪ :‬ﺍﻟﻣﻛﺗﻭﺏ ﺑﺎﻟﻠﻭﻥ ﺍﻻﺧﺿﺭ ﻳﻌﻧﻲ ﺍﻧﻪ ﺑﺭﻧﺎﻣﺞ ﺟﺎﻫﺯ ﻟﻠﺗﻁﺑﻳﻕ ﻋﻠﻰ ﺍﻟﻣﺎﺗﻼﺏ‬

‫‪Problems‬‬
‫‪1.1 Find the value of z if you known that x=2,y=17‬‬

‫‪3π‬‬
‫‪Z =x3 + y 2 +‬‬
‫‪x2+y2‬‬
‫‪Ans:‬‬

‫ﺑﺩﺍﻳﺔ ﻧﻌﺭﻑ ﺍﻟﻘﻳﻡ ﺍﻟﻣﺗﻐﻳﺭﻩ ﻭﺛﻡ ﻧﻛﺗﺏ ﺍﻟﻣﻌﺎﺩﻟﺔ ﻋﻠﻰ ﺍﻟﻣﺎﺗﻼﺏ‬

‫‪x=2‬‬

‫‪y=3‬‬

‫))‪z= x^3+y^2+(3*pi/(x^2+y^2‬‬

‫‪z=17.2‬‬

‫‪1.2 Find the power P if you known current I=10A and resister R=10Ω‬‬
‫‪P=IV , V=IR‬‬

‫‪Ans:‬‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫ﺗﺘﻜﻠﻢ ﻋﻠﻰ اﻟﺮﺟﻮﻟﺔ ھﮫﻪ و ﻣﻦ أﻳﻦ اﻟﺒﺎءه ﻟﻠﺰواج‬
‫ﻟﻮﻛﺎن ﻋﻨﺪي دراھﻢ راﻧﻲ ﺗﺰوﺟﺔ و رﻧﻲ ﺑﻮﻻدي‬

‫ﺍﻭﻻ ﻧﻌﺭﻑ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ ﺛﻡ ﻧﻛﺗﺏ ﺍﻟﻣﻌﺎﺩﻻﺕ‬

‫; ‪I = 10‬‬

‫; ‪R= 10‬‬

‫; ‪V=I*R‬‬

‫‪P=I*V‬‬

‫‪P = 1000‬‬

‫‪1.3‬‬

‫ﺣﺟﻡ ﺍﺳﻁﻭﺍﻧﺔ ﺩﺍﺋﺭﻳﺔ ﺑﻁﻭﻝ ‪h‬ﻭﻧﺻﻑ ﻗﻁﺭ ‪ r‬ﻳﻌﻁﻰ ﺑﺎﻟﻌﻼﻗﺔ ﺍﻟﺗﺎﻟﻳﺔ‬

‫‪v = π r 2h‬‬
‫ﻋﻧﺩﻧﺎ ﺍﺳﻁﻭﺍﻧﺔ ﺩﺍﺋﺭﻳﺔ ﻁﻭﻟﻬﺎ ‪ 15‬ﻣﺗﺭ ﻭﻧﺻﻑ ﻗﻁﺭﻫﺎ ‪ 8‬ﻣﺗﺭ ﻧﺭﻳﺩ ﺍﻧﺷﺎء ﺍﺳﻁﻭﺍﻧﻪ ﺍﺧﺭﻯ‬
‫ﺑﺣﺟﻡ ﺍﻛﺑﺭ ﻣﻥ ﺍﻻﻭﻟﻰ ﺏ‪ % 20‬ﻭﻟﻛﻥ ﻟﻬﺎ ﻧﻔﺱ ﻁﻭﻝ ﺍﻻﻭﻟﻰ ﻛﻡ ﻳﺟﺏ ﺍﻥ ﻳﻛﻭﻥ ﻧﺻﻑ ﺍﻟﻘﻁﺭ‬
‫؟؟؟‬

‫‪Ans:‬‬

‫ﺍﻭﻻ ﻭﻛﺎﻟﻌﺎﺩﺓ ﻧﻌﺭﻑ ﺍﻟﻣﺗﻐﻳﺭﺍﺕ ﻭﺛﻡ ﻧﻛﺗﺏ ﺍﻟﻣﻌﺎﺩﻻﺕ‬

‫;‪r=8‬‬
‫; ‪h = 15‬‬
‫;‪v=pi*r^2*h‬‬
‫;‪v=v+0.2*v‬‬
‫‪r=(v/pi/h)^.5‬‬

‫‪r=78.8‬‬

‫ﻣﻼﺣﻅﻪ‪ :‬ﺍﺳﺗﺧﺩﻣﻧﺎ ﺍﻟﻔﺎﺻﻠﻪ ﺍﻟﻣﻧﻘﻭﻁﺔ ﺑﺩﻝ ﺍﻟﻔﺎﺻﻠﺔ ﺍﻟﻌﺎﺩﻳﻪ ﺣﺗﻰ ﻳﺧﻔﻲ ﺍﻟﻧﺗﻳﺟﺔ‬

‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬


‫ﻣﺣﻣﺩ ﺭﻓﻳﻕ ﻋﻠﻲ‬
‫الفصل الثانً‬
‫أوامر الماتالب وأساسٌاته‬

‫محمد رفٌق علً‬


‫نبدأ باألوامر األكثر أهمٌه والتً ٌعتبر معرفتها شًء أساسً فً الماتالب وقمنا بتسمٌتها أوامر‬
‫اختصاراً وتسهٌال مع العلم ان بعضها لٌس بأمر بل اقتران او جملة‬

‫‪ -1‬الفاصلة المنقوطه نهاية الجملة‬

‫وظٌفتها عدم اظهار النتٌجة ‪ ,‬انظر المثال للتفرٌق‬

‫‪ -2‬القوة ‪e‬‬

‫الرمز ‪ٌ e‬عنً القوه العاشرة‬

‫مثال ‪3*104  3e 4‬‬

‫‪log , ln , exponential -3‬‬

‫انظر المثال‬

‫محمد رفٌق علً‬


‫‪ -4‬العمليات الجيبيه‬

‫‪sin x‬‬ ‫‪sin(x) ‬‬

‫‪sin-1x‬‬ ‫‪asin(x) ‬‬

‫وٌمكن اٌضا كتابة ‪ cos tan cosh tanh‬بنفس الطرٌقة‬

‫مالحظه‪ٌ :‬قوم الماتالب بالتعامل مع الزواٌا بالتقدٌر الدائري ‪radian‬‬

‫‪ -5‬االمر ‪sqrt‬‬

‫‪sqrt(x)= x‬‬

‫مثال‬

‫محمد رفٌق علً‬


‫‪comlex numbers -6‬‬

‫هذا الجزء ٌعتنً بال ‪ complex‬فاذا لم ٌكن لدٌك ادنى فكرة عنه فتخطى هذا الجزء‬

‫المعروف انه الرقم المعقد هو جذر الواحد وٌمكن التعبٌر عنه بالماتالب بكتابة الرقم بهذه‬
‫الصوره‬

‫‪X+Yi or X+Yj‬‬

‫مثال على ال ‪complex‬‬

‫وٌمكن تحوٌل صورة الكومبلكس لصورة القٌمة وزاوٌتها‬

‫لمعرفة القٌمة نستخدم االمر‬

‫)‪abs(x‬‬

‫ولمعرفة الزاوٌة نستخدم االمر‬

‫محمد رفٌق علً‬


‫ﺗﺘﻜﻠﻢ ﻋﻠﻰ اﻟﺮﺟﻮﻟﺔ ھﮫﻪ و ﻣﻦ أﻳﻦ اﻟﺒﺎءه ﻟﻠﺰواج‬
‫ﻟﻮﻛﺎن ﻋﻨﺪي دراھﻢ راﻧﻲ ﺗﺰوﺟﺔ و رﻧﻲ ﺑﻮﻻدي‬

‫)‪angle(x‬‬

‫انظر المثال‬

‫وٌمكن اٌضا استخدام االمر‬

‫)‪ real(var‬لمعرفة الرقم الحقٌقً فً ال ‪complex‬‬

‫)‪ imag(var‬لمعرفة الرقم التخٌلً‬

‫‪Example 1 :‬‬

‫‪Given x =-5 + 9i and y =6-2i, use MATLAB to show that‬‬


‫‪x + y = 1+ 7 i, xy = -12 + 64i , and x / y = -1.2 + 1.1i.‬‬

‫محمد رفٌق علً‬


‫‪clear and clc -7‬‬

‫‪clear‬‬

‫كما عرفنا سابقا ً انه ٌتم بالماتالب تعرٌف المتغٌر مثل ‪ X‬وٌبقى حامالً للقٌمته حتى ٌتم تغٌٌرها‬

‫واالمر ‪ clear‬وظٌفته حذف محتوى المتغٌره وجعله غٌر معرف‬

‫وٌمكن ان ٌكون االمر ‪ clear‬خاص بمتغٌر او حذف جمٌع المتغٌرات‬

‫انظر المثال‬

‫‪clc‬‬

‫وظٌفة االمر ‪ clc‬هو حذف شاشة ال ‪CW‬‬

‫حاول تجرٌبه‬

‫‪ -8‬االمر ‪exist‬‬

‫ٌهتم هذا االمر بالسؤال اذا كان المتغٌر موجود ام ال وٌعطً اجابه برقم ‪ 0‬او ‪ 1‬وصفر ٌعنً‬
‫غٌر موجود وواحد ٌعنً موجود وطرٌقة كتابته)'‪exist('var‬‬

‫‪ -9‬االمر ‪who , whos‬‬

‫محمد رفٌق علً‬


‫هذان االمران ٌعمالن على السؤال عما ٌوجد فً الذاكره من متغٌرات معرفه‬

‫االمر ‪ٌ who‬عطً جوابة اسماء المتغٌرات الموجوده‬

‫االمر ‪ٌ whos‬عطً جدول ٌبٌن المتغٌرات وحجمها وعما اذا كان ٌحوي ‪complex‬‬

‫‪ -10‬االمر ‪...‬‬

‫ٌتم وضع اخر الجمله ثالث نقاط داللة على انه سٌتم تكمٌل الجمله فً السطر المقبل‬

‫‪ -11‬االمر ‪quit‬‬

‫ٌقوم هذا االمر بالخروج من الماتالب وانهاء البرنامج‬

‫‪ -12‬اوامر التنسيق ‪format‬‬

‫تهتم هذه االوامر بمخرجات االرقام وسوف نأخذ الثالث االهم وهم‬

‫‪format short‬‬

‫‪format long‬‬

‫‪format +‬‬

‫انظر المثال للتوضٌح‬

‫محمد رفٌق علً‬


‫‪ceil , floor and round-13‬‬

‫هذان االمران وظٌفتهما التقرٌب القرب عدد صحٌح‬

‫االمر ‪ٌ ceil‬عطً اكبر عدد صحٌح‬

‫االمر ‪ٌ floor‬عمل على حذف الكسور‬

‫االمر ‪ round‬للتقرٌب القرب عدد صحٌح‬

‫انظر المثال‬

‫‪ -14‬التخزين والتحميل للمتغيرات‬

‫ٌعطٌنا الماتالب امكانٌة تخزٌن متغٌر لٌبقى حامالً للقٌمة بشكل دائم وذلك كالتالً‬

‫اوال نعرف المتغٌر او المتغٌرات التً نرٌد تخزٌنه ثم االمر التالً ‪save filename var1‬‬
‫‪var2 …. etc‬‬

‫ولتحمٌل هذه المتغٌرات نقوم بالتالً ‪load filename‬‬

‫مثال‪ :‬مهندس فً مجال عمله ٌستخدم قٌمة ‪  8.85*10‬كثٌراً فً حل المسائل ‪ .‬اعطه الحل‬
‫‪12‬‬

‫كٌف ٌعرفها ؟‬

‫محمد رفٌق علً‬


‫الحل‪:‬‬

‫وأخيراً سيتم التعرف على االمر ‪tab‬‬

‫وبكل بساطة لو عرفنا متغٌر فرضا مثل‬

‫‪mechatronics = 1990/11/28‬‬

‫نكتفً بكتابة اول ثالث او اربع حروف ثم نضغط الرمز ‪ tab‬من الكٌبورد ثم تظهر كلمة‬
‫مٌكاترونٌكس اذا لم ٌكن متغٌر مثٌل له ‪ ,‬واذا كان هناك متغٌر مثٌل سوف ٌتم عرض جمٌع‬
‫المتغٌرات الشبٌه واختٌار اي واحد ثم ضغط ‪ enter‬انظر المثال‬

‫محمد رفٌق علً‬


‫وهكذا وبعد ان تم توضٌح اهم االوامر فً الماتالب التً ٌجب ان ٌكون اي مستخدم للماتالب‬
‫ومهما كانه هدفه ملما ً بهذه األوامر سوف نستطٌع التعامل مع تطبٌقات الماتالب فً الفصول‬
‫القادمة وبكل سهولة ومرونه‪ ,‬ومهم جدا ً ان تكون قد قمت بتجرٌب جمٌع هذه األوامر حتى ال‬
‫تنساها‬

‫وهنا بعض األوامر قم بتجرٌبها بنفسك ‪:‬‬

‫‪calendar‬‬

‫‪ clock‬انظر الصوره‬

‫‪beep‬‬

‫محمد رفٌق علً‬


‫محمد رفٌق علً‬
‫الفصل الثالث ‪ :‬المصفوفات‬
‫‪Arrays‬‬

‫محمد رفٌق علً‬


‫‪ 3.1‬التعريف بالمصفوفه‬

‫هو التعبٌر عن قٌمة او معلومات بواسطة مجموعة اعمده وصفوف‬

‫مثال على مصفوفه‬

‫‪8 3‬‬ ‫‪2‬‬


‫‪6 4‬‬ ‫‪2‬‬
‫‪6 9 4 j‬‬
‫وٌتوضح ان هذه المصفوفة تتكون من ثالث صفوف وثالث اعمده‬

‫اهم عملٌات المصفوفات‬

‫الجمع والطرح ‪ ,‬القسمة والضرب‬

‫لجمع مصفوفتٌن ٌجب ان ٌتساوو بعدد الصفوف واالعمده ‪ ,‬اما لضرب مصفوفتٌن ٌجب ان‬
‫ٌسواي عدد اعمدة المصفوفة االولى بعدد صفوف المصفوفة الثانٌه‬

‫مثال‪:‬‬

‫‪8 3‬‬ ‫‪2 1‬‬


‫‪6 4‬‬ ‫‪2 *2 ‬‬
‫‪6 9 4 j 3‬‬
‫هذه العملٌه تعتبر عملٌة بسٌطه على المصفوفات ولكننا تتأذ وقت كبٌر الٌجادها عملٌا ًا‬

‫فالماتالب ٌوفر الوقت والجند الكبٌر لمثل هذه العملٌات ‪..‬‬

‫محمد رفٌق علً‬


‫‪ 3.2‬التعبير عن المصفوفة بالماتالب‬

‫ٌتم التعبٌر عن المصفوفة بالماتالب بطرق عدة‪ ,‬وسٌتم توضٌحنا بتذن هللا‬

‫اساسٌا ًا ٌجب ان تعلم اي مصفوفه ٌتم تعرٌفنا فً الماتالب ٌجب ان تكون ضمن اقواس مربعه‬
‫][ وٌتم الفصل بٌن االرقام فً الصف الواحد ب ‪ space‬اما للفصل بٌن االعمده ٌتم اما ب‬
‫‪ enter‬او فاصلة منقوطة ; انظر االمثله‬

‫الحظ ان كل مصفوفه تبدأ بقوس مربع وتنتنً به ‪ ..‬والحظ اٌضا ان الفصل ٌتم بطرٌقتٌن وانت‬
‫مأٌر‬

‫محمد رفٌق علً‬


‫‪ 3.3‬عمليات حسابية على المصفوفات‬

‫أ ‪ -‬جمع المصفوفات‬

‫من شرط جمع المصفوفات ان تتساوى المصفوفتان بعدد الصفوف واالعمدة ‪.‬‬

‫مثال‬

‫مثال‪ :‬دائرة كنربائٌة فٌنا أمس مقاومات على التوالً ‪ 230,543,623,75,90‬تم زٌادة جمٌع‬
‫المقاومات بمقادر ‪ 170‬اوجد المقدار الجدٌد للمقاومات باستأدام الماتالب ثم اوجد المقاومة‬
‫المكافئه‬

‫الحل‪ :‬تعرٌف مصفوفه اولى بقٌمة المقاومات ثم جمع المصفوفة مع ‪170‬‬

‫محمد رفٌق علً‬


‫اما الٌجاد مجموع المقاومات نستأدم االمر )‪ sum(var‬حٌث ٌقوم هذا االمر بجمع جمٌع‬
‫محتوٌات المصفوفه ذات الصف الواحد‬

‫الحظ انه قمنا بعمل )‪ sum(ans‬ولٌس )‪ sum(x‬لماذا ؟‬

‫الجواب‪ :‬النه المتغٌر ‪ x‬لم ٌتم تغٌٌر قٌمته بعد عملٌة الجمع ولكن تم تغٌٌر قٌمة ال‪ans‬التً‬
‫دائما تحمل قٌمة اأر جواب كما وضحنا سابقا ًا‬

‫محمد رفٌق علً‬


‫مالحظه‪ :‬لو قمنا بعمل ‪ sum‬لمصفوفه فٌنا اعمده وصفوف سٌتم جمع االعمده وتشكٌل‬
‫مصفوفه ذات صف واحد‬

‫انظر المثال ‪:‬‬

‫ب‪ -‬ضرب المصفوفات وقسمتنا‬

‫ٌتم ضرب المصفوفات او قسمتنا بطرٌقتٌن‬

‫االولى ‪ :‬طرٌقة ضرب المصفوفات وشرطنا ان ٌكون عدد اعمدة االول = عدد صفوف الثانً‬

‫مثال‪:‬‬

‫محمد رفٌق علً‬


‫هنا حدث أطت ‪ ,‬ألنه عدد اعمدة األول ال ٌساوي عدد صفوف الثانً‬

‫مثال ‪:‬‬

‫محمد رفٌق علً‬


‫الثانية طرٌقة عنصر لعنصر‬

‫ٌمكن باستأدام الماتالب استأدام ضرب عنصر لعنصر بالمصفوفه او قسمة عنصر لعنصر‬
‫اٌضا وذلك بوضع نقطه قبل اشارة الضرب او القسمة‬

‫مثال ‪ :‬الحظ وجود النقطه قبل العملٌه الحسابٌة التً تعنً عنصر لعنصر‬

‫محمد رفٌق علً‬


‫‪ 3.4‬أوامر تخص المصفوفات في الماتالب‬

‫أ‪length -‬‬

‫ٌقوم باٌجاد طول المصفوفه لمصفوفة الصف الواحد او عدد االعمده لمصفوفة الصفوف‬
‫واالعمده‬

‫ب‪size -‬‬

‫اٌجاد عدد الصفوف واالعمده بالمصفوفة‬

‫اما اذا اردنا عدد الصفوف لوحدها نستأدم االمر‬

‫)‪size(x,1‬‬

‫واذا عدد االعمدة لوحدها‬

‫)‪size(x,2‬‬

‫محمد رفٌق علً‬


‫جـ‪ -‬نقطتٌن فوق بعض‬

‫منمة جدا فً الماتالب حٌث وظٌفتنا انشاء مصفوفة انظر المثال‬

‫ٌتم انشاء مصفوفة بفرق ‪ 1‬بٌن كل عنصر وعنصر وٌمكن تغٌٌر الفارق بوضع نقطتٌن فوق‬
‫بعض ٌتتً بعدها الفرق مثال‬

‫وٌمكن اٌضا ان ٌكون الفرق سالب‬

‫مثال‪ :‬فً تجربة فً مأتبر الدوائر الكنربائٌة ٌتم زٌادة الفولتٌة تدرٌجٌا ًا من‪ 2‬الى ‪ 10‬بزٌادة ‪2‬‬
‫فولت ‪ ..‬والمقاومة تساوي ‪ 260‬اوم ‪ .‬اوجد مقدار القدرة المستنلكة فً المقاومة فً كل مرحلة‬
‫من مراحل الزٌادة‬

‫الحل‪ :‬سٌتم وضع البرنامج وقم بتفسٌره‬

‫محمد رفٌق علً‬


‫د‪roots -‬‬

‫اٌجاد حل معادلة للتوضٌح تتمل المثال‬

‫مثال‪ :‬اوجد حل المعادلة التالٌة‬

‫‪x 3  13x 2  18x  12‬‬


‫تالحظ هنا ان مثل هذه المعادالت ٌصعب جداًا حلنا ٌدوٌا ًا او حتى باستأدام آله حاسبة اذا كانت‬
‫برتبة احلى اما فً الماتالب فٌتم حلنا بسنولة تاملة‬

‫اوالًا نقوم بكتابة مصفوفة بمرافقات المتغٌرات‬

‫انظر الحل لتستٌطع الفنم اكثر‬

‫الحظ بساطة الحل‬

‫محمد رفٌق علً‬


‫هـ ‪inv -‬‬

‫العكسً ‪ ,‬ومن هذا األمر نستٌطع اٌجاد مقلوب المصفوفه‬

‫والمقلوب ال ٌمكن ان ٌتم اال لمصفوفة مربعه (عدد الصفوف= عدد االعمده)‬

‫مثال‪ :‬اوجد قٌم ‪x,y,z‬‬

‫‪4x+12y+23z=12‬‬

‫‪34x+4y-3z=-90‬‬

‫‪x-32y-9z=0‬‬

‫هذه المعادالت ٌمكن ٌعبر عننا بواسطة مصفوفه كالتالً‬

‫‪4 12 23 x 12‬‬
‫‪34 4 3* y  90‬‬
‫‪1 32 9 z‬‬ ‫‪0‬‬

‫محمد رفٌق علً‬


‫اذن قٌمة ‪ x,y,z‬تساوي المصفوفه التً بعد اشارة الٌساوي تقسٌم المصفوفه المضروبة‬
‫بالمتغٌرات وٌمكن ذلك بالماتالب ‪ ,‬انظر المثال‬

‫و‪ -‬اوامر التبدٌل فً المصفوفات‬

‫انظر المثال‬

‫محمد رفٌق علً‬


‫ي – مجموعة اوامر قم بتجرٌبنا بنفسك‬

‫‪linspace‬‬

‫هذا االمر ٌتٌح لك انشاء مصفوفة بصف واحد تبدأ برقم وتنتنً برقم وعدد عناصرها‬

‫)‪linspace(initial, final, steps‬‬

‫)‪ : max(a‬اٌجاد اكبر عنصر فً المصفوفة اذا كانت مكونه من صف واحد او عمود واحد اما‬
‫اذا كانت مكونه من صفوف واعمده فٌجد العنصر االكبر فً كل عمود ‪.‬‬

‫مثال اوجد اكبر رقم فً هذه المصفوفة‬

‫‪3 4 5‬‬
‫‪23 3 4‬‬
‫‪12 34 5‬‬
‫الحل‪:‬‬

‫محمد رفٌق علً‬


‫)‪ : min(a‬نفس اآللٌة لكن مع اصغر‬

‫)‪ٌ : prod(a‬ستأدم لضرب المصفوفة ببعضنا اذا كانت صف او عمود واحد ‪ ,‬وضرب العمود‬
‫ببعضه اذا كانت صفوف واعمده‬

‫)‪ones(n,m‬‬

‫)‪eye(n‬‬

‫)‪zeros(n,m‬‬

‫)‪ : diag(A‬وتستأدم الٌجاد قطر المصفوفة‬

‫)‪magic(n‬‬

‫)]‪randint(n,m,[i,f‬‬

‫حٌث ‪ n‬عدد الصفوف و ‪ m‬عدد األعمدة و ‪ I‬رقم بدائً و ‪ f‬رقم ننائً ‪ٌ ..‬تٌح هذا االمر‬
‫انشاء مصفوفة بعدد صفوف واعمده ومكوناتنا بٌن الرقم البدائً والننائً بترتٌب عشوائً‬

‫‪ 3.5‬حذف عنصر او عناصر من المصفوفة‬

‫لحذف عنصر من المصفوفة نقوم بتحدٌد العنصر ثم نضع مربعات فارغه انظر المثال‬

‫محمد رفٌق علً‬


ً‫هكذا قد نكون اننٌنا شرح كل ما ٌأص المصفوفات وسٌتم التعرض لبحر من تطبٌقاتنا ف‬
. ‫الفصل القادم الذي سٌكون االكثر تشوٌقا ًا وتطبٌقا ًا‬

‫حاول حل المسائل‬

problems
3.1 Use MATLAB to determine how many elements in the array
[cos(0) : 0 . 02 : log10(100)] . Use MATLAB to determine the
25th element. (Answer: 51 elements and 1.48.)

3.2 Use MATLAB to find the roots of the polynomial 290 - 11 x + 6x2
+x3 .
(Answer: x = - 10,2 ± 5i.)

3.3 The voltage across a discharging capacitor is


v(t) 10(1e0.2t )
Generate a table of voltage, v(t) , versus time, t, for t = 0 to 50
seconds with increment of 5 s.

3.4

ً‫محمد رفٌق عل‬


‫محمد رفٌق علً‬
‫الفصل الرابع‬
‫‪M-files‬‬

‫محمد رفٌق علً‬


‫‪ 4.1‬التعريف ب ‪M-file‬‬

‫فً الفصول الماضٌة قمنا بؤستخدام الماتالب كآلة حاسبة متطورة نوعا ً ما ‪ ,‬لكن لم تتعدى‬
‫تطبٌقاتنا عن الحسابات وادخال المعلومات بشكل ٌدوي او تعرٌفها مسبقا ً لكن بدون عملٌات‬
‫منطقٌة لكن فً هذا الفصل الذي ٌعتبر األكثر أهمٌة ومتعة فً ذات الوقت سوف نتعرف على‬
‫الئحة ال ‪ M-file‬فً الماتالب التً ٌشبهها البعض الى ال ‪ C++‬ولكننً اختلف معهم كثٌر الن‬
‫تطبٌقاتها اوسع بكثٌر واشمل وأروع ‪ .‬وما ٌمٌز ال ‪ M-file‬عن ال ‪command windows‬‬
‫انه ٌتم كتابة جمٌع األوامر والتعلٌمات بداٌة وبعدها ٌتم تطبٌق ما تم كتابته اما فً ال ‪ CW‬كنا‬
‫نكتب أمر تلو األمر وٌتم تطبٌق األمر تلو األمر مما ٌقلل من فرصة تصحٌح األخطاء وأن‬
‫حدث خطؤ علٌك األعادة ‪.‬‬

‫لفتح قائمة ال ‪ M-file‬قم باتباع التالً‬

‫‪File >> New >> M-file‬‬

‫انظر الشكل‬

‫فلنقم بتجرٌب كتابة أوامر أو الحساب علٌه‬

‫انظر الشكل‬

‫محمد رفٌق علً‬


‫بعد تنفٌذ األمر سٌطلب التخزٌن حتى ٌقوم بتنفٌذه على ال ‪ , cw‬قم بالتخزٌن واألكمال وٌتم‬
‫دائما تخزٌن ملفات الماتالب بصٌغة ‪.m‬‬

‫محمد رفٌق علً‬


‫مالحظة ‪ٌ :‬نصح دائما ً فً بداٌة تنفٌذ اي برنامج على ال‪ M-file‬كتابة األمرٌن ‪ clear‬ثم ‪clc‬‬
‫وذلك لضمان عدم حصول اخطاء فً تعرٌف المتغٌرات اذا كانت معرفة مسبقا و ‪ clc‬لحذف‬
‫الشاشه فً بداٌة كل أمر‬

‫حاول كتابة ما تشاء من البرامج وتطبٌقها ‪.‬‬

‫‪ 4.2‬أوامر ال ‪M-files‬‬

‫‪disp -1‬‬

‫هذا االمر ٌساوي ‪ cout‬فً لغة ال ‪ C++‬وٌعنً اظهار او اخراج‬

‫محمد رفٌق علً‬


‫‪input -2‬‬

‫وٌساوي االمر ‪ cin‬فً لغة ال ‪ c++‬وٌعنً االدخال‬

‫محمد رفٌق علً‬


‫عندما نطلب الدخال اسم ٌجب بعد الكتاب ان نضع الرمز '‪ 's‬انظر المثال للتوضح اكثر‬

‫شرح العملٌه ‪:‬‬

‫محمد رفٌق علً‬


‫هناك نوعٌن من االرقام االول ‪ string‬والثانً ‪ number‬حٌث الماتالب ٌعامل األول كؤنه‬
‫رمز وعندما ٌتم جمعه او طرحه مع رقم ثانً سٌعطً نتٌجه خاطئ اما الثانً فهو رقم وٌعامل‬
‫معاملة الرقم‬

‫تحوٌل ال ‪ string‬الى رقم والعكس نستخدم احد األمرٌن ‪ num2str or str2num‬سٌؤتً‬


‫اهمٌة هذٌن األمرٌن فً جمل ‪ if‬و ‪ for‬الحقا ً ‪.‬‬

‫مثال‪ :‬اكتب أمر ٌطلب من المستخدم ادخال تخصصه ومستواه ثم ٌظهر له عالشاشه تخصصه‬
‫ومستواه‬

‫مثال ‪ :‬مواسعة المكثف تعطً بالعالقة التالٌة ‪:‬‬

‫‪0r A‬‬
‫‪c‬‬
‫‪d‬‬

‫محمد رفٌق علً‬


‫وٌوجد لدٌنا اجهزة تعمل على قٌاس المواسعة ‪ . c‬ونحن نعلم مساحة سطح كل مكثف ‪ A‬وهً‬
‫تساوي ‪ 10‬متر تربٌع وقٌمة ابسلون معروفة لدٌنا تساوي ‪ 8.85e-12‬فً الفراغ والمكثفات‬
‫المستخدمه هً الفراغ‬

‫المطلوب‪ :‬انشاء برنامج ٌطلب ادخال المواسعة ‪ .‬وٌعطٌك المسافه بٌن القطبٌن ‪d‬‬

‫‪Menu -3‬‬

‫الصٌغه العامة‬

‫)‪k=menu('title','option1',option2',….etc‬‬

‫حاول تجرٌبه ‪ .‬سٌتم استخدامه الحقا ً‬

‫‪plot -4‬‬

‫ٌمكنك استخدام االمر ‪ plot‬لرسم العالقه بٌن متغٌرٌن وسٌتم توضٌح الحقا ً بشكل تفصٌلً لكن‬
‫سنكتفً اآلن بتطبٌق سهل له وهو )‪plot(var1,var2‬‬

‫مثال ‪ :‬اكتب أمراً لرسم الموجه الجٌبٌة من ‪ 180-0‬درجه‬

‫محمد رفٌق علً‬


‫الحل ‪ :‬انظر الشكل‬

‫‪ 4.3‬المقارنة‬

‫الوظيفة‬ ‫الرمز‬
‫اقل‬ ‫<‬
‫اكبر‬ ‫>‬
‫اقل او يساوي‬ ‫=<‬
‫اكبر او يساوي‬ ‫=>‬

‫محمد رفٌق علً‬


‫هل يساوي ؟‬ ‫==‬
‫ال يساوي‬ ‫=~‬
‫‪And‬‬ ‫&‬
‫‪Or‬‬ ‫!‬
‫‪Not‬‬ ‫~‬

‫ٌمكن اجراء هذه العملٌات على عناصر منفردة او مصفوفات‬

‫شاهد المثال‬

‫محمد رفٌق علً‬


‫الحظ‪ :‬قمنا باستخدام االمر )‪ var(var1 compare var‬وهذا ٌعنً اوجد فً المتغٌر ‪var‬‬
‫عناصر تحقق الشرط ‪ var1‬اقل من ‪var‬‬

‫الحظ هنا ٌعطٌك العناصر ولٌس مكانها المصفوفة والٌجاد مكانها فً المصفوفة نستخدم األمر‬
‫‪find‬‬

‫انظر المثال‬

‫محمد رفٌق علً‬


‫مالحظة‪ :‬تستطٌع وضع اخر جملة طلب االدخال الرمز ‪ \n‬حتى ٌتم طلب االدخال بنزول‬
‫سطر انظر المثال‬

‫دون استخدام ‪ \n‬قام بطلب قٌمة ‪ x‬بنفس السطر ‪ ..‬اما بوجودها طلبها بسطر اسفل ‪.‬‬

‫هكذا نكون قد انتهٌنا من ال ‪ M-file‬وأوامره لكن لم ننتهً من تطبٌقاته ألننا لم نبدأ بها بعد ‪.‬‬
‫فً الفصل القادم سٌتم توضٌح األمور الخاصه بال ‪ Loops‬التً ال ٌخلو برنامج مهم منها ‪.‬‬
‫لكن حاول اآلن ان تحل المسائل القادمه حتى تبدأ الفصل القادم وانت فاهم لما تقدم ‪.‬‬

‫‪problems‬‬

‫‪ 4.1‬اكتب برنامج تقوم به بؤدخال معادالت بعدد المجاهٌل وٌقوم بؤٌجاد المجاهٌل‬

‫الجواب‪:‬‬
‫;)' ‪z=input(' the lift of equal matrix:‬‬
‫;)' ‪w=input(' the right of equal matrix:‬‬
‫;)‪q= inv(z‬‬
‫‪s= q*w‬‬

‫محمد رفٌق علً‬


‫‪ 4.2‬فً مقاومة ال ‪ LR‬تعطً الفولتٌه والتٌار بالعالقة التالٌة‬

‫قم بؤنشاء برنامج ٌرسم عالقة الفولتٌة والتٌار خالل الزمن ‪ 0‬الى ‪ 20‬ملً ثانٌة‬

‫‪ 4.3‬سإال متطلبه مادة آالت كهربائٌة‬

‫فً ال ‪ induction machines‬نقوم الٌجاد بارمترات الدائره بثالث تجارب ‪dc , no-load ,‬‬
‫‪ locked rotor‬انشئ برنامج ٌقوم بطلب نتائج التجارب و ثم ٌقوم باعطاء برامترات اآلله‬
‫كاملة‬

‫‪ 4.4‬اكتب برنامج ٌقوم برسم موجه جٌبٌة ‪ٌ ,‬قوم بداٌة بسإالك عن زمن البداٌة وثم النهاٌة‬
‫بالثانٌه وثم ٌقوم بسإالك بقٌمة الفولتٌة ‪ ,‬وثم ٌرسم الموجة الجٌبٌة‬

‫محمد رفٌق علً‬


‫الفصل الخامس‬
‫الجمل الشرطٌة‬

‫محمد رفيق علي‬


‫بدون مقدمات لهذا الفصل فالجمل الدورانية او الشرطية فهي مشابهه تماما لما في برنامج ال‬
‫ مع اختالف بسيط وسيتم توضيح جميعها في هذا الفصل‬c++

if statement 5.1
if ‫ثالث انواع لجملة‬

simple if statement
nested if statement
if-else statement

simple if statement- 1

‫الشكل العام‬

if expression 1
statement group 1
end

nested if statement- 2

‫الشكل العام‬

if expression 1
statement group 1
if expression 2
statement group 2
end
statement group 3
end
statement group 4

‫محمد رفيق علي‬


‫‪if-else statement-3‬‬
‫الشكل العام‬

‫‪if expression 1‬‬


‫‪statement group 1‬‬
‫‪else‬‬
‫‪statement group 2‬‬
‫‪end‬‬
‫الحظ جميع األوامر تنتهي ب ‪end‬‬

‫الفرق بٌن االنظمة الثالث ‪.‬‬

‫النظام األول ٌكون فٌه جملة ‪ if‬واحده فهو نظام بسٌط‬

‫اما النظام الثانً ٌكون فٌه اكثر من جملة ‪ if‬داخل بعضها (ال ٌنظر بتحقق الشرط الثانً اال‬
‫اذا تحقق األول )‬

‫اما النظام الثالث فهو نظام ٌنتقل عند عدم تحقٌق الشرط الى ‪ else‬وٌححققها‬

‫امثلة على االنظمة الثالث‬

‫مثال ‪: 1‬‬

‫اكتب برنامج ٌقوم بحساب الجذر لألرقام الموجبة فقط‬

‫الحل‪ :‬هنا ٌوجد شرط واحد فقط ‪ .‬اذا لم ٌتحقق لن ٌتم تحقٌق اي شًء‬

‫محمد رفيق علي‬


‫الحظ اننا هنا استخدمنا األمر ‪ num2str‬النه كما ورد سابق المصفوفه ٌجب ان تكون كلها‬
‫‪ string‬او كلها ‪ numbers‬والمصفوفه ‪ W‬فً السطر الرابع فً مثالنا نرٌدها ان تكون‬
‫مصفوفه رموز ‪ strings‬فحولنا ‪ x & z‬الى حروف ‪.‬‬

‫مالحظه لو قمنا بتحوٌل ‪ x‬من البداٌة الى حروف ك ان نكتب هذا األمر‬

‫)'‪ x=input('enter number','s‬سوف ٌتم تعرٌف ‪ x‬على اساس انها رمز فعند اٌجاد‬
‫جذرها لن ٌتم اٌجاده بالطرٌقة الصحٌحه ‪ .‬حاول التجرٌب‬

‫مثال ‪: 2‬‬

‫اكتب برنامج ٌقوم باٌجاد الجذر لالرقام الموجبة فقط واذا كان جوابه كسراً ٌقوم بكتابة ‪good‬‬
‫‪ luck‬واذا كان الجواب لٌس كسر ٌقوم بأخراج الجواب ‪.‬‬

‫الحل ‪ :‬هنا ٌوجد شرطان ‪ .‬الشرط الثانً ال ٌتحقق اال بتحقق الشرط األول وفً هذه الحاله‬
‫ٌتم استخدام النمط الثانً من جمل ‪if‬‬

‫محمد رفيق علي‬


‫الحظ استخدام األمر ‪ floor‬الذي ٌعنً اكبر عدد صحٌح ‪.‬‬

‫مثال ‪ : 3‬اكتب برنامج ٌقوم باٌجاد جذر االرقام الموجبة واذا كان الرقم سالب ٌقوم بكتابة‬

‫‪please enter positive number‬‬

‫الحل ‪ :‬هنا ٌوجود شرطان اذا لم ٌتحقق األول سٌتم تحقٌق الثانً اذا نستخدم النظام الثالث‬

‫محمد رفيق علي‬


‫مثال ‪: 4‬‬

‫اكتب برنامج ٌطلب ادخال المقاومات وثم ٌسأل اذا كانو على توازي ام توالً وٌتم اٌجادهم‬

‫الحل‪ :‬هنا ٌوجود شرطان اذا لم ٌتحقق األول سٌتم تحقٌق الثانً اذا نستخدم النظام الثالث‬

‫لكن هنا ٌتم طلب اما موازي او توالً ‪ .‬ماذا اذا ادخل المستخدم كلمة غٌر متوقعه ؟‬

‫هنا نستخدم نظام شبٌه لنظام ‪ else‬لكان بأكثر من ‪else‬‬

‫انظر الجواب وتمعنه جٌداً‬

‫محمد رفيق علي‬


‫‪for statement 5.2‬‬

‫الصٌغة العامة‬

‫‪for i:s:f‬‬
‫‪statement group X‬‬
‫‪end‬‬

‫جملة ‪ for‬هً احد الجملة الدورانٌة المهمة فً عالم الماتالب‬

‫‪ : i‬تعنً القٌمه االبتدائٌة وممكن ان تكون متغٌر‬

‫‪ :s‬تعنً الخطوه وممكن ان تكون متغٌر وهً لٌست اجبارٌة كتابتها اذا لم ٌتم كتابتها سٌأخذ‬
‫الخطوه تساوي ‪1‬‬

‫‪ : f‬القٌمة النهائٌة‬

‫لطالما جملة ‪ for‬بٌن القٌمة االبتدائٌة والنهائٌة سٌتم تنفٌد البرنامج عندما تخرج عن النطاق‬
‫سٌذهب الى ‪end‬‬

‫انظر االمثلة للتوضٌح اكثر‬

‫مثال ‪ :‬اكتب برنامج ٌعرف ال ‪( factorial‬المضروب)‬

‫مالحظه‪ :‬الٌجاد المضروب بالماتالب نستخدم األمر التالً )‪factorial(var or num‬‬

‫الحل ‪:‬‬

‫محمد رفيق علي‬


‫األمرٌن ‪Break & continue‬‬

‫ٌستخدم هذٌن األمرٌن للتخطً او األٌقاف فاألمر ‪ break‬عند تحقق الشرط ٌقوم بأٌقاف ال‬
‫‪ Loop‬واألمر ‪ continue‬عند تحقق الشرط ٌقوم بالتخطً والعوده لجملة ‪" if‬اعلم انك لم‬
‫تفهم جٌداً " انظر المثال للتوضٌح‬

‫وتوضيح لألمر ‪break‬‬

‫عمل األمر ‪ break‬على توقيف جملة ‪for‬‬

‫محمد رفيق علي‬


‫مثال ‪ :‬اكتب برنامج يرسم هذه المعادلة‬

‫‪15 4x  10‬‬ ‫‪x  9‬‬


‫‪y  { 10x  10‬‬ ‫‪0  x  9‬‬
‫‪10‬‬ ‫‪x 0‬‬
‫ل ‪-5<=x<=30‬‬

‫الحل ‪:‬‬
‫;‪for x=-5:30‬‬
‫‪if x>=9‬‬
‫; ‪y=15*sqrt(4*x)+10‬‬
‫‪elseif x>=0‬‬
‫;‪y=10*x+10‬‬
‫‪else‬‬
‫;‪y=10‬‬
‫‪end‬‬
‫;‪q(x+6)=y‬‬
‫;‪r(x+6)=x‬‬
‫‪end‬‬
‫‪q‬‬
‫‪r‬‬
‫)‪plot(r,q‬‬

‫قم بتجريب البرنامج ‪.‬‬

‫مثال ‪ :‬اكتب برنامج يقوم بحسب اول ‪ 15‬لهذه المتسلسلة‬

‫‪5k 2  2k‬‬

‫محمد رفيق علي‬


‫‪while statement 5.3‬‬

‫الصيغة العامة‬

‫‪while expression 1‬‬


‫‪statement group 1‬‬
‫‪end‬‬
‫‪statement group 2‬‬

‫وهذه الجملة تعني أنه لطالما الشرط ‪ expression 1‬متحقق سيتم تحقيق ‪statement group‬‬
‫‪ 1‬وعندما ال يتحقق سوف يتم تحقيق مجموعة الشروط ‪. 2‬‬

‫محمد رفيق علي‬


Problems
ً‫ اذا علمت ان تدرٌج العالمات كما فً التال‬5.1

‫النسبة‬ ‫العالمة‬
100_ 90 A
90_ 80 B
80_ 60 C
60_ 40 D
40_ 0 F

enter ‫اكتب برنامج تقوم بسؤال عن عدد الطالب ثم تقوم بادخال عالمة عالمة ثم يضغط‬
‫ وثم يعطي معدل‬F ‫ و‬A ‫وبعدها يعطي احصائية بعدد بنسبة الطالب الذين حازو على‬
" average" ‫العالمات‬

:‫الحل‬
clear
a=0;b=0;c=0;d=0;f=0;
e1=0;
e2=0;e3=0;e4=0;e=0;
x=1;
N=input('enter number of student')
while x<=N
z(x)=input('enter the mark')
if z(x)> 100
x=x-1;
z(x+1)=[];
disp('marks between 0-100 >>retry')
elseif z(x)>=90
e=e+1;
a(e)=z(x);
elseif z>=80
e1=e1+1;
b(e1)=z(x);
elseif z>=60
e2=e2+1;
c(e2)=z(x);
elseif z>=40
e3=e3+1;
d(e3)=z(x);
elseif z>=0
e4=e4+1;
f(e4)=z(x);
else
z(x)=[];
x=x-1;
disp('enter positive marks only')
end
x=x+1;
end
Avarage_of_marks=sum(z)/N
Average_A=[num2str(e/N*100),'%']

‫محمد رفيق علي‬


‫]'‪Average_F=[num2str(e4/N*100),'%‬‬

‫‪ 5.2‬اذا علمت ان المقاومة المكافئة ألحد الدوائر تعطى بالعالقة التالٌة‬

‫و ‪C = 5µF,‬‬ ‫و قٌمة ‪ w= 2πf‬و ‪L=4‬‬

‫وقٌمة ‪ f‬تتزاٌد من ‪ 0‬الى ‪60 Hz‬‬

‫اوجد ‪:‬‬

‫اقل قٌمة ل ‪Z‬‬

‫ما قٌمة ال ‪ f‬التً ٌحدث عندها اقل قٌمة ل ‪Z‬‬

‫محمد رفيق علي‬


‫الفصل الساس‬
‫التفاضل والتكامل‬

‫محمد رفٌق علً‬


‫ٌعتبر التفاضل والتكامل احد اساسات الهندسة ‪ ,‬فهً من أكثر العملٌات الحسابٌة المهمه وتعتبر‬
‫عملٌة التفاضل والتكامل عملٌة تتراوح بٌن الصعوبة والسهوله فمنها تستٌطع حلها ببساطه‬
‫ومنها من الصعب حلها ألنسان عادي ‪.‬‬

‫فً هذا الفصل سٌتم توضٌح آلٌة التفاضل والتكامل فً الماتالب ‪.‬‬

‫ومن المطلوب من قارئ هذا الفصل ان ٌكون ملما ً ولو بشكل بسٌط بالتفاضل والتكامل من قبل ‪.‬‬

‫‪Symbolic and Numerical 6.1‬‬

‫النظام الرهزي والنظام العددي ‪.‬‬

‫النظام الرهزي يعاهل الوتغيراخ كأنها ارقام والنظام الرقوي يعاهل الوتغيراخ كانو رهز لرقن‬
‫هعينو يجة اعطاءه قيوو قثلو التعديل عليو‬

‫هثالً لى قونا تكتاتح الجولح التاليح هثاشرج تالواتالب‬

‫‪f(x)=x^2-x‬‬

‫سوف ٌعطً البرنامج ‪Error‬‬

‫اذا حصل عندنا خطأ ما الحل ؟‬

‫هناك أمر فً الماتالب ٌتم من خالله تعرٌف المتغٌرات على اساس رموز ثم ٌتم التعامل معها‬
‫طول البرنامج كأنها رقم وٌتم تعوٌض قٌمته حٌن الطلب‬

‫واألمر هو … ‪syms var1 var2 var3‬‬

‫انظر المثال‬

‫محمد رفٌق علً‬


‫وٌمكن اٌضا تعرٌف اكثر من رمز باستخدام األمر ‪syms‬‬

‫لو اردنا تعرٌف ‪x,y,z,‬‬

‫‪syms x y z‬‬

‫لكن كما تالحظ لم ٌحتفظ المتغٌر ‪ f‬بقٌمته بهذا المثال وهً ‪ x^2-2‬بل تغٌرت الى ‪ٌ 2‬عنً لو‬
‫اردنا كتابة المتغٌر ‪ f‬مره اخرى فسوف ٌعطٌه قٌمة ‪ 2‬ماذا لو اردنا ان ٌحتفظ المتغٌر ‪f‬‬
‫بقٌمته وٌتحول الى اقتران ؟ بصٌغة )‪ f(x‬؟‬

‫الحل ‪ :‬استخدام األمر ‪ inline‬وهذا األمر دوره هو تحوٌل المتغٌر الى اقتران‬

‫انظر المثال وتمعنه جٌداً لتستطٌع الفهم‬

‫محمد رفٌق علً‬


‫‪ 6.2‬التفاضل ‪.‬‬

‫ٌستخدم لالشتقاق بالماتالب األمر ‪diff‬‬

‫ٌتم التفاضل (األشتقاق) بالماتالب بأكثر من طرٌقة‬

‫األولى الطرٌقة المباشرة ‪:‬‬

‫)'‪diff('var‬‬

‫محمد رفٌق علً‬


‫هذه طرٌقة مباشرة لكنك قد تواجه صعوبات باستخدامها خالل جمل الدورانٌة‬

‫ففً هذه الطرٌقة ٌعطً الجواب الرمزي لكن ال ٌعطً قٌمة حتى لو عرفنا قٌمة ‪ x‬فٌما بعد لن‬
‫ٌعطً قٌمة للجواب اال اذا استخدمنا األمر ‪eval‬‬

‫انظر المثال للتوضٌح‬

‫الطرٌقة الثانٌة ‪:‬طرٌقة شبه مباشرة‬

‫نفس الطرٌقة المباشرة ولكن للتخلص من اشارة االقتباس نعمل على ترمٌز المتغٌر قبل البدء‬
‫باالشتقاق‬

‫محمد رفٌق علً‬


‫الطرٌقة الثالثة‪ :‬تعرٌف األقتران ثم األشتقاق‬

‫تعرٌف األقتران‬

‫محمد رفٌق علً‬


‫مثال فً التقنٌات العددٌة ‪:‬‬

‫اكتب برنامج ٌقوم بأٌجاد قٌمة جذر األقتران بأستخدام طرٌقة نٌوتن‪-‬رافسون‬

‫وهً ان تقوم بأعطاء قٌمة تقرٌبة وثم ٌقوم بأشتقاق األقتران وكتابة الجملة الدورانٌة بالصٌغة‬
‫التالٌة‬

‫) ‪f (x‬‬
‫‪x1 x 0 ‬‬
‫) ‪f (x‬‬
‫وٌتوقف البرنامج عند تساوي ‪x1 & x0‬‬

‫الحل ‪:‬‬
‫‪syms x‬‬
‫)'‪d=input('enter equation x \n‬‬
‫;)‪f=inline(d‬‬
‫;))‪z=diff(f(x‬‬
‫;)‪f1=inline(z‬‬
‫)')‪x0=input('enter approximate value of f(x‬‬
‫‪x=x0‬‬
‫‪for u=0:inf‬‬
‫‪y=x‬‬
‫;))‪x=y-(f(x)/f1(x‬‬
‫‪if x==y‬‬
‫‪break‬‬
‫‪end‬‬
‫‪end‬‬
‫‪x‬‬

‫محمد رفٌق علً‬


‫‪ 6.3‬التكامل‬

‫التكامل كالتفاضل ‪ .‬وال فرق بٌنهما بالماتالب سوى استخدام األمر ‪ int‬بدالً من األمر ‪diff‬‬

‫مثال جد قٌمة تكامل ‪ 1/x‬بالفترة ‪5-2‬‬

‫مالحظة ‪ :‬الفترة لٌست اجبارٌة‬

‫محمد رفٌق علً‬

You might also like