بر روی لینک های زیر کلیک نمایید
- دانلود رایگان کد های آماده MATLAB
- دانلود رایگان فیلم های آموزشی الگوریتم های بهینه سازی ، شبکه عصبی ، منطق فازی و ...
- انجام پروژه های برنامه نویسی MATLAB
- تدریس خصوصی ، دوره های آموزشی الگوریتم های بهینه سازی ، شبکه عصبی ، منطق فازی و ...
- دانلود رایگان فایل های آموزشی
عملگرهای ریاضی در متلب
در متلب برای استفاده از عملگرهای ریاضی، دو شیوه به کار رفته است. شیوه اول برای عملگرهای بسیار رایج می باشد، مانند جمع، تفریق، ضرب، تقسیم و … که متلب برای هر کدام از آنها یک نماد را در نظر گرفته است، یعنی شما در هنگام نوشتن دستورات، تنها کافی است که از کیبورد، نماد مربوط به آن عملگر را در خط دستورات وارد کنید (مثلا زدن دکمه مربوط به نماد * از کیبورد برای عملگر ضرب).
شیوه دوم، استفاده از تابع است. متلب برای عملگرهای ریاضی که میزان استفاده از آنها زیاد نیست، دستوراتی را ساخته است و شما باید نام آن دستورات و نحوه استفاده از آنها را بدانید (مثلا برای عملگر رادیکال ۲ ، دستور sqrt در نظر گرفته شده است).
در ادامه عملگرهای مربوط به هر دو شیوه را شرح خواهیم داد.
عملگرهای ریاضی مشخص شده با نماد در متلب :
همان طور که گفتیم برای هر یک از این عملگرهای ریاضی، در متلب یک نماد خاص اختصاص یافته است. در جدول زیر، نمادهای مربوط به عملگرهای ریاضی پر کاربرد در متلب، نوشته شده است :
عملگر | نماد در متلب |
جمع | + |
تفریق | - |
ضرب | * |
تقسیم | / |
به توان | ^ |
مثال :
نتیجه :
مثال :
برای به توان ۲ رساندن عدد ۳ ، این گونه می نویسیم :
نتیجه :
عملگرهای ریاضی مشخص شده با دستور در متلب :
در متلب برای هر کدام از این عملگرهای ریاضی، یک دستور در نظر گرفته شده است. برای نمونه تعدادی از این عملگرها را در جدول زیر آورده ایم :
عملگر | دستور در متلب |
رادیکال ۲ | sqrt |
Ln (لگاریتم طبیعی) | log |
Log (لگاریتم بر مبنای ۱۰) | log10 |
مثال :
با دستور sqrt ، رادیکال ۲ عدد ۴ را محاسبه می کنیم :
نتیجه :
مثال :
با دستور log10 ، لگاریتم بر مبنای ۱۰ عدد ۱۰۰ را محاسبه می کنیم :
نتیجه :
ایجاد و به کار بردن توابع ریاضی در متلب
گاهی اوقات شما مجبورید یه عبارت ریاضی مثل f(x)=tan(x)*cos(x)/sqrt(x)-x^2 و یا g(x,y)=sin(x)-exp(y)*log(x-y) را در چندین جای برنامه به کار ببرید پس بهتر است که f و یا g که یک رابطه صرفا ریاضی می باشد را به صورت تابع تعریف کنیم تا استفاده از آن راحتتر باشد. ۳ راه برای این کار وجود دارد:
۱- استفاده از function
2- استفاده از inline
3- استفاده از handle_function
راه اول: تابع را به صورت فانکشن می نویسید:
function out=f(x)
out= tan(x).*cos(x)./sqrt(x)-x.^2;
یا
function out=g(x,y)
out= sin(x)-exp(y).*log(x-y);
حال به راحتی می توانیم از f و g در برنامه های دیگه استفاده کنیم:
>>f(2)
>>g(5,1)
در این روش یک m فایلی به نام تابع ایجاد خواهد شد.
راه دوم: استفاده از inline : به کمک تابع inline می توان توابع ریاضی را تعریف کرد:
f(a)=sin(a)-a*cos(a-1)
>>f=inline(‘sin(a)-a*cos(a-1)’)
>>f(2)
در مورد توابع چند متغیره باید در نوشتن تابع inline دقت کنیم. اگر در هنگام نوشتن تابع inline متغیرها را به ترتیب ورودی مشخص ننمائیم خود متلب به طور پیش فرض بر اساس حروف الفبا متغیرها را ورودی می گیرد:
g(x,b)=sin(x)*cos(b)-log(b-x)/(x+b)
می خواهیم عبارت g را با inline بنویسیم. اگر به صورت زیر بنویسیم چون مشخص نکرده ایم که کدام متغیر به عنوان اولین ورودی باشد متلب به طور پیش فرض بین حروف b و x بر اساس حروف الفبا متغیر اول را b و دوم را x میگیرد یعنی g(b,x) در نظر میگیرد.
>>g=inline(‘ sin(x)*cos(b)-log(b-x)/(x+b)’)
اما اگر بخواهیم واقعا g(x,b) شود باید خودمان در دستور inline پس از نوشتن تابع، ترتیب متغیرها را نیز اعلام کنیم:
>> g=inline(‘ sin(x)*cos(b)-log(b-x)/(x+b)’,'x’,'b’)
با این دستور مشخص می کنیم که متغیر اول ورودی x و بعدی b باشد.
نکته: اگر در دستور inline که تابع دو متغیره است خودتان اسم یک متغیر را به عنوان ورودی وارد کنید متلب گیر نمی دهد تا وقتیکه می خواهید مقدار دهی کنید که خطا خواهد داد:
>>g=inline(‘ sin(x)*cos(b),’x')
>>g(2) – -> Error!
دیگر موارد:
>> g=inline(’1′)
g =
Inline function:
g(x) = 1
>> g=inline(‘a’)
g =
Inline function:
g(a) = a
3- استفاده از handle_function : من نمی خواهم وارد مبحث handle_function بشم اما به طور ساده اگه بخوام بگم منظور نشانه @ می باشد:
f(x)=sin(x)*cos(x)-log(x+b)
>>f=@(x) (sin(x).*cos(x)-log(x+b))
>>f(2)
برای توابع چند متغیره:
g(x,y)=sin(x)*cos(y)-exp(sqrt(x-y))
>>g=@(x,y) (sin(x).*cos(y)-exp(sqrt(x-y)))
این ۳ روش خیلی به درد می خوره. مثلا در بحث انتگرال عددی و حل معادله دیفرانسیل عددی راه اول و سوم به کار میاد. در بحث تبدیل حل معادله دیفرانسیل تحلیلی به تابع ریاضی روش دوم به کار میاد و دیگر موارد کاربردی که در جای خودش ان شاءالله گفته خواهد شد.
انواع متغیرها و مقداردهی به متغیرها در متلب
یکی از ویژگی های متلب این است که احتیاجی نیست که حتما نوع متغیر را در همان ابتدای برنامه مشخص کنیم و با مقادیری که در طول برنامه به متغیر نسبت داده می شود، نوع متغیر به صورت خود به خود تعیین می شود.
در تعریف نام متغیرها باید دقت داشته باشید که متلب نسبت به کوچک یا بزرگ بودن حروف حساس می باشد.
انواع متغیرها :
در نرم افزار متلب، انواع مختلفی از متغیرها وجود دارد. برخی از آنها را شرح می دهیم :
متغیرهای عددی :
این متغیرها می توانند دارای مقادیر عددی باشند. به مثال زیر توجه کنید :
مثال :
فرض کنید بخواهیم به متغیر A ، مقدار ۲ را نسبت بدهیم. باید بنویسیم :
نتیجه :
متغیر های رشته ای (string) :
چنانچه متغیری را بخواهیم به صورت یک رشته از حروف تعریف کنیم، باید از علامت ‘ استفاده کنیم. به مثال زیر توجه کنید :
مثال :
نتیجه :
نکته :
دقت شود که استفاده از علامت ‘ برای ایجاد رشته ها ضروری است و چناچه از این علامت استفاده نشود، با پیغام خطا مواجه می شویم. این موضوع را در مثال زیر نشان داده ایم :
مثال :
نتیجه :
|
Error: Unexpected MATLAB expression.
متغیرهای سمبلیک :
گاهی نیاز است که متغیر تنها به صورت سمبلیک (مثلا با حرف x) تعریف شود تا با آن معادلاتی را به صورت نمادین حل کنیم. در مورد متغیرهای سمبلیک در مباحث دیگر به صورت مفصل صحبت خواهیم کرد.
دستور whos :
چنانچه تعداد متغیرهایی که در متلب تعریف کرده اید، از حدی بیشتر شود، به سختی می توانید نام آنها را به یاد آورید. برای آنکه بتوانید تمامی متغیرهایی که در متلب تعریف کرده اید را به صورت فهرست وار ببینید، تنها کافی است که دستور whos را اجرا کنید. لیست تمامی متغیرهای تعریف شده در متلب در خروجی نمایش داده می شود و نوع هر متغیر، فضای اختصاص داده شده به آن و اندازه آن را می توانید مشاهده کنید. به مثال زیر توجه کنید :
مثال :
نتیجه :
B ۱x1 ۱۱۲ sym
C ۱x1 ۱۱۲ sym
ans ۱x1 ۱۱۲ sym
x ۱x1 ۱۱۲ sym
y ۱x1 ۱۱۲ sym
اما باید دقت کنید که در فهرست فوق، مقادیر متغیرها نمایش داده نشده است. برای مشاهده مقدار هر متغیر، تنها کافی است که نام متغیر را در پنجره command نوشته و سپس کلید enter از کیبورد را فشار دهید، مقدار متغیر نمایش داده خواهد شد.
علاوه براین، Workspace به صورت گرافیکی، لیستی از تمامی متغیرهای تعریف شده در متلب را نمایش می دهد.
دستور clear :
این دستور برای پاک کردن متغیرهای تعریف شده در متلب به کار می رود. این دستور را می توان به شیوه های زیر به کار برد :
clear | تمامی متغیرهای تعریف شده در متلب را پاک می کند |
clear all | تمامی متغیرهای تعریف شده در متلب را پاک می کند |
clear x y | تنها متغیرهای x و y را پاک می کند |
نکته بسیار مهم :
یک برنامه نویس متلب، معمولا اولین دستوری که در برنامه خود به کار می برد، دستور clear all می باشد، زیرا امکان این که متغیرهایی که قبلا در متلب، توسط برنامه های قبلی، تعریف شده اند در برنامه جدید اختلال ایجاد کنند، زیاد است. این نکته در اجرای برنامه های طولانی و پیچیده، از اهمیت زیادی برخوردار است.
نمادهای پرکاربرد در متلب
در نرم افزار متلب، برای برخی مقادیر که معمولا پرکاربرد می باشند، نمادهایی منحصر به فرد در نظر گرفته شده است. به عنوان مثال، برای عدد مشهور ((پی)) که در ریاضیات بسیار به کار می رود، نماد pi انتخاب شده است. به مثال زیر توجه کنید :
مثال :
نتیجه :
3.1416
برخی از نمادهای پرکاربرد در نرم افزار متلب را در جدول زیر نمایش داده ایم :
عدد مشهور پی ( ۳٫۱۴۱۵ ) |
pi |
بینهایت | Inf |
موهومی | i |
کوچکترین عدد ممکن (اپسیلون) ( ۲٫۲۲۰۴e-016 ) |
eps |
به صورت یک عدد تعریف نشده است (مبهم) (در حالت ۰/۰ رخ می دهد) |
NaN |
بزرگترین عدد حقیقی مثبت ( ۱٫۷۹۷۷e+308 ) |
realmax |
کوچکترین عدد حقیقی مثبت (۲٫۲۲۵۱e-308 ) |
realmin |
استفاده از Help متلب
استفاده از Help متلب، می تواند در موارد مختلف به شما کمک کند. در اینجا می خواهم نکته ای را به شما بگویم که بسیار مهم است : (( Help متلب، در برخی مواقع، بهترین انتخاب نیست ! ))
بله درست خواندید. گاهی اوقات، Help متلب می تواند بسیار آزاردهنده باشد و آن زمانی است که شما می خواهید دستوری را برای یک عمل خاص بیابید، اما نام آن دستور را نمی دانید و مجبورید با کلماتی که آن عمل خاص را توصیف می کنند، به جستجو بپردازید. به دلیل حجم زیاد دستورها و ابزارهای مختلف نرم افزار متلب، باید خوش شانس باشید که بتوانید کلمه درست را بیابید و با آن کلمه، نام دستور مورد نظرتان را پیدا کنید. در این گونه موارد، اگر از جستجو در Help متلب خسته شدید، در اینترنت به جستجو بپردازید و در کتاب های آموزش متلب، در فصل هایی جستجو کنید که حدس می زنید آن دستور در آنها کاربرد دارد.
اما زمانی که نام دستور را بدانید، Help متلب، مرجع بسیار مناسبی است، زیرا نحوه دقیق استفاده از آن دستور و همچنین دستورهای با عملکرد مشابه آن دستور را به شما نشان خواهد داد (دستورهای مرتبط با آن).
باز کردن پنجره Help متلب :
در پنجره اصلی نرم افزار متلب، از منوی Help ، گزینه Product Help را انتخاب کنید. پنجره Help متلب باز می شود. در پنجره Help ، قسمتی برای جستجو وجود دارد که می توانید با آن، کلمه یا کلمات مورد نظر خود را وارد کرده و به جستجو در صفحات Help متلب بپردازید.
نحوه دیدن صفحات Help متلب با دستور help :
تنها کافی است که در پنجره Command ، تایپ کنید :
و سپس کلید enter از کیبورد را فشار بدهید. لیستی از صفحات Help متلب به صورت لینک، در پنجره Command ، نمایش داده می شود و می توانید بر روی آنها کلیک کرده و مطالب مورد نظر خود را مشاهده کنید.
نکته :
اگر بخواهیم Help مربوط به یک دستور خاص را ببینیم، باید پس از کلمه help ، نام آن دستور را بنویسیم. به مثال زیر توجه کنید :
مثال :
فرض کنید بخواهیم Help مربوط به دستور isequal را مشاهده کنیم، برای این منظور می نویسیم :
نتیجه :
ISEQUAL(A,B) returns logical 1 (TRUE) if arrays A and B are the same
size and contain the same values, and logical 0 (FALSE) otherwise.
If A is defined and you set B = A, ISEQUAL(A,B) is not necessarily
true. If A or B contains a NaN element, ISEQUAL returns false because
NaNs are not equal to each other by definition.
ISEQUAL(A,B,C,…) returns logical 1 if all the input arguments are
numerically equal, and logical 0 otherwise.
When comparing numeric values, ISEQUAL does not consider the class
of the values in determining whether they are equal. In other words,
INT8(5) and SINGLE(5) are considered equal. This is also true when
comparing numeric values with certain nonnumeric values. Numeric 1
is equal to logical 1. The number 65 is equal to the character ‘A’.
When comparing handle objects, use EQ or the == operator to test
whether objects are the same handle. Use ISEQUAL to test if objects
have equal property values, even if those objects are different
handles.
ISEQUAL recursively compares the contents of cell arrays and
structures. If all the elements of a cell array or structure are
numerically equal, ISEQUAL returns 1.
When comparing structures, the order in which the fields of the
structures were created is not important. As long as the structures
contain the same fields, with corresponding fields set to equal values,
isequal considers the structures to be equal.
See also isequalwithequalnans, eq.
Overloaded methods:
matlab.desktop.editor.Document/isequal
MException/isequal
timer/isequal
serial/isequal
instrument/isequal
daqdevice/isequal
daqchild/isequal
codistributed/isequal
fints/isequal
imaqdevice/isequal
imaqchild/isequal
iviconfigurationstore/isequal
icgroup/isequal
atom/isequal
categorical/isequal
laurpoly/isequal
laurmat/isequal
Reference page in Help browser
doc isequal
برخی از اطلاعات بالا، در پنجره Command از نرم افزار متلب ، به صورت لینک نمایش داده می شوند و چنانچه بر روی آنها کلیک کنید، اطلاعات بیشتری نمایش داده خواهد شد.
نمایش صفحه Help یک دستور با دستور doc در متلب :
همان طور که گفتیم، چنانچه پس از دستور help ، نام یک دستور متلب را بنویسیم، نرم افزار متلب اطلاعاتی از help آن دستور را در پنجره Command نمایش خواهد داد، اما شاید بخواهیم که صفحه مربوط به help آن دستور ،در پنجره اصلی Help خود متلب نمایش داده شود. برای این منظور، باید از دستور doc استفاده کنیم. بنابراین چنانچه از دستور doc استفاده کنیم، آنگاه متلب، پنجره مربوط به Help را باز کرده و صفحه اصلی مربوط به آن دستور را نمایش خواهد داد. به مثال زیر توجه کنید :
مثال :
فرض کنید بخواهیم صفحه اصلی Help مربوط به دستور isequal را در خود پنجره Help متلب مشاهده کنیم، برای این منظور می نویسیم :
نتیجه :
متلب پنجره Help را باز کرده و صفحه اصلی Help مربوط به دستور isequal را نمایش خواهد داد.
ادامه دادن دستورات طولانی در خط بعد
گاهی، دستورات یک خط، خیلی طولانی می شوند، به گونه ای که اگر همین طور آنها را پشت سر هم بنویسید، آنگاه آن خط به قدری طولانی می شود که مرتب برای بازبینی کدها مجبور می شوید به چپ یا راست پنجره حاوی کدها بروید.
در متلب برای این مشکل، راه حلی در نظر گرفته شده است. شما می توانید بخشی از دستورات را بنویسید و سپس علامت سه نقطه (…) را در پشت آنها بنویسید و سپس بقیه کدها را در خط بعدی ادامه بدهید. به مثال زیر توجه کنید :
مثال :
B=3;
C=A*…
B
نتیجه :
6
دقت کنید که ادامه کدها در خط بعدی، دقیقا از زیر علامت سه نقطه (…) شروع شده است و با این روش نمایش، به راحتی می توان تشخیص داد که کدهای این خط در ادامه کدهای خط قبل از خود می باشد.