خیلی از دانشجویان در درک مفاهیم انتزاعی چون گرادیان، مشتق جهتی و ... عاجز هستند. همه ما فرمول هایی این چنینی در کتب دانشگاهی مطالعه(یا بهتر بگویم حفظ کرده ایم) و بدون اینکه بدانیم در بطن ماجرا چه اتفاقی می افتد از دستورات متلب هم برای محاسبه این مفاهیم استفاده میکنیم. بد نیست که یک بار این مفهوم مرور شود. سعی میکنیم در پنج پست جداگانه این مفهوم منتقل شود.
گرادیان حالت کلی تری از مشتق، یا نرخ تغییر یک تابع است. در حقیقت گرادیان برداری است که:
۱- جاهایی که تابع بیشترین تغییرات را دارد مشخص میکند.
۲- در بیشینه و کمینه های محلی صفر است (در این نقاط جهتی یافت نمیشود که نشان دهد تابع کاهش یا افزایش می یابد)
اصطلاح گرادیان برای توابعی با چند ورودی یک خروجی (میدان اسکالر) مورد استفاده قرار میگیرد. البته شما می توانید بگویید که یک خط هم گرادیان دارد(شیب خط)، اما حرف من این است که استفاده از گرادیان برای توابع تک متغیره کار بیخودی است.
"گرادیان" به تغییرات تدریجی رنگ هم گفته میشود(کسانی که با فوتوشاپ کار کرده اند یا افرادی که به تغییر رنگ در نمودارهای سه بعدی متلب دقت کرده اند حرف مرا بهتر درک میکنند)، اما در این کانال میخواهیم به تعریف ریاضیاتی گرادیان بپردازیم.
چهار پست بعدی ویژگی گرادیان، یک مثال کاملا ملموس از گرادیان، ریاضی گرادیان و گرادیان در متلب خواهد بود.
حالا که می دانیم گرایان مشتق یک تابع چند متغیره است،پس بیایید به کمک همدیگر ویژگیهای آن را استخراج کنیم.
مشتق معمولی(مشتق در صفحه) به ما نرخ تغییر یک متغیر (عموما با X نشان می دهیم) می دهد. برای مثال dF/dX به ما میگوید که تابع F به ازای تغییر در مقدار X به چه میزان تغییر میکند. اما اگر تابعی بیش از یک متغیر داشته باشد، چندین مشتق نیز دارد: مقدار تابع با "بالا-پایین کردن" X و y تغییر میکند.
میتوانیم این نرخ های چندگانه از تغییر را بوسیله یک بردار نمایش دهیم که هر المان از این بردار نماینده یک مشتق باشد. بنابراین، تابعی که سه متغیر دارد، گرادیانی با سه عنصر خواهد داشت:
تابع F(x) تابعی یک متغیره است و یک مشتق دارد: dF/dx
تابع F(x,y,z) تابعی سه متغیره است و سه مشتق دارد:(dF/dx,dF/dy,dF/dz)
گرادیان یک تابع چندمتغیره، برای هر جهتی از تابع یک عنصر دارد.
و درست شبیه مشتق معمولی، گرادیان به جهت بیشترین افزایش اشاره میکند. حالا که ما چندین جهت داریم، جهت بیشترین افزایش دیگر یک خط رو به جلو یا عقب در امتداد محور X (آنگونه که در توابع تک متغیره بود) نیست.
اگر دو متغیر داشته باشیم، آنگاه گرادیان (در این حالت دو بعدی است) می تواند هر جهتی در فضای سه بعدی مشخص کند که به سمت افزایش تابع مورد نظر ما حرکت میکند.
فرض کنید یک اجاق جادویی داریم که مختصات هر نقطه از فضای آن بر رویش نوشته می شود و یک صفحه نمایش مخصوص هم دارد:
میتوانیم در هر لحظه سه مختصه (مثلا "3,5,2") وارد کنیم و صفحه نمایش گرادیان دما در این نقطه به ما نشان دهد.
مراقب باشید که مختصات و گرادیان را با یکدیگر قاطی نکنید. مختصات مکان جاری بر روی محورx-y-z است. در حالی که گرادیان جهت حرکت از مکان جاری (به سمت بالا، پایین، چپ، راست و ...) می باشد.
حالا فرض کنید ما از تخیلاتمون کمک میگیریم و یه خرگوش زنده رو میندازیم تو اجاق (چون که گوشت خرگوش خوشمزس). این خرگوش را در نقطه ای تصادفی درون اجاق قرار می دهیم و هدف ما این است که در سریعترین زمان ممکن کبابش کنیم. اینجاست که گرادیان به داد ما خواهد رسید.
گرادیان در هر مکان به بیشترین افزایش آن تابع اشاره میکند. در این مورد خاص، تابع ما دما را اندازه گیری میکند. بنابراین، گرادیان به ما خواهد گفت که خرگوش را چگونه به مکانی هدایت کنیم که بیشترین دما را داشته باشد تا این خرگوش سریعتر کباب شود. توجه کنید که گرادیان مختصات به ما نمیدهد، تنها جهت حرکت به سمت افزایش دما را میدهد.
از نقطه (3,5,2) شروع کرده و گرادیان را چک میکنیم. در این مورد خاص، گرادیان (3,4,5) است. دقت کنید که قرار نیست ما 3 واحد به راست، 4 واجد به عقب 5 واحد به سمت بالا حرکت کنیم. گرادیان جهت است و ما در این راستا کمی حرکت میکنیم و دوباره گرادیان را چک میکنیم. این پروسه را بارها و بارها تکرار میکنیم تا هر بار به مکان های گرمتری برسیم.
نهایتا، به گرم ترین بخش اجاق میرسی و اینجا جایی است که باید بمانیم.
اما صبر کنید، خرگوش را نخورید??
قبل اینکه خرگوش را بخورید، نیم نگاهی به گرادیان بیندازیم. هنگامی که ما به گرم ترین نقطه میرسیم، گرادیان در آن نقطه چقدر است؟ صفر. هیچی. چرا؟؟ خوب وقتی که در مکان ماکزیمم هستید، هیچ جهتی وجود ندارد که به بیشترین افزایش اشاره کند. هر جهتی منجر به کاهش دما میشود. درست مثل اینکه بر روی قله کوه ایستاده اید: هر جهتی که حرکت کند به سمت دره خواهد بود. گرادیان صفر به شما می گوید که در نقطه ماکزیمم هستید و بهتر از این نمیشود.
اما اگر چندین ماکزیمم باشد چه؟ مانند دو قله کنار هم؟ برای اینکه بالاترین نقطه را بیابید، باید ابتدا قدری به سمت پایین حرکت کنید.
پیدا کردن ماکزیمم در توابع تک متغیره به معنی پیدا کردن تمام مکان هایی است که مشتق در آن صفر است. اگر بیاد داشته باشید، مشتق معمولی تنها مینیمم و ماکزیمم محلی را مشخص میکرد و برای بدست آوردن مین و ماکس مطلق باید تمام نقاط بحرانی را در تابع چک میکردیم.
همین اصل نیز برای گرادیان که فرم کلی تری از مشتق است حاکم است. می بایست چندین مکان را که گرادیان در آنها صفر است بیابید و سپس این نقاط را در تابع تست کنید.