محاسبات سیمبولیک در متلب
محاسبات نمادین یا سیمبولیک یکی از قابلیت های فوق العاده نرم افزار متلب است که در بسیاری از برنامه ها و پروژه ها می تواند مفید باشد.
تولباکس محاسبات ریاضی نمادین یا سیمبولیک (Symbolic Math Toolbox) ابزارهای متنوعی برای تعریف و حل معادلات نمادین و حتی رسم نمودار از آنها به ما می دهد. اما اگر منظور از محاسبات نمادین را نمی دانید، اصلا نگران نباشید. در ادامه معرفی دقیقی از این موضوع خواهیم داشت.
محاسبات نمادین یا سیمبولیک در متلب چیست؟
در حالت عادی وقتی یک متغیر را در متلب تعریف می کنیم، باید یک مقدار هم به آن نسبت بدهیم. در ادامه اگر از آن متغیر استفاده کنیم، متلب از مقدار عددی متغیر در محاسبات استفاده می کند. مثلا فرض کنید. متغیر a را برابر 2 قرار داده ایم. اگر f را بر حسب a تعریف کنیم، متلب برای محاسبه مقدار f به جای a عدد 2 را جاگذاری می کند و مقدار f را به دست می آورد. یعنی به این صورت:
خب طبیعی هم هست. وقتی a یک متغیر از نوع عددی باشد، حاصل ضرب 3 در a هم یک عدد خواهد بود.
اما اگر متغیر a را به صورت نمادین تعریف کنیم دیگر نیازی نیست مقداری به آن اختصاص دهیم. در همه عباراتی که a حضور داشته باشد، به عنوان یک پارامتر عمل می کند. به مثال زیر توجه کنید تا منظورم را بهتر متوجه شوید.
مثال: a را به صورت یک متغیر سیمبولیک یا نمادین تعریف می کنیم. ( نگران نباشید! در ادامه درباره نحوه تعریف به صورت سیمبولیک در متلب بحث خواهیم کرد. اینجا صرفا به کاربرد این نوع متغیرها دقت کنید.)
این بار دیگر a مقداری داخل خودش ندارد. بنابر این وقتی آن را در عدد 3 ضرب کنیم، حاصل به صورت یک عدد به دست نخواهد آمد.
در خیلی از کاربردهای ریاضی مخصوصا در مباحث جبری، اتحاد ها، مشتق گیری ها و انتگرال گیری های نامعین باید از محاسبات نمادین یا سیمبولیک در متلب استفاده کنیم.
تعریف متغیرها در متلب به صورت سیمبولیک
برای تعریف چند متغیر به صورت سیمبولیک در متلب، از دستور syms استفاده می کنیم. پس از دستور syms، نام همه متغیرهایی که قصد داریم آنها را به صورت سیمبولیک یا نمادین تعریف کنیم، با فاصله می آوریم.
مثال: 3 متغیر x و y و z را به صورت متغیرهای سیمبولیک تعریف می کنیم:
حالا می توانیم عبارت های جبری مورد نیاز خود را بر اساس این سه متغیر بنویسیم. مثلا:
ممکن است به اشتباه فکر کنید که چه نیازی به تعریف یک متغیر به صورت سیمبولیک وجود دارد؟ پاسخ این است که برای استفاده از یک متغیر در یک عبارت، یا باید قبلا به آن مقدار داده باشید ( یعنی از آن به صورت یک متغیر عددی استفاده کنید) یا اینکه آن را به صورت یک متغیر سیمبولیک تعریف کرده باشید. در غیر این صورت با خطا مواجه می شوید. به مثال زیر توجه کنید.
مثال: یکی از عبارات بالا را بدون تعریف متغیر سیمبولیک وارد می کنیم.
مشاهده می کنید که یک error ایجاد شد و متلب متغیرهایی را که استفاده کردیم شناسایی نکرد.
تعریف یک تابع بر حسب متغیر های نمادین
فرض کنید می خواهیم تابع f را بر حسب x بنویسیم تا بتوانیم از آن مشتق بگیریم، انتگرال بگیریم و با مقدار دهی به x ، مقدار f را به دست آوریم. این کار با تابع symfun در متلب به سادگی انجام می شود.
نحوه استفاده از این تابع در مثال زیر مشخص شده است. در بخش های بعدی خواهیم دید که تعریف یک تابع به این صورت چه کاربردهای زیادی خواهد داشت.
مثال: ابتدا متغیر x را به صورت یک متغیر سیمبولیک در متلب تعریف می کنیم. حالا نوبت تعریف تابع f است. برای تعریف تابع f از دستور symfun در متلب استفاده می کنیم. باید دو ورودی به دستور symfun معرفی کنیم. ورودی اول ضابطه تابع f بر حسب x است و ورودی دوم همه متغیرهایی است که برای ساخت تابع f از آنها استفاده می کنیم که در اینجا همان x است.
مثال: حالا می خواهیم یک تابع با دو متغیر در متلب تعریف کنیم. ابتدا متغیرها را ( x و y) به عنوان متغیرهای سیمبولیک در متلب تعریف می کنیم و سپس به صورت زیر از آنها برای ساخت تابع h استفاده می کنیم. توجه کنید برای وارد کردن x و y به صورت همزمان در آرگومان دوم تابع symfun باید از دو کروشه استفاده کنیم و آنها را به صورت برداری بنویسیم.
با استفاده از تابع class مشخص می شود که هم متغیرها و هم تابع h از نوع سیمبولیک در متلب هستند. x و y متغیرهای سیمبولیک و از نوع sym هستند ولی h یک تابع سیمبولیک و از نوع symfun است.
مثال: نوع متغیر های x و y و تابع h را در مثال قبلی به دست می آوریم.
برای تعریف یک تابع بر اساس متغیرهای سیمبولیک یک راه دیگر هم وجود دارد. می توانیم از ابتدا کل تابع را به همراه متغیر های آن به صورت سیمبولیک تعریف کنیم. سپس در گام بعدی ضابطه تابع را مشخص نماییم.
مثال: تابع h را که در مثال های قبلی تعریف کردیم، اینجا به روشی دیگر و بدون استفاده از تابع symfun تعریف می کنیم.
همانطور که می بینید نتیجه با حالت قبل تفاوتی ندارد. در واقع در اینجا هم تابع h و هم متغیرهای داخلش یعنی x و y را به صورت همزمان به صورت سیمبولیک تعریف کرده ایم.
اختصاص مقدار به متغیرهای سیمبولیک در متلب
بعد از اینکه ضابطه یک تابع بر حسب تعدادی از متغیرها را تعریف می کردیم، می توانیم مقادیری را به متغیرهای سیمبولیک اختصاص بدهیم و مقدار کل تابع را به ازای اعداد اختصاص داده شده محاسبه کنیم.
مثال: تابع h را بر حسب x و y تعریف می کنیم. سپس به جای x مقدار 2 و به جای y مقدار 3 را قرار می دهیم. در واقع مقدار تابع h را به ازای x=2 و y=3 به دست می آوریم.
مثال: مقدار تابع h را به ازای 4 مقدار مختلف x و y به دست می آوریم.
ابتدا باید مقدارهای مختلف x و y را به صورت یک بردار 4 تایی وارد کنیم و سپس به روش زیر مقدار تابع h را با توجه به آنها محاسبه نماییم.
در واقع در بردار نهایی به دست آمده برای تابع h، المان اول (یعنی 0) از جایگذاری المان اول x (یعنی 5) و المان اول y (یعنی 0) در ضابطه تابع h به دست آمده است. همین طور برای المان های بعدی. پس به این طریق می توانیم مقدار تابع های سیمبولیک را به ازای بازه ای از اعداد مدنظرمان به دست آوریم.
تا اینجا با محاسبات سیمبولیک یا نمادین در متلب آشنا شدیم. همچنین یاد گرفتیم که چگونه یک تابع بر اساس این متغیرها تعریف کنیم و همچنین چگونه به این این متغیرها مقدارهای عددی دلخواهمان را نسبت دهیم. در آموزش بعدی به مبحث مهم مشتق گیری و انتگرال گیری از تابع های سیمبولیک می رسیم. توصیه می کنم آن را هم از دست ندهید.
اگر از مبحث این جلسه سوالی دارید حتما در انتهای این پست آن را مطرح کنید تا در سریع ترین زمان به شما پاسخ دهیم.