menusearch
javapro.ir

جلسه نوزدهم | محاسبات نمادین در متلب

جستجو
شنبه ۸ مهر ۱۴۰۲ | ۱۶:۱۴:۲۷
۱۴۰۰/۹/۷ یکشنبه
(2)
(0)
جلسه نوزدهم | محاسبات نمادین در متلب
جلسه نوزدهم | محاسبات نمادین در متلب

فهرست جلسات مینی دوره متلب

جلسه اول | آموزش تصویری نصب برنامه متلب در کامپیوتر

جلسه دوم | آموزش کار با برنامه متلب

جلسه سوم | آموزش کار با توابع ریاضی ساده در متلب

جلسه چهارم | آموزش متغیرها در برنامه نویسی متلب

جلسه پنجم | معرفی انواع داده ها در متلب

جلسه ششم | آرایه ها در برنامه نویسی متلب

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

جلسه هشتم | ادامه ماتریس ها در برنامه نویسی متلب

جلسه نهم | رشته ها در برنامه نویسی متلب

جلسه دهم | آرایه سلول ها در برنامه نویسی متلب

جلسه یازدهم | اسکریپت ها در برنامه نویسی متلب

جلسه دوازدهم | آرایه‌‌های چندبعدی در متلب

جلسه سیزدهم | حلقه ها و دستورات شرطی در متلب

جلسه چهاردهم | ساختارها(structures) در متلب

جلسه پانزدهم | توابع در متلب

جلسه شانزدهم | رسم نمودار دوبعدی در متلب

جلسه هفدهم | ادامه رسم نمودار دوبعدی در متلب

جلسه هجدهم | رسم نمودار سه بعدی در متلب

جلسه نوزدهم | محاسبات نمادین در متلب

جلسه بیستم(آخر) | ادامه محاسبات نمادین در متلب

 

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

 

 

آموزش برنامه نویسی متلب
موضوع:محاسبات نمادین در متلب
جلسه:نوزدهم
مدرس : پدرام مشهدی زاده
متلب را ساده،آسان و شیرین بنوشید!!!

 

 

متلب یک کتابخانه ریاضی قوی و گسترده در زمینه محاسبات نمادین یا symbolic دارد. این ابزار یک راه دیگر برای حل محاسبات ریاضی به جای محاسبات بر روی اعداد می‌ باشد. در این روش ما محاسبات ریاضی را به صورت نمادین و نه عددی برروی عبارات ریاضی نمادین که تعریف می‌ کنیم، انجام می‌ دهیم. مثلا حل انتگرال های نامعین، محاسبات حد توابع، حل معادلات و ... به کمک این ابزار به راحتی ممکن خواهدبود. این روش محاسن و کاربردهای خود را دارد. این عملیات نمادین در حوزه های زیر کاربرد دارد:

 

  •     حساب دیفرانسیل و انتگرال
  •     جبرخطی
  •   معادلات جبری
  •   معادلات دیفرانسیل
  •   تبدیل های ریاضی مانند تبدیل فوریه
  •   سیستم های کنترل


دو دستور syms و sym() برای تعریف یک متغیر نمادین یا یک تابع نمادین به کارمی-روند. در بیشتر موارد از این دو دستور به جای یکدیگر نیز می‌توان استفاده نمود و البته تفاوت هایی نیز با یکدیگر دارند.
به مثال زیر دقت کنید:

 

>>2/3
ans =
  0.6667
>>sym(2)/sym(3
ans =
2/3


این مثال تفاوت محاسبه عددی معمولی و نمادین را نشان می‌ دهد. در حالت نمادین به جای حاصل تقسیم دو عدد از نسبت ساده شده ی آن استفاده می‌ شود:

 

>>sym(4)/sym(6)
ans =
2/3

 

مقدار حاصل عبارات نمادین را دریک متغیر می‌ توان ذخیره کرد. در زیر نوع و اندازه این متغیر نشان داده شده است:

 

>>a = sym(2)/sym(3)
a =
2/3
>>whos a
Name    Size      Bytes Class  Attributes

a      1x1      112    sym 

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

 

>>sqrt(2)
ans =
  1.4142
>>sym(sqrt(2))
ans =
2^(1/2)
>>sqrt(sym(2))
ans =
2^(1/2)


مقدار 2√ در دوحالت عددی و نمادین را به دست آوردیم. دیدیم که در حالت نمادین مقدار زیر رادیکال محاسبه نخواهدشد و به شکل عبارت ریاضی فوق نشان داده می‌ شود. برای عبارات پیچیده تر متلب عبارات ساده شده را نشان خواهد داد:

 

>>sym( sqrt( sym(3)*sym(2)^2 + sym(8)) )
ans =
2*5^(1/2)


اگر یک عبارت نمادین را همراه با مقادیر عددی به کار ببریم، مقادیر عددی نیز به صورت نمادین درنظر گرفته شده و مقدار نتیجه حاصل نیز نمادین خواهدبود:

 

>>a = sym(2) + 2
a =
4
whos a
Name  Size  Bytes Class  Attributes
  a    1x1    112  sym 

   
بنابراین به جای عبارت پیچیده ی مثال قبل می‌ توان صورت ساده تر زیر را به کاربرد:

 

>>sym( sqrt( 3*sym(2)^2 + 8) )
ans =
2*5^(1/2)

     
علاوه بر مقادیر عددی، متغیرهای ریاضی نمادین مانند x و y و... نیز می‌ توان تعریف نمود:

 

>>sym('x')
ans =
x
>>whos x
whos ans
Name    Size          Bytes Class  Attributes

ans      1x1              112 sym


می بینیم که از لحاظ ابعاد، اندازه و یا حجم داده، بین دو حالت داده نمادین عددی و حرفی تفاوتی وجود ندارد. از دستور syms هم به طور مشابه می‌ توان استفاده نمود.

 

>>syms x
ans =
x


دستور syms نیازی به پرانتز و ‘’ ندارد. همچنین برای تعریف همزمان چند متغیر نمادین مناسب تر از sum() است:

 

>>syms x y


اکنون که x و y نمادین تعریف شدند، عبارات ریاضی را می‌ توان به کمک آن ها تعریف نمود:

 

>>x^2 + 2*x + 1
ans =
x^2 + 2*x + 1
>>sqrt( 4*y + 2)
ans =
2^(1/2)*(2*y + 1)^(1/2)


شاید حاصل عبارت فوق در نگاه اول پیچیده به نظر بیاید، اما در واقع این عبارت همان √2√(2&(2y+1)) است. اما متلب از عبارت فوق برای محاسبات نمادین استفاده می‌ کند. برای نمایش و چاپ حاصل یک عبارت نمادین و صرفا به منظور خوانایی بیشتر آن از دستورات زیر استفاده می‌ شود:

 

>>pretty(ans)

  1/2        1/2
2  (2 y + 1)
>>simplify(x^2+2*x+1)
ans =
(x + 1)^2


دستور simplify نمایش عبارت را ساده تر می‌ کند. در واقع به کمک آن چندجمله ای فوق تجزیه گردید. برای عکس عمل فوق یعنی بسط چندجمله ای از دستور expand استفاده می‌ کنیم:

 

>>expand(ans)
ans =
x^2 + 2*x + 1


از دستور expand برای موارد زیر نیز می‌ توان استفاده کرد:


- پخش ضرب روی جمع:

 

>>expand((x-1)*(y-2))
ans =
x*y - y - 2*x + 2


- بسط توابع مثلثاتی:

 

>>expand(sin(x+y))
ans =
cos(x)*sin(y) + cos(y)*sin(x)


- بسط توابع نمایی:

 

>>expand(exp(x+y)^2)
ans =
exp(2*x)*exp(2*y)
>>expand(exp((x+y)^2))
ans =
exp(x^2)*exp(y^2)*exp(2*x*y)


- بسط توابع لگاریتمی:

 

>>expand(log(x^2*y))
ans =
log(x^2*y)


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

 

>>expand(log(x^2*y),'IgnoreAnalyticConstraints',true)
ans =
2*log(x) + log(y)


- تمرین: دستور simplify را برروی نتایج فوق اعمال کنید. بررسی کنید آیا عبارت اولیه متناظر هر یک از عبارات به دست خواهدآمد یا خیر.
ضرایب عبارات ریاضی هم می‌ توانند به صورت نمادین تعریف شوند. مثلا:

 

>>syms a b c x y
>>a*x^2 + b*x + c;


با دستور sum() می‌ توان تابع نمادین نیز تعریف کرد. برای مثال اگر چندجمله ای بالا را بخواهیم به صورت تابع تعریف کنیم، خواهیم داشت:

 

>>syms a b c x y
>>f = sym('a*x^2 + b*x + c')
f =
a*x^2 + b*x + c


نحوه دیگر تعریف تابع نمادین با دستور syms است:

 

>>syms f(x,y)
>>f(x,y) = sqrt(x^2+y^2)


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

 

>>syms a b c x y
>>f =sym('a*x^2 + b*x + c');
>>subs(f,x,1)
ans =
a + b + c
>>subs(f,x,2)
ans =
4*a + 2*b + c
>>subs(f,[x a b c],[2 1 2 3])
ans =
11


دستور subs که مخفف substitute یا جایگذاری است، عمل جایگذاری مقادیر دلخواه که می‌ توانند یک بردار هم باشند را به ترتیب انجام می‌ دهد.

 

>>syms f(x,y)
>>f(x,y) = sqrt(x^2+y^2);
>>f(1,2)
ans =
5^(1/2)


پیروز و موفق باشید

 

 


ادامه حیات سایت جاواپرو به حمایت مالی (دونیت) از طرف شما کاربر عزیز بستگی دارد....


 

جلسه نوزدهم | محاسبات نمادین در متلب

 

فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)

 

 

لینک دانلود آموزش رایگان اندروید

لینک دانلود

 

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
زودتر از دیگران از جدیدترین مطالب آموزشی برنامه نویسی جاواپرو اطلاع پیدا کن
 شاید برای شما کم اهمیت باشد; اما حمایت مالی به جاواپرو جان می‌دهد
سوالات متداول برنامه نویسی
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی