به نام خدا دانشگاه آزاد اسالمی واحد نجفآباد دانشکده مهندسی برق نرم افزار MATLAB مدرس: ایمان صادقخانی

Σχετικά έγγραφα
محاسبه ی برآیند بردارها به روش تحلیلی

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

تصاویر استریوگرافی.

روش محاسبه ی توان منابع جریان و منابع ولتاژ

آزمایش 8: تقویت کننده عملیاتی 2

معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد:

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

قاعده زنجیره ای برای مشتقات جزي ی (حالت اول) :

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

تمرینات درس ریاض عموم ٢. r(t) = (a cos t, b sin t), ٠ t ٢π. cos ٢ t sin tdt = ka۴. x = ١ ka ۴. m ٣ = ٢a. κds باشد. حاصل x٢

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )2( shimiomd

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

تحلیل مدار به روش جریان حلقه

شاخصهای پراکندگی دامنهی تغییرات:

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

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

جلسه 2 جهت تعریف یک فضاي برداري نیازمند یک میدان 2 هستیم. یک میدان مجموعه اي از اعداد یا اسکالر ها به همراه اعمال

هندسه تحلیلی بردارها در فضای R

SanatiSharif.ir مقطع مخروطی: دایره: از دوران خط متقاطع d با L حول آن یک مخروط نامحدود بدست میآید که سطح مقطع آن با یک

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد:

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

تمرین اول درس کامپایلر

جلسه 22 1 نامساویهایی در مورد اثر ماتریس ها تي وري اطلاعات کوانتومی ترم پاییز

باشند و c عددی ثابت باشد آنگاه تابع های زیر نیز در a پیوسته اند. به شرطی که g(a) 0 f g

جلسه 15 1 اثر و اثر جزي ی نظریه ي اطلاعات کوانتومی 1 ترم پاي یز جدایی پذیر باشد یعنی:

دانشکده ی علوم ریاضی جلسه ی ۵: چند مثال

مینامند یا میگویند α یک صفر تابع

Angle Resolved Photoemission Spectroscopy (ARPES)

پنج ره: Command History

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1

شبکه های عصبی در کنترل

جلسه ی ۳: نزدیک ترین زوج نقاط

فصل 5 :اصل گسترش و اعداد فازی

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد.

تئوری جامع ماشین بخش سوم جهت سادگی بحث یک ماشین سنکرون دو قطبی از نوع قطب برجسته مطالعه میشود.

زمین شناسی ساختاری.فصل پنجم.محاسبه ضخامت و عمق الیه

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی

فصل اول هدف های رفتاری: پس از پایان این فصل از هنرجو انتظار می رود: 5 روش های اجرای دستور را توضیح دهد. 6 نوارهای ابزار را توصیف کند.

جلسه ی ۵: حل روابط بازگشتی

دکتر عباس روحانی دانشکده کشاورزی دانشگاه صنعتی شاهرود

جزوه کارگاه برنامه نویسی

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

همبستگی و رگرسیون در این مبحث هدف بررسی وجود یک رابطه بین دو یا چند متغیر می باشد لذا هدف اصلی این است که آیا بین

جلسه ی ۲۴: ماشین تورینگ

برابری کار نیروی برآیند و تغییرات انرژی جنبشی( را بدست آورید. ماتریس ممان اینرسی s I A

Top Down Parsing LL(1) Narges S. Bathaeian

راهنمای کاربری موتور بنزینی )سیکل اتو(

هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.

آموزش شناسایی خودهمبستگی در دادههای سری زمانی و نحوه رفع آن در نرم افزار EViews

نمونه برداری از سیگنالهای زمان پیوسته

خالصه درس: نویسنده:مینا سلیمان گندمی و هاجر کشاورز امید ریاضی شرطی. استقالل متغیر های تصادفی پیوسته x و y استقالل و امید ریاضی

هندسه تحلیلی و جبر خطی ( خط و صفحه )

آموزش SPSS مقدماتی و پیشرفته مدیریت آمار و فناوری اطالعات -

:موس لصف یسدنه یاه لکش رد یلوط طباور

جلسه ی ۴: تحلیل مجانبی الگوریتم ها

فصل چهارم تعیین موقعیت و امتدادهای مبنا

به نام حضرت دوست. Downloaded from: درسنامه

فصل دوم مثلثات نسبت های مثلثاتی دایره مثلثاتی روابط بین نسبتهای مثلثاتی

فصل پنجم زبان های فارغ از متن

دبیرستان غیر دولتی موحد

بسمه تعالی «تمرین شماره یک»

فهرست جزوه ی فصل دوم مدارهای الکتریکی ( بردارها(

آزمایش ۱ اندازه گیری مقاومت سیم پیچ های ترانسفورماتور تک فاز

1 دایره فصل او ل کاربردهای بسیاری داشته است. یک قضیۀ بنیادی در هندسه موسوم با محیط ثابت دایره دارای بیشترین مساحت است. این موضوع در طراحی

به نام خدا قابل استفاده برای کلیه دانشجویان مهندسی و علوم پایه مدرس: هوشمند عزیزی

فصل چهارم : مولتی ویبراتورهای ترانزیستوری مقدمه: فیدبک مثبت

اندازهگیری چگالی به روش ارشمیدس و اندازهگیری زمان عکسالعمل شخص II

فصل سوم جبر بول هدف های رفتاری: در پایان این فصل از فراگیرنده انتظار می رود که :

جلسه 28. فرض کنید که m نسخه مستقل یک حالت محض دلخواه

فهرست مطالب جزوه ی فصل اول مدارهای الکتریکی مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل تحلیل مدار به روش جریان حلقه... 22

قرار می گیرند. همچنین برای نگهداری اطالعات و نمایش آنها بر روی صفحه نمایش از متغیرها

ندرک درگ ندرک درگ شور

مسائل. 2 = (20)2 (1.96) 2 (5) 2 = 61.5 بنابراین اندازه ی نمونه الزم باید حداقل 62=n باشد.

سینماتیک مستقیم و وارون

ˆ ˆ ˆ. r A. Axyz ( ) ( Axyz. r r r ( )

آشنایی با پدیده ماره (moiré)


فصل سوم جریان های الکتریکی و مدارهای جریان مستقیم جریان الکتریکی

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

دانشگاه صنعتی کرمانشاه آموزش نرم افزار SIMPOWER MATLAB. SimPowerSystems MATLAB آموزش مقدماتی دانشگاه صنعتی کرمانشاه دکتر وحید عباسی

ب ردارها فصل دوم F 1 F 2 R R بخش اول - استاتیک PROBLEMS. 6.1 through 6.18 Using. Fig. Fig. P6.1. Fig. P ft 8 ft. 2.4 m 2.4 m lb.

ارتعاشات منابع سرفصل درس تعاریف و مفاهیم پایه ارتعاشات آزاد سیستمهاي یك درجه آزادي ارتعاش اجباري هارمونیك ارتعاش گذرا سیستمهاي دو درجه آزادي

به نام خدا. الف( توضیح دهید چرا از این تکنیک استفاده میشود چرا تحلیل را روی کل سیگنال x[n] انجام نمیدهیم

جلسه ی ۱۸: درهم سازی سرتاسری - درخت جست و جوی دودویی

آموزش اتوکد (AutoCAD)

نویسنده: محمدرضا تیموری محمد نصری مدرس: دکتر پرورش خالصۀ موضوع درس سیستم های مینیمم فاز: به نام خدا

Spacecraft thermal control handbook. Space mission analysis and design. Cubesat, Thermal control system

آزمایش میلیکان هدف آزمایش: بررسی کوانتایی بودن بار و اندازهگیري بار الکترون مقدمه: روش مشاهده حرکت قطرات ریز روغن باردار در میدان عبارتند از:


جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز

بسم هللا الرحمن الرحیم

Transcript:

به نام خدا دانشگاه آزاد اسالمی واحد نجفآباد دانشکده مهندسی برق مقدمهای بر توابع ریاضی رسم شکل و برنامهنویسی در نرم افزار MATLAB مدرس: ایمان صادقخانی

- نحوه تعریف و واردکردن یک ماتریس برای جداکردن درایههای هر سطر از کلید Space یا نماد " " استفاده میشود. برای تعریف سطر بعدی از نماد ";" استفاده نموده و یا کلید Eter را فشار دهید. >> A = [1 3; 4 5 6;7 8 9] A = 1 4 7 5 8 3 6 9 پس از واردکردن ماتریس A و زدن کلید Eter این ماتریس در Workspace ذخیره میشود. با دوبار کلیککردن بر نماد ماتریس A در Workspace پنجره Variable Editor باز خواهد شد که امکان ویرایش ماتریس A را فراهم خواهد نمود. نکته: استفاده از نماد ";" در آخر هر دستور مانع نمایش خروجی آن دستور در محیط کار و شلوغشدن آن میشود. دستور clc محیط کار را پاک میکند. همچنین دستور clear all متغیرهای موجود در Workspace را حذف خواهد نمود. ترانهاد ماتریس A با دستور 'A بدست خواهد آمد. دستور diag(a) قطر اصلی ماتریس A را در یک ستون نمایش خواهد داد. دستور sum(a) درایههای ماتریس A را بصورت ستونی جمع میکند. برای ماتریس فوق داریم: >> sum(a) as = 1 15 18 دستور magic() یک ماتریس ایجاد میکند که مجموع درایههای هر ستون آن با هم برابر است. مثال: دستورات زیر را وارد نموده و نتیجه را مشاهده نمایید: >> sum(magic(5)) >> sum(diag(a))

دستور size(a) تعداد سطر و ستونهای یک ماتریس را نشان میدهد. برای مثال: >> A=[1 3;5 6;4 9] >> size(a) as = 3 دستور sort(a) درایههای یک ماتریس را از کوچک به بزرگ مرتب میکند. برای مثال: >> sort(a) as = 1 3 4 6 5 9 - نمایش آرایههای یک ماتریس برای دسترسی به یک درایه خاص از ماتریس A از دستور A(,m) استفاده میکنیم که شماره سطر و m شماره ستون درایه مورد نظر میباشد. همچنین میتوان از دستور A(i) استفاده نمود که i شماره درایه مورد نظر بوده که بصورت زیر بدست میآید: A(1,1) A(1,) A(1,3) A = A(,1) A(,) A(,3) A(3,1) A(3,) A(3,3) A = A(1) A() A(3) A(4) A(5) A(6) A(7) A(8) A(9) - آشنایی با عملگر ":" >> A = 1::10 >> A(:,) این عملگر را با مثال توضیح خواهیم داد. این دستور اعداد 1 تا 11 را با گام نمایش میدهد. برای مشاهده سطر اول ماتریس A از دستور (:,1)A استفاده میکنیم. مثال: دستورات زیر را وارد نموده و خروجی را مشاهده کنید: >> sum(a(:)) 3

- ساخت چند ماتریس پرکاربرد دستور zeros(,m) دستور oes(,m) یک ماتریس m یک ماتریس m با درایههای صفر میسازد. با درایههای یک میسازد. دستور eye(,m) یک ماتریس m با درایههای صفر و قطر اصلی یک میسازد. دستور rad(,m) یک ماتریس m با درایههای تصادفی در بازه صفر و یک میسازد. - حذف یک سطر یا ستون ماتریس >> A(,:) = [] برای حذف سطر دوم ماتریس A از دستور زیر استفاده میشود: بطور مشابه دستور [] = (,:)A ستون دوم ماتریس A را حذف خواهد نمود. - دیگر دستورات پرکاربرد دستور det(a) دترمینان ماتریس A و دستور iv(a) معکوس این ماتریس را محاسبه خواهد نمود. - متغیرها >> a1 = 50; >> a = 'k'; >> a3 = 'I am studet'; انواع متغیرها در متلب عبارتند از: - اعداد >> a1 = 100; >> a =.3e3; >> a3 = 1+j; >> a4 = 1+i; انواع اعداد در متلب عبارتند از: 4

- عملگرها دستور A*B عمل ضرب دو ماتریس A و B را انجام میدهد البته باید قاعده ضرب ماتریسها برقرار باشد. برای ضرب نظیر به نظیر درایههای دو ماتریس )ضرب نقطهای( از دستور A.*B استفاده نمایید. همچنین اگر درایههای ماتریس A اعداد مختلط باشند دستور 'A عالوه بر ترانهاده کردن ماتریس A درایههای این ماتریس را نیز مزدوج میکند. برای جلوگیری از مزدوجشدن درایهها از دستور '.A استفاده نمایید. - توابع در متلب برای نمایش کلیه توابع متلب از دستور help elfu استفاده کنید. دستور si() سینوس عدد را نمایش میدهد. البته توجه نمایید که پیشفرض متلب ))رادیان(( بوده و عدد را بصورت رادیان درنظر میگیرد. برای واردکردن اعداد بصورت رادیان باید از نماد π استفاده نمود. این نماد در متلب بصورت pi تعریف شده است. مثال برای محاسبه سینوس 31 درجه از دستور si(pi/6) استفاده میشود. راه دیگر استفاده از دستور sid() است که عدد را برحسب درجه درنظر میگیرد. برخی توابع پرکاربرد در متلب عبارتند از: کاربرد نام تابع si sid asi sih asih cos cosd acos cosh acosh ta tad ata tah توابع مثلثاتی: سینوس بر حسب رادیان سینوس بر حسب درجه معکوس سینوس سینوس هایپربولیک معکوس سینوس هایپربولیک کسینوس بر حسب رادیان کسینوس بر حسب درجه معکوس کسینوس کسینوس هایپربولیک معکوس کسینوس هایپربولیک تانژانت بر حسب رادیان تانژانت بر حسب درجه معکوس تانژانت تانژانت هایپربولیک 5

atah cot cotd acot coth acoth sec csc exp() log log10 log pow() sqrt() abs() agle() complex(,m) coj() imag() real() roud() fix() floor() ceil() معکوس تانژانت هایپربولیک کتانژانت بر حسب رادیان کتانژانت بر حسب درجه معکوس کتانژانت کتانژانت هایپربولیک معکوس کتانژانت هایپربولیک سکانت کسکانت توابع نمایی: e محاسبه لگاریتم در پایه e لگاریتم در پایه 11 لگاریتم در پایه محاسبه )L )تابع محاسبه جذر توابع مختلط: محاسبه اندازه عدد مختلط محاسبه زاویه عدد مختلط ایجاد عدد مختلط + j m محاسبه مزدوج عدد مختلط بر حسب رادیان محاسبه قسمت موهومی عدد مختلط محاسبه قسمت حقیقی عدد مختلط توابع گردکردن: گردکردن عدد گردکردن عدد گردکردن عدد گردکردن عدد به سمت نزدیکترین عدد صحیح به سمت صفر به سمت منفی بینهایت به سمت مثبت بینهایت تابع نکته: abs() درصورتیکه یک عدد حقیقی باشد نقش قدرمطلق را انجام میدهد. همچنین برای محاسبه از دستور A^(m/) استفاده نمایید. m A 6

نکته: تبدیل دکارتی به قطبی با استفاده از دستور( cartpol(real,image و تبدیل قطبی به دکارتی نیز با استفاده از دستور( polcart(agle,absolute مثال: صورت میگیرد. دقت نمایید که زاویه در این دستورات برحسب رادیان است. برای >> [agle,absolute]=cartpol(3,4) agle = 0.973 absolute = 5 >> [real,image]=polcart(0.973,5) real = 3.0000 imag = 4.0000 - چند جملهایها در متلب نرمافزار متلب دارای چندین دستور ساده برای کار با چندجملهایهاست که اساس کار این توابع بردارهاست. میتوانید با تایپ دستور help polyfu این توابع را مشاهده نمایید. چند جملهایها بصورت یک ماتریس سطری و با ضرایب خود تعریف میشوند. 3 f ( x) 9x 5x 3x 7 >> f = [9-5 3 7]; دقت کنید درصورتیکه یکی از توانهای x )مثال x( موجود نبود بجای ضریب آن در ماتریس عدد صفر را قرار میدهیم. برای جمع دو چند جملهای باید مرتبه آنها برابر باشد: g( x) 6x >> g = [6 - ]; x 7

همانگونه که مشاهده میکنید درجه f از مرتبه 3 ولی درجه g از مرتبه است. بنابراین برای جمع دو چند جملهای باید مرتبه هر دو یکی شود. اینکار با اضافهکردن یک صفر بجای ضریب x 3 در g صورت میگیرد: >> g1 = [0 g]; >> h = f + g1; برای ضرب و تقسیم دو چند جملهای دیگر نیازی نیست مرتبه آنها یکی باشد: 3 f ( x) g( x) (9x 5x 3x 7)(6x x ) >> p = cov(f,g) f ( x) 9x g( x) 3 5x 6x 3x 7 x >> [a b] = decov(f,g) همانگونه که مشاهده میکنید برای اینکه خارج قسمت و باقیمانده تقسیم دو چندجملهای را داشته باشیم بایستی حاصل تقسیم را در یک ماتریس سطری دو ستونه بریزیم. برای محاسبه مقدار چند جملهای f در نقطه a از دستور polyval(f,a) استفاده میکنیم که a یک عدد است. برای محاسبه ریشههای چند جملهای f از دستور roots(f) استفاده مینماییم. برای بدستآوردن یک چند جملهای از روی ریشههای آن ابتدا باید آن ریشهها را در یک ماتریس ستونی قرار داده و سپس از دستور poly استفاده کنیم: >> r = [1;.3;-0.8;4]; >> poly(r) - حل دستگاه معادله مجهولی یکی دیگر از کاربردهای ماتریسها حل دستگاه معادالت است. دستگاه زیر را درنظر بگیرید: 3x1 5x x3 10 x1 x x3 x x 3x 6 1 3 8

میتوان معادله را با ماتریسهای زیر مشخص نمود: 3 5 A 1 1 1 x1 X x x3 10 B 6 1 3 ماتریس ضرایب: ماتریس مجهوالت: ماتریس جوابها: ماتریسهای A و B را وارد کرده و با یکی از دو دستور زیر ماتریس مجهوالت )X( بدست خواهد آمد: >> X = iv(a)*b >> X = A\B - نحوه نمایش اعداد در متلب پیشفرض متلب برای نمایش اعداد چهار رقم اعشار میباشد. برای تغییر آن از منوی File گزینه Prefereces را انتخاب نموده و در قسمت Commad Widow منوی کشویی Numeric format را باز کنید. حال میتوانید یکی از گزینهها را انتخاب نمایید. راه دیگر استفاده از دستور format میباشد یعنی نحوه نمایش دلخواه را پس از دستور format تایپ نمایید. برای مثال برای نمایش اعداد تا 16 رقم اعشار از دستور format log استفاده میشود. در جدول زیر فرمتهای مختلف نمایش اعداد بیان شده است. مفهوم آن در متلب نمایش اعداد با چهار رقم اعشار نمایش اعداد با شانزده رقم اعشار پنج رقم )چهار رقم اعشار( 03+1.37e 16 رقم )15 رقم اعشار( دو رقم اعشار اعداد بصورت مثبت منفی یا صفر نمایش داده میشوند اعداد بصورت کسری نمایش داده میشوند دستور format short format log format short e format log e format bak format + format rat 9

- رسم توابع در متلب این دستور براساس آرگومانهای ورودیاش توابع مختلف را رسم میکند. اگر این دستور بصورت تک آرگومانی مورد استفاده قرار گیرد و متغیر حقیقی باشد آنرا بر حسب اندیسش )شماره ستون درایههای آن متغیر در )Workspace رسم میکند و اگر متغیر موهومی باشد قسمت حقیقی برحسب قسمت موهومی رسم میگردد: >> y = :0.3:10; >> plot(y) >> z = 0.1+0.9i; >> = [0:0.01:10]; >> plot(z.^) اگر از این دستور بصورت دو آرگومانی استفاده شود آرگومان دوم را برحسب آرگومان اول رسم مینماید: >> x = 0:pi/100:*pi; >> y = si(x); >> plot(x,y) همچنین میتوان بدون تعریف متغیر واسط y و بطور مستقیم تابع را در دستور plot صورت تغییر x دیگر نیازی به تعریف مجدد y نمیباشد: وارد نمود. در این حالت در >> plot(x,si(x)) - چند تکنیک در دستور plot با دستورات ylabel xlabel و title میتوان توضیحاتی به محور x محور y و عنوان نمودار اضافه نمود: >> xlabel('x=0:\pi') >> ylabel('si(x)') >> title('y=si(x)') >> plot(x,si(x),x,cos(x)) برای رسم همزمان چند تابع بصورت زیر عمل مینماییم: 11

>> leg('si(x)','cos(x)') برای نمایش اطالعات بر روی نمودار از دستور leg استفاده میگردد: برای رسم همزمان همچنین میتوان از دستورات hold o و hold off استفاده نمود. دستور hold o شکل قبلی را حفظ کرده و شکل جدید را بر روی شکل قبلی رسم میکند. دستور hold off تمامی شکلهای قبلی را حذف کرده و شکل جدید را به تنهایی رسم مینماید: >> plot(x,si(x)) >> hold o >> plot(x,cos(x)) >> hold off >> plot(x,*si(x+)) دستور figure باعث بازشدن یک شکل جدید میشود. یعنی شکل قبلی در پنجره خود حفظ شده و یک پنجره جدید باز میشود و شکل جدید در پنجره جدید رسم میگردد. با استفاده از دستور subplot(a,b,) میتوان چند نمودار را در یک پنجره و بصورت مجزا نشان داد که b a و هر سه عدد هستند. a تعداد شکلها در راستای عمودی )تعداد سطر( b تعداد شکلها در راستای افقی )تعداد ستون( و شماره شکل موردنظر است. شکلها به ترتیب سطر )سطر اول سطر دوم و...( و از چپ به راست شمارهگذاری میشوند: >> subplot(,,1) >> plot(x,si(x)) >> subplot(,,) >> plot(x,cos(x)) >> subplot(,,3) >> plot(x,*si(x)) >> subplot(,,4) >> plot(x,cos(x-)) دستور axis برای تعیین محدوده محورهای افقی و عمودی بکار میرود. شکل کلی دستور بصورت ymax]) axis([xmi xmax ymi میباشد: >> plot(x,si(x)) >> axis([0 *pi -1.5 1.5]) 11

از دستور gird برای مشبککردن نمودار استفاده میشود. دستور text(m,,'matlab') کلمه matlab را در مختصات (m,) قرار میدهد: >> plot(x,si(x)) >> text(,0,'made by matlab') برای مشخصکردن نوع خط و رنگ نمودار از شکل کلی دستور plot استفاده میکنیم: plot(x,y,'color_style_marker') که color رنگ نمودار و style و marker نوع خط نمودار را بصورت زیر مشخص میکنند: حروف w b g r y m c و k به ترتیب مطابق با رنگهای آبی متمایل به سبز قرمز متمایل به صورتی زرد قرمز سبز آبی سفید و سیاه میباشند. برای خط توپر از ))-(( برای خط تیره از )):(( و برای خط نقطهچین از )).-(( استفاده میشود. برای نمایش نمودار با ))+(( ))o(( ))*(( و ))x(( از همین عالئم استفاده میشود. برای نمایش مربع لوزی پنج ضلعی شش ضلعی بر روی نمودار به ترتیب از حروف p d s و h استفاده میگردد. برای نمایش مثلث بر روی نمودار از ))>(( ))<(( و ))^(( استفاده میشود که این عالئم جهت رأس مثلث را نشان میدهند. >> plot(x,si(x),'r') >> plot(x,cos(x),'g:^) >> plot(x,*si(x+5),'-.d') مثال: دستور زیر را وارد نموده و نتیجه را مشاهده نمایید: >> x = 0:pi/100:*pi; >> plot(x,si(x),'r',x,si(x-*pi/3),'g:',x,si(x+*pi/3),'y-.') >> leg('va','vb','vc') توجه: برای اعمال دستورات grid axis leg title ylabel xlabel و text به صورتهای بیانشده باید نمودار از قبل رسم شده و باز باشد. 1

- رسم نمودار قطبی رسم نمودارهای قطبی نیز مشابه نمودارهای دکارتی بوده و تنها از دستور polar بجای plot استفاده میکنیم. r 0 1 0.5cos( ) >> th = 0:0.1:*pi; >> r =./(1-0.5*cos(th)); >> polar(th,r) - رسم نمودارهای سهبعدی برای رسم توابع سهبعدی از دستور plot3 استفاده میگردد. x t y si( t) z cos( t) >> t = 0:pi/100:*pi; >> plot3(t,si(t),cos(t)) مثال: دستور زیر را وارد نموده و نتیجه را مشاهده نمایید. >> t = 0:pi/100:50*pi; >> plot3(si(t),cos(t),t) - رسم توابع دو متغیره در متلب xyz تابع f(x,y) z = نشاندهنده سطحی است که در محورهای رسم شده است. فرض کنید میخواهیم تابع زیر را رسم کنیم: [( x y ) y ] z xe x y 13

meshgrid برای رسم این سطح ابتدا باید مجموعه نقاطی در صفحه ایجاد کنیم. اینکار با استفاده از تابع انجام میشود: >> [x y] = meshgrid(x,y); برای رسم تابع دو متغیره از دستور mesh استفاده میگردد: >> z = x.*exp(-((x-y.^).^+y.^)); >> mesh(x,y,z) توجه: به کاربرد عملگر نقطه در تعریف تابع باال توجه نمایید. برای رسم توابع دو متغیره از دستورهای دیگری نیز میتوان استفاده نمود: دستور cotour(x,y,z) پستی و بلندیهای تابع را نمایش میدهد )کاربرد در نقشهبرداری(. دستور cotour3(x,y,z) پستی و بلندیهای تابع را بصورت سه بعدی نمایش میدهد. دستور surf(x,y,z) همانند دستور mesh است با این تفاوت که سطح را سایه میزند. از دستورات meshc(x,y,z) meshz(x,y,z) و waterfall(x,y,z) نیز برای رسم توابع دو متغیره استفاده میشود. - نمودار میلهای برای رسم نمودار میلهای از دستور bar استفاده میشود. اگر بصورت یک بعدی استفاده شود متغیر را بر حسب اندیسش رسم میکند و اگر بصورت دو آرگومانی استفاده شود متغیر دوم را بر حسب متغیر اول رسم میکند. >> a = [3 9 6 10]; >> bar(a) >> a = [3 9 6;10 5 3;9 5 7]; >> b = [1388 1389 1390]; >> bar(b,a) برای رسم نمودار میلهای سهبعدی از دستور bar3 میشود: و برای رسم این نمودار بصورت افقی از دستور barh استفاده >> a = [3 9 6;10 5 3;9 5 7]; >> b = [1388 1389 1390]; >> bar3(b,a) >> barh(b,a) 14

- نمودار دایرهای برای رسم نمودار دایرهای از دستور pie استفاده میشود: >> q = [3 9 15 5]; >> pie(q) برای اینکه قسمتهای مختلف از هم جدا شوند از متغیر دوم استفاده میکنیم. اندازه متغیر دوم با متغیر اول برابر بوده و هر قسمت را که بخواهیم از بقیه جدا نشان داده شود درایهاش را غیرصفر قرار میدهیم: >> q = [3 9 15 5]; >> h = [0 1 0 0 1]; >> pie(q,h) برای رسم نمودار دایرهای سهبعدی از دستور pie3 استفاده میشود: >> q = [3 9 15 5]; >> h = [0 1 0 0 1]; >> pie3(q,h) - رسم کره و بیضی برای رسم کره از دستور sphere یا sphere() استفاده میشود که در آن تعداد قسمتهای تشکیلدهنده شکل است. برای رسم بیضی از دستور ellipsoid استفاده میگردد. معادله بیضی بصورت زیر است: x x y y z z c xr c yr c zr 0 که مرکز بیضی و [r x] r,y r,z شعاع بیضی در راستای محورهای مختلف است. دستور [x c,y c,z c] یک بیضی با مرکز و شعاع مشخصشده و متشکل از قسمت رسم میکند. برای ellipsoid(xc,yc,zc,xr,yr,zr,) مثال: [x, y, z] = ellipsoid(0,0,0,6,4,4,30); surfl(x, y, z) colormap witer axis equal 15

- آشنایی مقدماتی با دستورات مهندسی کنترل کمک میگیریم. برای مثال برای S 0. 1S 7. 5 G( s) 4 3 S 0. 1S 9S برای ساختن تابع تبدیل از مفهوم چندجملهایها استفاده کرده و از دستور tf ساختن تابع تبدیل زیر بصورت نشان داده شده عمل میکنیم: >> G = tf([1 0.1 7.5],[1 0.1 9 0 0]); yquist(g) برای رسم نمودار بود از دستور bode(g) نمودار نایکوئیست از دستور و برای رسم مکان هندسی از دستور rlocus(g) استفاده میشود. برای ایجاد ترکیب سری توابع تبدیل از دستور series استفاده میشود: >> sys = series(sys1,sys) برای ایجاد فیدبک از دستور feedback استفاده میگردد: >> sys = feedback(sys1,sys) >> sys = feedback(sys1,sys,+1) از 1+ در خط دوم برای ایجاد فیدبک مثبت استفاده شده است. برای رسم پاسخ پله از دستور step و برای رسم پاسخ ضربه از دستور impulse استفاده میشود: >> G = tf([1 0.1 7.5],[1 0.1 9 0 0]); >> sys=feedback(g,1); >> subplot(,1,1) >> step(sys) >> subplot(,1,) >> impulse(sys) 16

- آشنایی با متغیرها و توابع پیشرفته ریاضی برای تعریف متغیر از تابع sym به دو صورت زیر استفاده مینماییم: >> syms x y z a >> x = sym('x'); >> y = sym('y'); - روش اول: - روش دوم: در مبحث اعداد مختلط اگر متغیرها بصورت باال تعریف شوند متلب آنها را به عنوان اعداد مختلط درنظر گرفته و درنهایت عدد مختلط تشکیلشده از آنها را به عنوان عدد مختلط نمیشناسد. برای رفع این مشکل به یکی از دو روش زیر عمل میکنیم: >> syms x y real >> x = sym('x','real') >> y = sym('y','real') >> syms x y >> f = x+i*y; >> coj(f) >> syms x y real >> f = x+i*y; >> coj(f) - روش اول: - روش دوم: - چند مثال: >> syms x >> f = (cos(x))^+(si(x))^; >> simplify(f) >> syms x >> besselj(1/,x) >> pretty(as) دستور simplify یک عبارت ریاضی را در صورت امکان ساده میکند. 17

دستور pretty خروجی را بصورت استاندارد ریاضی نمایش داده و تابع besselj )بسل( تنها به عنوان یک مثال برای نشاندادن کاربرد دستور pretty استفاده شده است. - مشتق شکل کلی این دستور بصورت زیر میباشد: d f du diff ( f, u, ) >> syms x a >> f = si(a*x); >> diff(f) همانگونه که در مثال باال مشاهده میشود مشتقگیری بر حسب متغیر x صورت گرفته است. مبنای تعیین اولویت متغیرها در متلب بدین صورت است که ابتدا متغیر x درنظر گرفته میشود. اگر x وجود نداشت متغیری که به x نزدیکتر است لحاظ شده و اگر فاصله از دو طرف x یکسان بود مبنا ترتیب حروف الفباست. این قانون در متلب کلی است. برای تعیین متغیری که میخواهیم بر حسب آن مشتق گرفته شود از آرگومان دوم و برای تعیین مرتبه مشتق از آرگومان سوم استفاده میشود. برای مثال برای محاسبه مشتق سوم تابع باال بر حسب a از دستور زیر استفاده مینماییم: >> diff(f,a,3) - حد شکل کلی این دستور بصورت زیر میباشد: Lim xa f ( x) limit( f, x, a,' right') >> syms x h >> limit(si(x),x,pi/) >> limit((1+h/x)^x,x,if) >> limit(1/x,x,0) >> limit(1/x,x,0,'right') >> limit(1/x,x,0,'left') 18

بایستی خاطر نشان کرد که در متلب if نماد ))بینهایت(( و NaN نماد ))تعریف نشده(( است. از عبارتهای right و left برای محاسبه حد راست و چپ استفاده میشود. - انتگرال شکل کلی این دستور بصورت زیر میباشد: b f ( x) dx it( f, x, a, b) a >> syms x a b >> it(si(x)) >> it(cos(x),x,0,*pi) >> it(x^,) >> it(si(x),x,a,b) - سیگما شکل کلی این دستور بصورت زیر میباشد: b a f ( ) symsum( f,, a, b) >> syms x >> symsum(1/x^,x,1,if) - بسط و تجزیه یک تابع برای بسط یک تابع از دستور expad و برای تجزیه یک تابع به عبارتهای با درجه کمتر از دستور factor استفاده مینماییم: >> syms x y >> expad(si(x+y)) >> factor(x^-1) - حل معادالت یک مجهولی >> syms a b c x y برای حل معادالت یک مجهولی از دستور solve استفاده میکنیم. 19

>> s = a*x^+b*y+c; >> solve(s) برای تعیین متغیری که میخواهیم براساس آن حل صورت پذیرد از آرگومان دوم استفاده میکنیم: >> solve(s,c) >> solve(s,b) اگر معادله ما بصورت f(x)=g(x) بود بصورت زیر عمل میکنیم: >> syms x >> solve('cos(*x)+si(x)=1') >> solve('6*x^3+*x^=*x+1') همانگونه که در خروجی متلب برای دستور آخر مشاهده میشود جواب بصورت واضح نمایش داده نشده است. در اینچنین مواقع از دستور double استفاده نمایید: >> solve('6*x^3+*x^=*x+1') >> double(as) برای نمایش یک عدد با تعداد رقم دلخواه از دستور vpa اعشار بدین صورت عمل میکنیم: استفاده مینماییم. مثال برای نمایش عدد π با 51 رقم >> vpa(pi,50) - حل معادالت چند مجهولی برای حل دستگاه معادالت بصورت زیر عمل مینماییم. فرض کنید دستگاه معادالت زیر را داریم: xy 0 y x a >> syms x y a >> [x y] = solve('x*y^=0','x-y/=a') برای حل بصورت زیر عمل میکنیم: 1

- حل معادالت دیفرانسیل برای حل معادالت دیفرانسیل از دستور dsolve و برای تعریف اپراتور مشتق از عبارت D استفاده میکنیم. y 1 y >> syms y >> dsolve('dy=1+y^') برای تعیین شرایط اولیه و بدستآوردن جواب خصوصی معادله دیفرانسیل از آرگومان دوم استفاده میکنیم: >> dsolve('dy=1+y^','y(0)=1') - مثال d y cos(x) y dx, y(0) 1, dy (0) 0 dx >> syms x y >> dsolve('dy=cos(*x)-y','y(0)=1','dy(0)=0') همانطور که مشاهده میکنید چون متغیری را تعیین نکردیم متلب فرض میکند که y تابعی از t بوده و معادله را بر این اساس حل میکند در صورتی که در این مثال مشتق بر حسب x بوده و این جواب اشتباه است. برای رفع این مشکل متغیر x را به عنوان آرگومان آخر وارد میکنیم: >> dsolve('dy=cos(*x)-y','y(0)=1','dy(0)=0','x') برای حل دستگاه معادالت دیفرانسیل نیز بصورت زیر عمل میکنیم: >> syms f g >> [f g] = dsolve('df=3*f+4*g','dg=-4*f+3*g') - تبدیل فوریه و عکس آن برای تبدیل فوریه از دستور fourier و برای عکس تبدیل فوریه از دستور ifourier استفاده مینماییم. >> syms x >> f = exp(-x^); >> fourier(f) 1

>> syms w >> f = si(w)/w; >> ifourier(f) متغیر w در خروجی این دستور نماد ω در تبدیل فوریه است. - تبدیل الپالس و عکس آن برای تبدیل الپالس از دستور laplace و برای عکس تبدیل الپالس از دستور ilaplace استفاده مینماییم. >> syms t >> f = t^4; >> laplace(f) >> syms s a >> f = 1/(s-a)^; >> ilaplace(f) متغیر s در خروجی این دستور نماد متغیر تبدیل الپالس میباشد. - رسم نمودار >> syms x >> ezplot(si(x)) برای رسم نمودارهای دو بعدی از دستور ezplot استفاده مینماییم: برای تعیین محدوده رسم شکل از آرگومان دوم بصورت زیر استفاده میکنیم: >> ezplot(si(x),[-5*pi 10*pi]) ezplot('f(x)=f(y)') ezplot(f(x)-f(y)) از این دستور میتوان برای رسم نمودارهای f(x)=f(y) نیز به دو صورت و استفاده نمود: si( x ) cos( y) >> syms x y >> ezplot(si(x^)-cos(y)) >> ezplot('si(x^)=cos(y)')

برای رسم نمودارهای سه بعدی نیز از دستور ezsurf استفاده میکنیم: z x y >> syms x y >> ezsurf(x^+y^) - برنامهنویسی با متلب File > New > M File برای نوشتن برنامهها از محیط M فایل استفاده میکنیم. این محیط از طریق منوی قابل دسترسی است. - حلقه for این حلقه باعث اجرای قسمتی از برنامه به تعداد معین میشود. هنگامی از این دستور استفاده میکنیم که بدانیم حلقه چند بار میخواهد تکرار شود. شکل کلی این دستور به صورت زیر میباشد: for شمارنده دستورات مثالهای زیر را در محیط M فایل نوشته و اجرا نمایید تا با مفهوم این دستور بیشتر آشنا گردید. clc clear all a=zeros(5); for i=1:5 a(i,1)=1; a(i,3)=3; a(i,5)=5; a clc clear all v=rad(10,1) =legth(v); for i=1:/ v(i)=100; for i=/+1: v(i)=0; v' 3

clc a=zeros(5); for i=1:5 for j=1:5 a(i,j)=j; a tic for i=0:pi/100:*pi plot(i,si(i),'--rs','liewidth',,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10) hold o pause(0.1) toc نکته: از دستور pause برای ایجاد وقفه در اجرای دستور استفاده میشود. از عبارتهای tic و toc برای تعیین مدت زمان اجرای دستورات استفاده میگردد. کافی است عبارت میخواهید مدت زمان اجرای آن قسمت را مشاهده نمایید قرار دهید. tic را در ابتدا و عبارت toc را در انتهای قسمتی که - حلقه while اگر قبل از اجرای برنامه ندانید که حلقه باید چند بار تکرار شود از حلقه while استفاده میکنیم. شکل کلی این دستور به صورت زیر میباشد: while عبارت دستورات حلقه while تا زمانی تکرار میگردد که عبارت مربوط به آن نقض شود. عبارتهای مقایسهای عبارتند از: عبارت مساوی نامساوی کوچکتر بزرگتر کوچکتر مساوی بزرگتر مساوی نماد == ~= < > <= >= 4

مثالهای زیر را در محیط M فایل نوشته و اجرا نمایید تا با مفهوم این دستور بیشتر آشنا گردید. clc x=0; while x~=5 x=iput('eter a Number='); clc q='y'; while q~='' i=iput('eter a Number='); x=i*i; q=iput('do you wat to cotiue y/:','s'); disp('program fiished') - دستور if مهمترین دستور شرطی در متلب دستور if است. شکل کلی این دستور به دو صورت زیر میباشد: if شرط دستورات if elseif else شرط دستورات شرط دستورات دستورات مثالهای زیر را در محیط M فایل نوشته و اجرا نمایید تا با مفهوم این دستور بیشتر آشنا گردید. clc clear all for i=1:10 if i<=5 v(i)=0; else v(i)=1; v' 5

clc clear all for i=1:10 a(i)=i; if i<=5 b(i)=i*; else b(i)=i*5; [a' b'] clc clear all x=iput('please eter a umber:'); if x>100 disp('the umber is greater tha 100') else disp('the umber is less tha 100') برنامهای بنویسید که حروف y و d را تشخیص دهد: ch=iput('please eter a character','s'); if ch=='' disp('character is ') elseif ch=='y' disp('character is y') elseif ch=='d' disp('character is d') else disp('character is ot,y,d'); نکته: دستور legth طول یک بردار یعنی تعداد درایههای یک ماتریس تک ستونی یا تک سطری را نشان میدهد. دستور max دو خروجی دارد که خروجی اول ماکزیمم عدد موجود در بردار ورودی دستور و خروجی دوم آن شماره درایه متناظر با این مقدار ماکزیمم میباشد: clc clear all v=rad(15,1) =legth(v) [a b]=max(v) 6

- تعریف تابع در متلب این تکنیک را با دو مثال توضیح میدهیم. فرض کنید میخواهیم تابعی تعریف کنیم که دو ورودی و دو خروجی دارد. بعنوان مثال مقدار دو مقاومت را به عنوان ورودی دریافت و حاصل سری و موازی آنها را بعنوان خروجی برگرداند. fuctio [RS RP]=calc(R1,R); RS=R1+R; G=1/R1+1/R; RP=1/G; همانگونه که مشاهده میکنید RS و RP خروجیها و R1 و R ورودیهای تابعی به نام calc )اسم اختیاری( هستند. در خطوط بعد ارتباط بین ورودیها و خروجیها را تعریف مینماییم. سپس باید M فایل را با نام تابع تعریفشده ذخیره نمایید. حال میتوانید از این دستور استفاده کنید. یک M فایل جدید باز کرده و دستور زیر را در آن بنویسید )توجه نمایید که محل ذخیرهسازی هر دو M فایل در یک پوشه باشد(: clc a=iput('r1='); b=iput('r='); [series parallel]=calc(a,b) بعنوان مثالی دیگر فرض کنید میخواهیم تابعی تعریف کنیم که لگاریتم را در هر پایهای حساب نماید. واضح است که این تابع به دو ورودی برای خود عدد و پایه آن و یک خروجی برای مقدار لگاریتم نیاز دارد: fuctio A=logarithm(a,b); A=log(a)/log(b); clc d=iput('number='); e=iput('base='); Result=logarithm(d,e) حال برنامه زیر را در یک M فایل جدید نوشته و اجرا نمایید: 7

پیوست: فهرست نمادها و نحوه واردکردن آنها در شکلهای متلب منابع: رضا داژ و محمد آیت نرم افزار MATLAB 6.1 مؤسسه فرهنگی هنری دیباگران تهران چاپ دوم 1383. [] The Mathwork Ic., Gettig Started with MATLAB 6. ]1[ 8