دقت کنید مولفه X بردار گرادیان مشتق جزیی تابع نسبت به X است و این موضوع در مورد دو متغیر دیگر نیز صادق است. دقت کنید که گرادیان به صورت یک عملگر هم می تواند بر روی تابع اعمال شود.
اگر بخواهیم جهتی بیابیم که به سمت افزایش تابع حرکت کنیم باید مختصات کنونی را (3,4,5) درون گرادیان تابع قرار دهیم.
بنابراین جهت این بردار جدید (1,8,75) قطب نمای ما در جهت افزایش مقدار تابع است. در این مثال عنصر x عملا چیز زیادی به مقدار تابع اضافه نمیکند: مشتق جزیی این بخش همواره 1 است.
کاربرد واضح گرادیان یافتن بیشینه/کمینه توابع چند متغیره است. کاربرد دیگری که کمتر به چشم میخورد یافتن بیشینه توابع مقید است: تابعی که مقادیر x و y آن باید در یک دامنه خاصی باشند، برای مثال یافتن بیشینه یک تابع که تمام دامنه آن درون یک دایره تعریف شده است. حل چنین مسائلی نیازمند اینه که به پیر ریاضیات یعنی لاگرانژ توسل کنیم. اما از من میشنوید فعلا از گرادیان لذت ببرید.
خلاصه همه مطالب:
1⃣گرادیان فرم کلی تری ازمشتق است.
2⃣گرادیان جهت بیشترین افزایش را مشخص میکند.
3⃣گرادیان را دنبال کنید، به بیشینه محلی خواهید رسید. مطمئن باشید.
#For_all, #Gradient
@MatlabTips
کاربرد واضح گرادیان یافتن بیشینه/کمینه توابع چند متغیره است. کاربرد دیگری که کمتر به چشم میخورد یافتن بیشینه توابع مقید است: تابعی که مقادیر x و y آن باید در یک دامنه خاصی باشند، برای مثال یافتن بیشینه یک تابع که تمام دامنه آن درون یک دایره تعریف شده است. حل چنین مسائلی نیازمند اینه که به پیر ریاضیات یعنی لاگرانژ توسل کنیم. اما از من میشنوید فعلا از گرادیان لذت ببرید.
خلاصه همه مطالب:
1⃣گرادیان فرم کلی تری ازمشتق است.
2⃣گرادیان جهت بیشترین افزایش را مشخص میکند.
3⃣گرادیان را دنبال کنید، به بیشینه محلی خواهید رسید. مطمئن باشید.
#For_all, #Gradient
@MatlabTips
🔵گرادیان از مفهوم تا تئوری🔵
سطح پیچیدگی: 🌕🌑🌑🌑🌑
یش نیاز: (آشنایی اندک با میدان های برداری)
برای: همه
📝هدف از این پست: (تفهیم گرادیان به شیوه ای ساده و روان)
🖊بخش چهارم - یک مثال
می خواهیم گرادیان تابع زیر را که دارای یک مینیمم و یک ماکزیمم است بصورت گرافیکی در متلب نمایش دهیم. برای نمایش بردارهای گرادیان همانند رسم فضای میدان برداری از دستور quiver استفاده می کنیم. دقت کنیدکه چگونه بردارهای گرادیان به سمت بیشترین افزایش حرکت کرده اند. اگر در هر نقطه از این صفحه بردارهای گرادیان را دنبال کنید حتما به بیشینه میرسید.
#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
آغاز شمایید و سرانجام شمایید!
آن صبح نخستین بهاری که ز شادی
می آورد از چلچله پیغام، شمایید!
خورشید گر از بام فلک عشق فشاند،
خورشید شما، عشق شما، بام شمایید!
عشق از نفس گرم شما تازه کند جان
افسانه ی بهرام و گل اندام شمایید!
ایّام ز دیدار شمایند مبارک
نوروز بمانید که ایّام شمایید!
#مولانا
@hafshambe
🔵دستوری به نام quiver🔵
سطح پیچیدگی: 🌕🌑🌑🌑🌑
پیش نیاز: (آشنایی با توابع ساده در متلب)
برای: متوسط
📝هدف از این پست: (تشریح دستوری برای رسم میدان های برداری)
این یه دستور خیلی پرکاربرد توی بحث رسم مسائل مربوط به میدان های برداری است. مثل بردارهای سرعت، بردارهای میدان مغناطیسی، گرادیان، مشتقات جهتی و ... . همه ما میدونیم که برای رسم یه پیکان بر روی کاغذ به دو تا نقطه نیاز داریم. نقطه ابتدایی پیکان و نقطه انتهایی آن. این دستور هم متناسب با نقاطی که میگیرد یک سری پیکان رسم میکند. پس این دستورباید در حالت عادی 4 ورودی داشته باشد:
نقاط ابتدایی پیکان x,y و u,v اندازه بردارها در دو جهت x و y هستند. برای مثال دستور زیر را وارد کنید:
همچین دستوری یک بردار که از نقطه 1,1 شروع میشود و اندازه مولفه افقی آن 1 و اندازه مولفه عمودی آن 0.5 است را رسم میکند.
سطح پیچیدگی: 🌕🌑🌑🌑🌑
پیش نیاز: (آشنایی با توابع ساده در متلب)
برای: متوسط
📝هدف از این پست: (تشریح دستوری برای رسم میدان های برداری)
این یه دستور خیلی پرکاربرد توی بحث رسم مسائل مربوط به میدان های برداری است. مثل بردارهای سرعت، بردارهای میدان مغناطیسی، گرادیان، مشتقات جهتی و ... . همه ما میدونیم که برای رسم یه پیکان بر روی کاغذ به دو تا نقطه نیاز داریم. نقطه ابتدایی پیکان و نقطه انتهایی آن. این دستور هم متناسب با نقاطی که میگیرد یک سری پیکان رسم میکند. پس این دستورباید در حالت عادی 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 می آید. برای مثال کد زیر بردارهایی از یک میدان را میسازد که مولفه های افقی و قائم آن از توابع مثلثاتی است.
در این کد l طول هر بردار است که بخش بر مولفه های بردار شده است. تا در تمام صفحه بردارها به یک اندازه دیده شوند(نرمالیزه شده اند).
سوال؟ اگر در کد بالا خط آخر را کامنت کنیم، چه اتفاقی می افتد؟
#For_intermediate , #quiver, #Gradient , #directional_field
@MatlabTips
واقعیت اینه که متلب در حالت پیش فرض این بردارها را بصورت خودکار مقیاس میکنه. در هر صورت نسبت دو مولفه یکسان خواهد بود. برای اینکه مقیاس را خودتان به صورت دستی وارد کنید، ورودی پنجمی نیاز است.
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
🔵اندیس دهی با استفاده از بردارهای منطقی🔵
سطح پیچیدگی: 🌓🌑🌑🌑🌑
پیش نیاز: آشنایی اندک با بردار منطقی
برای: مبتدی
📝هدف از این پست:(یادگیری استفاده از ابزار قدرتمند بردارهای منطقی در متلب)
اگر بخواهید به عناصر یک بردار دسترسی پیدا کنید، چه کار میکنید؟ همه میدانیم که با یک عدد صحیح مثبت می توانیم به خانه های یک بردار اشاره کنیم.
اما دستور زیر به چه معناست؟
در اینجا با استفاده از یک بردار منطقی، المان های خاصی از این بردار را جدا کردیم. جاهایی که بردار منطقی 1 هست یعنی عنصر را بگیر و در غیر اینصورت نه.
شما میتوانید با استفاده از همین تکنیک روشی فوق العاده زیبا برای حذف یکسری المان از بردار استفاده کنید.
با این کار توانستیم عناصر بیشتر از 3 را از بردار a جدا کنیم. حتما a>3 را در متلب اجرا کنید و با استفاده از دستور whos ببینید خروجی از چه کلاسی است.
#Logical_vectors, #For_beginner
@MatlabTips
سطح پیچیدگی: 🌓🌑🌑🌑🌑
پیش نیاز: آشنایی اندک با بردار منطقی
برای: مبتدی
📝هدف از این پست:(یادگیری استفاده از ابزار قدرتمند بردارهای منطقی در متلب)
اگر بخواهید به عناصر یک بردار دسترسی پیدا کنید، چه کار میکنید؟ همه میدانیم که با یک عدد صحیح مثبت می توانیم به خانه های یک بردار اشاره کنیم.
a =1:10
a =
1 2 3 4 5 6 7 8 9 10
>> a(2)
ans =
2
>> a([1 3 2])
ans =
1 3 2
اما دستور زیر به چه معناست؟
>> a(logical([1 0 0 1]))
ans =
1 4
در اینجا با استفاده از یک بردار منطقی، المان های خاصی از این بردار را جدا کردیم. جاهایی که بردار منطقی 1 هست یعنی عنصر را بگیر و در غیر اینصورت نه.
شما میتوانید با استفاده از همین تکنیک روشی فوق العاده زیبا برای حذف یکسری المان از بردار استفاده کنید.
a(a>3)
ans =
4 5 6 7 8 9 10
با این کار توانستیم عناصر بیشتر از 3 را از بردار a جدا کنیم. حتما a>3 را در متلب اجرا کنید و با استفاده از دستور whos ببینید خروجی از چه کلاسی است.
#Logical_vectors, #For_beginner
@MatlabTips
🔵 معادلات دیفرانسیل - قسمت اول: تاریخچهای مختصر 🔵
سطح پیچیدگی: 🌑🌑🌑🌑🌑
پیش نیاز: علاقه
برای: همه
📝هدف از این پست: (چگونگی به وجود آمدن چند معادله دیفرانسیل معروف)
معادلات دیفرانسیل برای اولین بار توسط نیوتن و لایب نیتز و با ابداع حسابان پا به عرصه وجود گذاشت. نیوتن در بخش دوم از کارش در سال 1672 میلادی سه نوع از معادلات دیفرانسیل را لیست کرد:
سطح پیچیدگی: 🌑🌑🌑🌑🌑
پیش نیاز: علاقه
برای: همه
📝هدف از این پست: (چگونگی به وجود آمدن چند معادله دیفرانسیل معروف)
معادلات دیفرانسیل برای اولین بار توسط نیوتن و لایب نیتز و با ابداع حسابان پا به عرصه وجود گذاشت. نیوتن در بخش دوم از کارش در سال 1672 میلادی سه نوع از معادلات دیفرانسیل را لیست کرد: