MatlabTips
891 subscribers
462 photos
73 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
میتوانیم در هر لحظه سه مختصه (مثلا "3,5,2") وارد کنیم و صفحه نمایش گرادیان دما در این نقطه به ما نشان دهد.
مراقب باشید که مختصات و گرادیان را با یکدیگر قاطی نکنید. مختصات مکان جاری بر روی محورx-y-z است. در حالی که گرادیان جهت حرکت از مکان جاری (به سمت بالا، پایین، چپ، راست و ...) می باشد.

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

گرادیان در هر مکان به بیشترین افزایش آن تابع اشاره میکند. در این مورد خاص، تابع ما دما را اندازه گیری میکند. بنابراین، گرادیان به ما خواهد گفت که خرگوش را چگونه به مکانی هدایت کنیم که بیشترین دما را داشته باشد تا این خرگوش سریعتر کباب شود. توجه کنید که گرادیان مختصات به ما نمیدهد، تنها جهت حرکت به سمت افزایش دما را میدهد.
از نقطه (3,5,2) شروع کرده و گرادیان را چک میکنیم. در این مورد خاص، گرادیان (3,4,5) است. دقت کنید که قرار نیست ما 3 واحد به راست، 4 واجد به عقب 5 واحد به سمت بالا حرکت کنیم. گرادیان جهت است و ما در این راستا کمی حرکت میکنیم و دوباره گرادیان را چک میکنیم. این پروسه را بارها و بارها تکرار میکنیم تا هر بار به مکان های گرمتری برسیم.
نهایتا، به گرم ترین بخش اجاق میرسی و اینجا جایی است که باید بمانیم.
اما صبر کنید، خرگوش را نخورید😁😁

قبل اینکه خرگوش را بخورید، نیم نگاهی به گرادیان بیندازیم. هنگامی که ما به گرم ترین نقطه میرسیم، گرادیان در آن نقطه چقدر است؟ صفر. هیچی. چرا؟؟ خوب وقتی که در مکان ماکزیمم هستید، هیچ جهتی وجود ندارد که به بیشترین افزایش اشاره کند. هر جهتی منجر به کاهش دما میشود. درست مثل اینکه بر روی قله کوه ایستاده اید: هر جهتی که حرکت کند به سمت دره خواهد بود. گرادیان صفر به شما می گوید که در نقطه ماکزیمم هستید و بهتر از این نمیشود.
اما اگر چندین ماکزیمم باشد چه؟ مانند دو قله کنار هم؟ برای اینکه بالاترین نقطه را بیابید، باید ابتدا قدری به سمت پایین حرکت کنید.
پیدا کردن ماکزیمم در توابع تک متغیره به معنی پیدا کردن تمام مکان هایی است که مشتق در آن صفر است. اگر بیاد داشته باشید، مشتق معمولی تنها مینیمم و ماکزیمم محلی را مشخص میکرد و برای بدست آوردن مین و ماکس مطلق باید تمام نقاط بحرانی را در تابع چک میکردیم.
همین اصل نیز برای گرادیان که فرم کلی تری از مشتق است حاکم است. می بایست چندین مکان را که گرادیان در آنها صفر است بیابید و سپس این نقاط را در تابع تست کنید.
نویسنده: (#جبار_کمالی)
#For_all, #Gradient
@MatlabTips
🔵گرادیان از مفهوم تا تئوری🔵
سطح پیچیدگی: 🌕🌑🌑🌑🌑
یش نیاز: (آشنایی اندک با میدان های برداری)
برای: همه
📝هدف از این پست: (تفهیم گرادیان به شیوه ای ساده و روان)
🖊بخش سوم - ریاضیات

ما تعریف گرادیان را میدانیم: مشتق هر متغیر از تابع. نماد گرادیان یک دلتا سر و ته شده است و به آن "دل" می گویند(اگه بخایم خیلی غیرفنی صحبت کنیم این جمله خیلی هم بی راه نیست. دلتا نشان دهنده تغییرات یک متغیر است و گرادیان هم تغییر همه متغیرهاست). اگر تابع سه متغیره را در نظر بگیریم:
دقت کنید مولفه X بردار گرادیان مشتق جزیی تابع نسبت به X است و این موضوع در مورد دو متغیر دیگر نیز صادق است. دقت کنید که گرادیان به صورت یک عملگر هم می تواند بر روی تابع اعمال شود.
اگر بخواهیم جهتی بیابیم که به سمت افزایش تابع حرکت کنیم باید مختصات کنونی را (3,4,5) درون گرادیان تابع قرار دهیم.
بنابراین جهت این بردار جدید (1,8,75) قطب نمای ما در جهت افزایش مقدار تابع است. در این مثال عنصر x عملا چیز زیادی به مقدار تابع اضافه نمیکند: مشتق جزیی این بخش همواره 1 است.
کاربرد واضح گرادیان یافتن بیشینه/کمینه توابع چند متغیره است. کاربرد دیگری که کمتر به چشم میخورد یافتن بیشینه توابع مقید است: تابعی که مقادیر x و y آن باید در یک دامنه خاصی باشند، برای مثال یافتن بیشینه یک تابع که تمام دامنه آن درون یک دایره تعریف شده است. حل چنین مسائلی نیازمند اینه که به پیر ریاضیات یعنی لاگرانژ توسل کنیم. اما از من میشنوید فعلا از گرادیان لذت ببرید.

خلاصه همه مطالب:
1⃣گرادیان فرم کلی تری ازمشتق است.
2⃣گرادیان جهت بیشترین افزایش را مشخص میکند.
3⃣گرادیان را دنبال کنید، به بیشینه محلی خواهید رسید. مطمئن باشید.
#For_all, #Gradient
@MatlabTips
🔵گرادیان از مفهوم تا تئوری🔵
سطح پیچیدگی: 🌕🌑🌑🌑🌑
یش نیاز: (آشنایی اندک با میدان های برداری)
برای: همه
📝هدف از این پست: (تفهیم گرادیان به شیوه ای ساده و روان)
🖊بخش چهارم - یک مثال

می خواهیم گرادیان تابع زیر را که دارای یک مینیمم و یک ماکزیمم است بصورت گرافیکی در متلب نمایش دهیم. برای نمایش بردارهای گرادیان همانند رسم فضای میدان برداری از دستور quiver استفاده می کنیم. دقت کنیدکه چگونه بردارهای گرادیان به سمت بیشترین افزایش حرکت کرده اند. اگر در هر نقطه از این صفحه بردارهای گرادیان را دنبال کنید حتما به بیشینه میرسید.
#For_all, #Gradient
@MatlabTips
نمودار تابع
کد برنامه:
v = -2:0.2:2;
[x,y] = meshgrid(v);
z = x .* exp(-x.^2 - y.^2);
[px,py] = gradient(z,.2,.2);
contour(x,y,z)
hold on
quiver(v,v,px,py)
hold off
بردار گرادیان به همراه کانتور
Forwarded from هفشمبه
نوروز بمانید که ایّام شمایید!
آغاز شمایید و سرانجام شمایید!

آن صبح نخستین بهاری که ز شادی
می آورد از چلچله پیغام، شمایید!

خورشید گر از بام فلک عشق فشاند،
خورشید شما، عشق شما، بام شمایید!

عشق از نفس گرم شما تازه کند جان
افسانه ی بهرام و گل اندام شمایید!

ایّام ز دیدار شمایند مبارک
نوروز بمانید که ایّام شمایید!

#مولانا
@hafshambe
🔵دستوری به نام quiver🔵
سطح پیچیدگی: 🌕🌑🌑🌑🌑
پیش نیاز: (آشنایی با توابع ساده در متلب)
برای: متوسط
📝هدف از این پست: (تشریح دستوری برای رسم میدان های برداری)

این یه دستور خیلی پرکاربرد توی بحث رسم مسائل مربوط به میدان های برداری است. مثل بردارهای سرعت، بردارهای میدان مغناطیسی، گرادیان، مشتقات جهتی و ... . همه ما میدونیم که برای رسم یه پیکان بر روی کاغذ به دو تا نقطه نیاز داریم. نقطه ابتدایی پیکان و نقطه انتهایی آن. این دستور هم متناسب با نقاطی که میگیرد یک سری پیکان رسم میکند. پس این دستورباید در حالت عادی 4 ورودی داشته باشد:
Quiver(x,y,u,v)

نقاط ابتدایی پیکان x,y و u,v اندازه بردارها در دو جهت x و y هستند. برای مثال دستور زیر را وارد کنید:
Quiver(1,1,1,0.5)

همچین دستوری یک بردار که از نقطه 1,1 شروع میشود و اندازه مولفه افقی آن 1 و اندازه مولفه عمودی آن 0.5 است را رسم میکند.
ممکن است براتون این سوال پیش بیاد که چرا در مولفه افقی به اندازه 0.9 رفتیم جلو و در راستای قائم 0.45؟؟ قرار ما این نبود که؟
واقعیت اینه که متلب در حالت پیش فرض این بردارها را بصورت خودکار مقیاس میکنه. در هر صورت نسبت دو مولفه یکسان خواهد بود. برای اینکه مقیاس را خودتان به صورت دستی وارد کنید، ورودی پنجمی نیاز است.
Quiver(1,1,1,0.5,1)
شما می توانید عدد 2 را به جای مقیاس قرار دهید تا طول بردار دو برابر اندازه واقعی شود.
ورودی های quiver می توانند اسکالر، بردار یا ماتریس باشند(لازم به ذکر نیست که باید ابعادشان برابر باشد). معمولا این دستور در کنار دستور meshgrid می آید. برای مثال کد زیر بردارهایی از یک میدان را میسازد که مولفه های افقی و قائم آن از توابع مثلثاتی است.
x = 0:0.1:2*pi;

y = 0:0.1:2*pi;

[x,y] = meshgrid(x,y);

u = sin(x) .* x;

v = cos(y) .* y;

l = sqrt(v.^2+u.^2);

quiver(x,y,u./l,v./l)

axis tight

در این کد l طول هر بردار است که بخش بر مولفه های بردار شده است. تا در تمام صفحه بردارها به یک اندازه دیده شوند(نرمالیزه شده اند).

سوال؟ اگر در کد بالا خط آخر را کامنت کنیم، چه اتفاقی می افتد؟
#For_intermediate , #quiver, #Gradient , #directional_field
@MatlabTips