تابع درون یاب – Mathematica

تاحالا خیلی شده تو حل بعضی مسائل مخصوصاَ در حل عددی (NDSolve) به جوابی رسیدیم مثلاَ اینجوری :

InterpolatingFunction [{{ 0. , 50. }} , <>]

خیلی‌ها از من سئوال داشتن که این چیه ؟ ببینید وقتی متمتیکا یه معادله رو حل عددی میکنه جوابهایی رو بدست میاره اما این جوابها باهم رابطه‌ی منطقی‌ای ندارن که متمتیکا بتونه ازش یه تابع بیرون بکشه ، پس کل این اعدادی رو که بدست آورده یه جا جمع میکنه و اسمشونو تابع درون یاب یا InterpolatingFunction میزاره . حالا هروقت شما بخاید یه مقداری از این تابع رو فراخوانی کنید متمتیکا میره با تو جه به عددی که بهش دادید مقدار تابع منتسب به این عدد رو پیدا و بهتون نمایش میده .مثلاَ وقتی شما این تابع درون یاب رو پلات میکنید متمتیکا از اول تا آخر بازه‌ی پلات شما یکی یکی عدد تو تابع درون یابش میزاره و مقادیر تابع تو این نقطه‌ها رو بدست میاره و نمایش میده . البته تابع درون یاب کاربردهای دیگه‌ای هم داره که تو صیه میکنم حتماَ از تو هلپ برنامه با جستجوی Interpolation اونها رو ببینید . براتون خیلی پیش اومده که شما مثلاَ یک سری زوج عدد دارید که یه اسمی هم به این مجموعه اختصاص دادید و اونو بعداَ در دستورات مختلف استفاده کردید یا اینکه خروجی بعضی از دستورات مثل  Table یه سری عدد به شما داده که بعداَ از این مجموعه اعداد استفاده کردید ؛ اینجاهم شما میتونید به متمتیکا بگید از این اعداد برای شما یک تابع درون یاب استخراج کنه  که من نمونه شو تو برنامه بهتون نشون دادم ، همونطور که میبینید دقت درون یابی متمتیکا انقدر بالاست که وقتی این تابع درون یابی شده رو با تابع اصلی که نقاط تابع درون یابی شده رو تشکیل میدن ، باهم پلات کنید کاملاَ برهم منطبق میشن . این کار 2تا فایده داره یکی اینکه شکل برنامه‌تون زیباتر میشه و شما به جای کار با یک سری اعداد، فقط با یک تابع خوشگل سروکار دارید (حالتی رو در نظر بگیرید که مجموعه اعداد شما به چندهزار عدد برسه ؛ وای چه کسافت کاری‌ای میشه ! ) و فایده‌ی دیگه اینکه تابع درون یاب اعداد شما رو که بصورت گسسته هستند به یک تابع پیوسته تبدیل میکنه ، برنامه رو ببینید ، با اینکه عدد 47/6 توی مجموعه اعداد ما نیست تابع درون یاب خودش میفهمه که مقدار تابع تو این نقطه چقدره .

نکته آخر ومهم در مورد تابع درون یاب اینکه هر وقت خاستید این تابع رو برای کاری مثلاَ پلات فراخوانی کنید حتماَ به بازه‌ای که این تابع در اون تعریف میشه دقت کنید و بیشتر از اون ازش نخاید ، مثلاَ توی جوابی که اول این توضیحات آوردم اگر خارج از بازه‌ی (0,50) از تابع درون یاب فراخانی کنید به شما پیغام خطا میده .

/ 0 نظر / 103 بازدید