🔵نحوه برخورد با مشکل زمان در الگوریتم ها🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: همه
مواقع زیادی پیش می آید که در انجام محاسبات دچار مشکل زمان می شویم. به این معنا که هر قدر روی کاغذ حساب می کنیم طول زمان اجرا به طور بسیار نامعقولی بالا است. اگر با این حالت مواجه شدید احتمالا به ترتیب با مشکلات زیر روبرو هستید:
1- درک نادرستی از مساله خود دارید. بهتر است دوباره به الگوریتم خود فکر کنید. به احتمال زیاد در قسمتی از کار خود به جای روش های بهینه تمام حالت های ممکن را بررسی می کنید. مثلا برای یافتن کوتاه ترین نقطه بین دو مسیر لازم نیست تمام مسیر های بین آنها چک شوند. برای این منظور بهتر است با کسی که بیشتر با موضوع آشناست مشورت کنید یا بیشتر در وب جستجو کنید.
2- اگر تا جای ممکن الگوریتم خودتان را بهینه کرده اید به دنبال راه حل های تقریبی( در صورت امکان) باشید. مثلا در بسیاری از مواقع یک راه حل شبه بهینه (suboptimal) کافی است. برای این منظور باید ادبیات مساله را جستجو کنید و به دنبال این راه حل ها باشید. گاهی اوقات هم می توانید از مجموعه داده خود یک نمونه بگیرید و روی کل آن کار نکنید.
3- اگر راه حل شبه بهینه به درد شما نمی خورد باید سراغ موازی سازی الگوریتم خود بروید. به دقت تمام قسمت های الگوریتم خود را بررسی کنید و ببینید که کدام قسمت ها می توانند به صورت جدا از هم اجرا شوند و تا پایان الگوریتم نیازی به داده های هم ندارند. به طور مثال چک کردن اینکه اعداد یک تا صدهزار کدام ها اول هستند را می توان به تقسیم بازه به تکه های 1000 تایی (یا هر اندازه دیگر) انجام داد زیرا محاسبه اینکه کدام عدد در بازه 1000 تا 2000 اول است ربطی به بازه 13000 تا 14000 ندارد.
4- اگر برنامه شما حتی قابلیت موازی سازی ندارد آنگاه احتمالا به طور ذاتی مساله سریال است مانند محاسبه عددی مساله سه جسم یا بیشتر الگوریتم های محاسبه رقم های پی. حتی ممکن است مساله شما در رده مسائل NP قرار بگیرد که تاکنون راه حل های با پیچیدگی چند جمله ای برای آن ها ارائه نشده است. در این صورت شما به مرز دانش رسیده اید و نباید نگران از ارائه راه حل های تقریبی باشید.
در قسمت بعدی به ارائه چند راه حل برای موازی سازی الگوریتم ها در متلب می پردازیم.
#Parallelization
@MatlabTips
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: همه
مواقع زیادی پیش می آید که در انجام محاسبات دچار مشکل زمان می شویم. به این معنا که هر قدر روی کاغذ حساب می کنیم طول زمان اجرا به طور بسیار نامعقولی بالا است. اگر با این حالت مواجه شدید احتمالا به ترتیب با مشکلات زیر روبرو هستید:
1- درک نادرستی از مساله خود دارید. بهتر است دوباره به الگوریتم خود فکر کنید. به احتمال زیاد در قسمتی از کار خود به جای روش های بهینه تمام حالت های ممکن را بررسی می کنید. مثلا برای یافتن کوتاه ترین نقطه بین دو مسیر لازم نیست تمام مسیر های بین آنها چک شوند. برای این منظور بهتر است با کسی که بیشتر با موضوع آشناست مشورت کنید یا بیشتر در وب جستجو کنید.
2- اگر تا جای ممکن الگوریتم خودتان را بهینه کرده اید به دنبال راه حل های تقریبی( در صورت امکان) باشید. مثلا در بسیاری از مواقع یک راه حل شبه بهینه (suboptimal) کافی است. برای این منظور باید ادبیات مساله را جستجو کنید و به دنبال این راه حل ها باشید. گاهی اوقات هم می توانید از مجموعه داده خود یک نمونه بگیرید و روی کل آن کار نکنید.
3- اگر راه حل شبه بهینه به درد شما نمی خورد باید سراغ موازی سازی الگوریتم خود بروید. به دقت تمام قسمت های الگوریتم خود را بررسی کنید و ببینید که کدام قسمت ها می توانند به صورت جدا از هم اجرا شوند و تا پایان الگوریتم نیازی به داده های هم ندارند. به طور مثال چک کردن اینکه اعداد یک تا صدهزار کدام ها اول هستند را می توان به تقسیم بازه به تکه های 1000 تایی (یا هر اندازه دیگر) انجام داد زیرا محاسبه اینکه کدام عدد در بازه 1000 تا 2000 اول است ربطی به بازه 13000 تا 14000 ندارد.
4- اگر برنامه شما حتی قابلیت موازی سازی ندارد آنگاه احتمالا به طور ذاتی مساله سریال است مانند محاسبه عددی مساله سه جسم یا بیشتر الگوریتم های محاسبه رقم های پی. حتی ممکن است مساله شما در رده مسائل NP قرار بگیرد که تاکنون راه حل های با پیچیدگی چند جمله ای برای آن ها ارائه نشده است. در این صورت شما به مرز دانش رسیده اید و نباید نگران از ارائه راه حل های تقریبی باشید.
در قسمت بعدی به ارائه چند راه حل برای موازی سازی الگوریتم ها در متلب می پردازیم.
#Parallelization
@MatlabTips
🔵برنامه نویسی GPU🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: همه
کامپیوتر های چند هسته ای و تکنولوژی مولتی ترد(Multi-thread) به نرم افزار ها و سیستم عامل های امروزی کمک کرده است که بتوانند چندین کار را به صورت همزمان انجام دهند. این همزمانی تا جایی که مربوط به استفاده از هسته های مختلف برای محاسبه است موازی و بیش از آن یک مساله زمان بندی برای همزمان به نظر رسیدن است. به طور مشخص تر اگر شما یک CPU با چهار هسته دارید می توانید چهار کار را همزمان به معنای واقعی کلمه انجام دهید یک ترد به ازای هر هسته اما بیش از آن ترد های اضافه تنها در زمان بندی ای که توسط سیستم عامل کنترل می شوند به هسته های مختلف برای اجرا می روند. بنابراین برای محاسبات علمی مولتی ترد فقط تا حدودی می تواند کمک کند.
همه ما در کامپیوتر های شخصی خود یک پردازنده گرافیکی (GPU) داریم که از وجود آن غافل هستیم. صد البته که بازی ها و ویدیو هایی که می بینیم توسط این بخش رندر می شوند اما آیا می توان از توان محاسباتی GPU برای محاسبات خودمان استفاده کنیم؟ پاسخ مثبت است. اما چه مزایایی در این محاسبات هست. واحد پردازنده گرافیکی به صورت ذاتی برای انجام محاسبات ماتریسی با حجم بسیار بالا طراحی شده است. دلیل این مورد استفاده بسیار از جبر خطی در محاسبات گرافیکی است. همانطور که در شکل زیر می بینید. GPU بر خلاف CPU ساختار متفاوتی دارد و معمولا چند صد هسته دارد. علاوه بر آن یک حافظه اختصاصی پر سرعت هم در کنار آن وجود دارد. نحوه محاسبه در GPU به صورت زیر است:
1- ابتدا داده هایتان از حافظه اصلی (RAM) به حافظه GPU کپی می شود. این مرحله از همه زمانبر تر است و برای محاسبات کم حجم باعث می شود که سرعت آن در مقایسه با CPU کاهش پیدا کند.
2- پردازندهCPU به واحد GPU دستور یک محاسبه خاص را می دهد.
3- عملیات به صورت موازی در چندین هسته GPU انجام شده و نتیجه در حافظه GPU باقی می ماند.
4- مقدار نتیجه به حافظه اصلی کپی می شود.
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: همه
کامپیوتر های چند هسته ای و تکنولوژی مولتی ترد(Multi-thread) به نرم افزار ها و سیستم عامل های امروزی کمک کرده است که بتوانند چندین کار را به صورت همزمان انجام دهند. این همزمانی تا جایی که مربوط به استفاده از هسته های مختلف برای محاسبه است موازی و بیش از آن یک مساله زمان بندی برای همزمان به نظر رسیدن است. به طور مشخص تر اگر شما یک CPU با چهار هسته دارید می توانید چهار کار را همزمان به معنای واقعی کلمه انجام دهید یک ترد به ازای هر هسته اما بیش از آن ترد های اضافه تنها در زمان بندی ای که توسط سیستم عامل کنترل می شوند به هسته های مختلف برای اجرا می روند. بنابراین برای محاسبات علمی مولتی ترد فقط تا حدودی می تواند کمک کند.
همه ما در کامپیوتر های شخصی خود یک پردازنده گرافیکی (GPU) داریم که از وجود آن غافل هستیم. صد البته که بازی ها و ویدیو هایی که می بینیم توسط این بخش رندر می شوند اما آیا می توان از توان محاسباتی GPU برای محاسبات خودمان استفاده کنیم؟ پاسخ مثبت است. اما چه مزایایی در این محاسبات هست. واحد پردازنده گرافیکی به صورت ذاتی برای انجام محاسبات ماتریسی با حجم بسیار بالا طراحی شده است. دلیل این مورد استفاده بسیار از جبر خطی در محاسبات گرافیکی است. همانطور که در شکل زیر می بینید. GPU بر خلاف CPU ساختار متفاوتی دارد و معمولا چند صد هسته دارد. علاوه بر آن یک حافظه اختصاصی پر سرعت هم در کنار آن وجود دارد. نحوه محاسبه در GPU به صورت زیر است:
1- ابتدا داده هایتان از حافظه اصلی (RAM) به حافظه GPU کپی می شود. این مرحله از همه زمانبر تر است و برای محاسبات کم حجم باعث می شود که سرعت آن در مقایسه با CPU کاهش پیدا کند.
2- پردازندهCPU به واحد GPU دستور یک محاسبه خاص را می دهد.
3- عملیات به صورت موازی در چندین هسته GPU انجام شده و نتیجه در حافظه GPU باقی می ماند.
4- مقدار نتیجه به حافظه اصلی کپی می شود.
پردازنده گرافیکی Nvidia یک سکوی نرم افزاری به نام CUDA معرفی کرده است که به برنامه نویسان اجازه می دهد به راحتی با زبان های C، C++ و Fortran بر روی GPU برنامه نویسی کنند. شرکت Mathwork توانسته با ارائه یک wrapper استفاده از CUDA را بسیار ساده کند. سینتکس استفاده از GPU در متلب به حدی ساده است که در نوع خود مثال زدنی است.( با توجه به حجم پیچیدگی کار با GPU در C).
به طور مثال فرض کنید می خواهیم دو ماتریس تصادفی را در GPU در هم ضرب کنیم. برای این منظور کافی است که از تابع gpuArray استفاده کنید تا ماتریستان از RAM به حافظه GPU منتقل شود. در مرحله بعد به صورت عادی آن ها را در هم ضرب می کنید:
که نتیجه آن بر روی ماشین من 0.926980 ثانیه است. توجه کنید که متلب بسیاری از توابع را برای gpuArray ، overload کرده است. یعنی تابع ضرب در متلب اگر ورودی از جنس gpuArray ببنید آن را در GPU اجرا می کند در غیر این صورت در RAM کل عملیات را انجام میدهد. حال همین محاسبه را بر روی CPU انجام می دهیم:
که زمان آن بر روی ماشین من 2.111759 ثانیه است. در این جا کاملا متوجه میزان اختلاف زمان می شوید. هرچند بر روی حجم بزرگتر داده این اختلاف می تواند اختلاف بین چند دقیقه و چند هفته شود!!
وقتی کد اولی را اجرا می کنید C به صورت gpuArray است و این بدان معناست که خروجی هنوز بر روی حافظه GPU قرار دارد. برای برگرداندن آن به RAM کافی است دستور زیر را اجرا کنیم:
در این صورت D همان C است که در حافظه قرار دارد. بیاد داشته باشید که بسیاری از توابع متلب مانند fft، fft2، abs، cos و غیره برای GPU پیاده سازی و overload شده اند. بنابراین قبل از برگرداندن نتایجتان به حافظه اصلی که بسیار زمانبر تر است بهتر است بیشتر عملیات خود را انجام داده باشید. در زیر لیست کامل تری از توابع پیاده سازی شده را می بینید.
https://uk.mathworks.com/help/distcomp/run-built-in-functions-on-a-gpu.html
#GPU_Programming #CUDA #gpuArray
@MatlabTips
به طور مثال فرض کنید می خواهیم دو ماتریس تصادفی را در GPU در هم ضرب کنیم. برای این منظور کافی است که از تابع gpuArray استفاده کنید تا ماتریستان از RAM به حافظه GPU منتقل شود. در مرحله بعد به صورت عادی آن ها را در هم ضرب می کنید:
tic
A = gpuArray(rand(10000,1000));
B = gpuArray(rand(1000,1000));
C = A*B;
toc
که نتیجه آن بر روی ماشین من 0.926980 ثانیه است. توجه کنید که متلب بسیاری از توابع را برای gpuArray ، overload کرده است. یعنی تابع ضرب در متلب اگر ورودی از جنس gpuArray ببنید آن را در GPU اجرا می کند در غیر این صورت در RAM کل عملیات را انجام میدهد. حال همین محاسبه را بر روی CPU انجام می دهیم:
tic
A = rand(10000,1000);
B = rand(1000,1000);
C = A*B;
toc
که زمان آن بر روی ماشین من 2.111759 ثانیه است. در این جا کاملا متوجه میزان اختلاف زمان می شوید. هرچند بر روی حجم بزرگتر داده این اختلاف می تواند اختلاف بین چند دقیقه و چند هفته شود!!
وقتی کد اولی را اجرا می کنید C به صورت gpuArray است و این بدان معناست که خروجی هنوز بر روی حافظه GPU قرار دارد. برای برگرداندن آن به RAM کافی است دستور زیر را اجرا کنیم:
D=gather(C)
در این صورت D همان C است که در حافظه قرار دارد. بیاد داشته باشید که بسیاری از توابع متلب مانند fft، fft2، abs، cos و غیره برای GPU پیاده سازی و overload شده اند. بنابراین قبل از برگرداندن نتایجتان به حافظه اصلی که بسیار زمانبر تر است بهتر است بیشتر عملیات خود را انجام داده باشید. در زیر لیست کامل تری از توابع پیاده سازی شده را می بینید.
https://uk.mathworks.com/help/distcomp/run-built-in-functions-on-a-gpu.html
#GPU_Programming #CUDA #gpuArray
@MatlabTips
Mathworks
Run MATLAB Functions on a GPU
- MATLAB & Simulink
- MathWorks United Kingdom
- MATLAB & Simulink
- MathWorks United Kingdom
Hundreds of functions in MATLAB and other toolboxes run automatically on a GPU if you supply a gpuArray argument.A = gpuArray([1 0 1; -1 -2 0; 0 1 -1]); e = eig(A);
🔵حلقه موازی parfor🔵
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: کسانی که نیاز به افزایش سرعت برای محاسبات سنگین دارند.
یکی از روش هایی که می توان با استفاده از آن بخش های برنامه را به صورت موازی انجام داد استفاده از حلقه های موازی است. فرض کنید یک مجموعه کار داریم که می توانیم آن ها را به صورت موازی انجام دهیم. MATLAB Client داده های لازم را به یک pool از worker ها می دهد. هر کدام از worker ها مستقل از بقیه شروع به انجام کاری می کند که به آن محول شده است. کاملا مشخص است که این worker ها نباید وابستگی داده ای به هم داشته باشند: یعنی هیچکدام به داده های دیگری در مرحله ای از کار نیاز نداشته باشند. همچنین کارها ممکن است همزمان تمام نشوند. پس باید همه کارهایشان را تمام کنند تا نتیجه نهایی را داشته باشیم
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز: برنامه نویسی مقدماتی
برای: کسانی که نیاز به افزایش سرعت برای محاسبات سنگین دارند.
یکی از روش هایی که می توان با استفاده از آن بخش های برنامه را به صورت موازی انجام داد استفاده از حلقه های موازی است. فرض کنید یک مجموعه کار داریم که می توانیم آن ها را به صورت موازی انجام دهیم. MATLAB Client داده های لازم را به یک pool از worker ها می دهد. هر کدام از worker ها مستقل از بقیه شروع به انجام کاری می کند که به آن محول شده است. کاملا مشخص است که این worker ها نباید وابستگی داده ای به هم داشته باشند: یعنی هیچکدام به داده های دیگری در مرحله ای از کار نیاز نداشته باشند. همچنین کارها ممکن است همزمان تمام نشوند. پس باید همه کارهایشان را تمام کنند تا نتیجه نهایی را داشته باشیم
. فرض کنید بخواهیم یک آرایه را به صورت زیر پر کنیم:
از آنجایی که هر سطر از خروجی در مکان های مستقل و جدایی ذخیره می شوند می توان این کار را به صورت موازی انجام داد. برای این که متوجه بشوید هر بخش از حلقه در زمان متفاوتی کارش تمام می شود کافی است کد زیر را اجرا کنید:
خروجی به ترتیب نیست از طرفی در هر بار اجرای این حلقه نتایج متفاوتی به دست می اید.
باید توجه کنید که همه جا نمی توانید از parfor استفاده کنید چراکه این کار اولا باید برای کارهای نسبتا سنگین باشد و ثانیا استقلال داده ای و زمانی برای کارهایتان وجود داشته باشد.
#Parfor #Parallelization
@MatlabTips
a = rand(10,1000000);
b = zeros(10,1000000);
parfor i=1:10
b(i,:) = fft(a(i,:));
end
از آنجایی که هر سطر از خروجی در مکان های مستقل و جدایی ذخیره می شوند می توان این کار را به صورت موازی انجام داد. برای این که متوجه بشوید هر بخش از حلقه در زمان متفاوتی کارش تمام می شود کافی است کد زیر را اجرا کنید:
parfor i=1:10
i
end
خروجی به ترتیب نیست از طرفی در هر بار اجرای این حلقه نتایج متفاوتی به دست می اید.
باید توجه کنید که همه جا نمی توانید از parfor استفاده کنید چراکه این کار اولا باید برای کارهای نسبتا سنگین باشد و ثانیا استقلال داده ای و زمانی برای کارهایتان وجود داشته باشد.
#Parfor #Parallelization
@MatlabTips
🔵پک آموزشی متلب مقدماتی تا متوسط🔵
دوستان همونطور که قبلا قولش رو داده بودم یک پک آموزشی متلب تقریبا 8 ساعته آماده کردم که میتونه بسیار براتون مفید باشه.
ویژگیها:
1⃣به زبانی ساده و شیوا
2⃣داشتن تمرین در آخر هر فصل
3⃣استفاده از مثالهای جذاب و کاربردی
3⃣مناسب برای همه رشتهها
4⃣داشتن اسلایدهای اموزشی مناسب
5⃣پاسخ به تمرینات آخر هر فصل
لینک دانلود پک آموزشی در زیر آمده است. منتظر دیدگاههای سازنده شما دوستان هستیم.
https://coffeematlab.com/courses/essentials/
دوستان همونطور که قبلا قولش رو داده بودم یک پک آموزشی متلب تقریبا 8 ساعته آماده کردم که میتونه بسیار براتون مفید باشه.
ویژگیها:
1⃣به زبانی ساده و شیوا
2⃣داشتن تمرین در آخر هر فصل
3⃣استفاده از مثالهای جذاب و کاربردی
3⃣مناسب برای همه رشتهها
4⃣داشتن اسلایدهای اموزشی مناسب
5⃣پاسخ به تمرینات آخر هر فصل
لینک دانلود پک آموزشی در زیر آمده است. منتظر دیدگاههای سازنده شما دوستان هستیم.
https://coffeematlab.com/courses/essentials/
🔵گامی رو به جلو از گروه بزرگ mathworks!🔵
نسخه Matlab R2016a با برتری بلامنازع نسبت به ورژنهای قبلی توانسته است امکاناتی در اختیار کاربران خود قرار دهد که بار دیگر موجبات شگفتی و تحیر همگان را برانگیزد. در این نسخه تغییرات اساسی از ویرایشگر زنده گرفته تا تغییرات اساسی در گرافیک و اضافه کردن محورها به مختصات قطبی و بهینه سازی انواع تولباکس های تخصصی مشاهده میشود. در لینک زیر میتوانید این نرم افزار را دانلود کنید.
https://coffeematlab.com/courses/matlab-2016a/
نسخه Matlab R2016a با برتری بلامنازع نسبت به ورژنهای قبلی توانسته است امکاناتی در اختیار کاربران خود قرار دهد که بار دیگر موجبات شگفتی و تحیر همگان را برانگیزد. در این نسخه تغییرات اساسی از ویرایشگر زنده گرفته تا تغییرات اساسی در گرافیک و اضافه کردن محورها به مختصات قطبی و بهینه سازی انواع تولباکس های تخصصی مشاهده میشود. در لینک زیر میتوانید این نرم افزار را دانلود کنید.
https://coffeematlab.com/courses/matlab-2016a/
Coffeematlab
coffeematlab.com - This website is for sale! - coffeematlab Resources and Information.
This website is for sale! coffeematlab.com is your first and best source for all of the information you’re looking for. From general topics to more of what you would expect to find here, coffeematlab.com has it all. We hope you find what you are searching…
🔵دستور sound و کاربرد آن🔵
با استفاده از دستور sound میتوانید صدایی در کامپیوتر خود ایجاد کنید(البته اگر کارت صدا نصب باشد). فرمان sound یک بردار میگیرد و آن را به عنوان شکل موج صوت میپندارد و پخشش میکند. به عبارت دیگر sound یک ماتریس را به سیگنال صدا تبدیل میکند.
علاقه مندان میتوانند در لینک زیر اطلاعات تکمیلی را مطالعه کنند.
https://coffeematlab.com/2089/%D8%B5%D8%AF%D8%A7-%D8%AF%D8%B1-%D9%85%D8%AA%D9%84%D8%A8/
@matlabTips
با استفاده از دستور sound میتوانید صدایی در کامپیوتر خود ایجاد کنید(البته اگر کارت صدا نصب باشد). فرمان sound یک بردار میگیرد و آن را به عنوان شکل موج صوت میپندارد و پخشش میکند. به عبارت دیگر sound یک ماتریس را به سیگنال صدا تبدیل میکند.
علاقه مندان میتوانند در لینک زیر اطلاعات تکمیلی را مطالعه کنند.
https://coffeematlab.com/2089/%D8%B5%D8%AF%D8%A7-%D8%AF%D8%B1-%D9%85%D8%AA%D9%84%D8%A8/
@matlabTips
کافه متلب
صدا در متلب - کافه متلب
sound با استفاده از دستور sound میتوانید صدایی در کامپیوتر خود ایجاد کنید(البته اگر کارت صدا نصب باشد). فرمان sound یک بردار میگیرد و آن را به عنوان شکل موج صوت میپندارد و پخشش میکند. به عبارت دیگر sound یک ماتریس را به سیگنال صدا تبدیل میکند. سینتکس…
🔵اطلاعیه🔵
به دلیل درخواست دوستان و صدالبته به دلیلی حلاوت مبحث محاسبات عددی و کاربردی بودن آن برای دانشجویان در پست های آینده به مباحث انتگرال گیری عددی، مشتقگیری عددی، حل معادلات دیفرانسیل معمولی و جزیی(کد نویسی با روش های موجود و معرفی توابع متلب) پرداخته خواهد شد. از آنجایی که این پست ها با جزییات است و برخی دوستان ممکن است تمایلی به آن نداشته باشند در تلگرام خلاصه ای از پست آورده خواهد شد و لینک مربوطه در زیر آن قرار میدهیم.
#caution
به دلیل درخواست دوستان و صدالبته به دلیلی حلاوت مبحث محاسبات عددی و کاربردی بودن آن برای دانشجویان در پست های آینده به مباحث انتگرال گیری عددی، مشتقگیری عددی، حل معادلات دیفرانسیل معمولی و جزیی(کد نویسی با روش های موجود و معرفی توابع متلب) پرداخته خواهد شد. از آنجایی که این پست ها با جزییات است و برخی دوستان ممکن است تمایلی به آن نداشته باشند در تلگرام خلاصه ای از پست آورده خواهد شد و لینک مربوطه در زیر آن قرار میدهیم.
#caution
🔵انتگرالگیری عددی با دستور quad🔵
انتگرالگیری بحثی کاربردی در علوم مهندسی است. متلب نیز عمیقا به این موضوع پرداخته است و بسیار از این جهت غنی است. در این پست دستور quad معرفی میشود که از یک تابع به صورت عددی انتگرالگیری میشود. روش انتگرالگیری این تابع به شیوه سیمپسون وفقی است (در پستی جداگانه تشریح میکنیم).
https://coffeematlab.com/1364/numerical-integration/
@matlabtips
انتگرالگیری بحثی کاربردی در علوم مهندسی است. متلب نیز عمیقا به این موضوع پرداخته است و بسیار از این جهت غنی است. در این پست دستور quad معرفی میشود که از یک تابع به صورت عددی انتگرالگیری میشود. روش انتگرالگیری این تابع به شیوه سیمپسون وفقی است (در پستی جداگانه تشریح میکنیم).
https://coffeematlab.com/1364/numerical-integration/
@matlabtips
Coffeematlab
coffeematlab.com - This website is for sale! - coffeematlab Resources and Information.
This website is for sale! coffeematlab.com is your first and best source for all of the information you’re looking for. From general topics to more of what you would expect to find here, coffeematlab.com has it all. We hope you find what you are searching…
🔵انتگرالگیری با دستور integral🔵
دیدیم که دستور quad با استفاده از روش سیمپسون وفقی یک انتگرال را به صورت عددی حل میکرد. دستور دیگری در متلب با نام integral وجود دارد که با استفاده از روش global adaptive quadrature انتگرالگیری میکند. از نظر من این تابع نسبت به quad برتری دارد از این جهت که برای محاسبه انتگرالهای چندگانه نیز مورد استفاده قرار میگیرد.
https://coffeematlab.com/1413/%D8%A7%D9%86%D8%AA%DA%AF%D8%B1%D8%A7%D9%84%E2%80%8C%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D8%AF%D8%AF%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1/
دیدیم که دستور quad با استفاده از روش سیمپسون وفقی یک انتگرال را به صورت عددی حل میکرد. دستور دیگری در متلب با نام integral وجود دارد که با استفاده از روش global adaptive quadrature انتگرالگیری میکند. از نظر من این تابع نسبت به quad برتری دارد از این جهت که برای محاسبه انتگرالهای چندگانه نیز مورد استفاده قرار میگیرد.
https://coffeematlab.com/1413/%D8%A7%D9%86%D8%AA%DA%AF%D8%B1%D8%A7%D9%84%E2%80%8C%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D8%AF%D8%AF%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1/
کافه متلب
انتگرالگیری عددی با استفاده از integral - کافه متلب
انتگرالگیری عددی ابزاری لازم برای یک مهندس است. روشهای مختلفی در متلب وجود دارد. در این پست به بررسی دستور integral می پردازیم.
🔵انتگرال چندگانه با integral🔵
گاهی اوقات به مسائلی برمیخورید که نیاز است با استفاده از انتگرالهای چندگانه آن را حل کنید. این مسئله ممکن است یک مسئله تئوری یا عملی باشد. برای مثال محاسبه حجم، سطح و ... نیازمند محاسبه انتگرال چندگانه است. در پست های بعدی توابع دیگری را جهت محاسبه انتگرال های چندگانه بررسی خواهیم کرد.
https://coffeematlab.com/1422/%D8%A7%D9%86%D8%AA%DA%AF%D8%B1%D8%A7%D9%84-%DA%86%D9%86%D8%AF%DA%AF%D8%A7%D9%86%D9%87-%D9%85%D8%AA%D9%84%D8%A8/
@MatlabTips
گاهی اوقات به مسائلی برمیخورید که نیاز است با استفاده از انتگرالهای چندگانه آن را حل کنید. این مسئله ممکن است یک مسئله تئوری یا عملی باشد. برای مثال محاسبه حجم، سطح و ... نیازمند محاسبه انتگرال چندگانه است. در پست های بعدی توابع دیگری را جهت محاسبه انتگرال های چندگانه بررسی خواهیم کرد.
https://coffeematlab.com/1422/%D8%A7%D9%86%D8%AA%DA%AF%D8%B1%D8%A7%D9%84-%DA%86%D9%86%D8%AF%DA%AF%D8%A7%D9%86%D9%87-%D9%85%D8%AA%D9%84%D8%A8/
@MatlabTips
Coffeematlab
coffeematlab.com - This website is for sale! - coffeematlab Resources and Information.
This website is for sale! coffeematlab.com is your first and best source for all of the information you’re looking for. From general topics to more of what you would expect to find here, coffeematlab.com has it all. We hope you find what you are searching…
🔵حل معادله دیفرانسیل به روش اویلر🔵
روش اویلر روشی ساده و بسیار قابل فهم است که برای حل عددی معادلات دیفرانسیل مرتبه اول مورد استفاده قرار میگیرد. از مزیت های این روش بار محاسباتی کم آن و معایب آن دقت کم آن است.
در این پست علاوه بر تشریح تئوری این روش به پیاده سازی کامل آن در متلب نیز پرداخته شده است.
https://coffeematlab.com/1944/%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D9%87-%D8%AF%DB%8C%D9%81%D8%B1%D8%A7%D9%86%D8%B3%DB%8C%D9%84-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D8%A7%D9%88%DB%8C%D9%84%D8%B1/
@MatlabTips
روش اویلر روشی ساده و بسیار قابل فهم است که برای حل عددی معادلات دیفرانسیل مرتبه اول مورد استفاده قرار میگیرد. از مزیت های این روش بار محاسباتی کم آن و معایب آن دقت کم آن است.
در این پست علاوه بر تشریح تئوری این روش به پیاده سازی کامل آن در متلب نیز پرداخته شده است.
https://coffeematlab.com/1944/%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D9%87-%D8%AF%DB%8C%D9%81%D8%B1%D8%A7%D9%86%D8%B3%DB%8C%D9%84-%D8%A8%D9%87-%D8%B1%D9%88%D8%B4-%D8%A7%D9%88%DB%8C%D9%84%D8%B1/
@MatlabTips
کافه متلب
معادله دیفرانسیل به روش اویلر - کافه متلب
مقدمه دانشجویان محترم میبایست با این قضیه کنار بیایند که همه مسائل شرایط اولیه به صورت صریح قابل حل نیستند و غالبا یافتن فرمولی برای حل (y(t غیرممکن است؛ برای مثال برای حل معادله y’=t3+t2 و شرایط اولیه y(0)=0 هیچ فرم بستهای وجود ندارد. بنابراین برای اهداف…
🔵حل معادله دیفرانسیل به روش هیون🔵
این روش نسبت به روش اویلر دقیقتر است و البته از همان ایده اویلر استفاده کرده است. در پست زیر به تئوری و نحوه پیاده سازی کد در متلب پرداخته شده است.
https://coffeematlab.com/1948/%D8%B1%D9%88%D8%B4-%D9%87%DB%8C%D9%88%D9%86/
@MatlabTips
این روش نسبت به روش اویلر دقیقتر است و البته از همان ایده اویلر استفاده کرده است. در پست زیر به تئوری و نحوه پیاده سازی کد در متلب پرداخته شده است.
https://coffeematlab.com/1948/%D8%B1%D9%88%D8%B4-%D9%87%DB%8C%D9%88%D9%86/
@MatlabTips
کافه متلب
حل معادله دیفرانسیل با استفاده از روش هیون در متلب - کافه متلب
روش هیون برای حل عددی معادلات دیفرانسیل به کار برده میشود. با وجود دقت بالای این روش نسبت به روش اویلر، بار محاسباتی نسبتا قابل قبولی نیز دارد.
🔵فیلترینگ نویز با شبکه های عصبی🔵
شبکه های عصبی به عنوان ابزاری قدرتمند در زمینه یادگیری ماشین کاربردهای روزافزونی داشته است. این بار در کافه متلب با به کارگیری این علم در صدد این هستیم که نویز کانال را فیلتر کنیم. علاقه مندان می توانند به لینک زیر جهت اطلاعات بیشتر رجوع کنند.
https://coffeematlab.com/2002/%D9%81%DB%8C%D9%84%D8%AA%D8%B1-%D9%86%D9%88%DB%8C%D8%B2-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%B4%D8%A8%DA%A9%D9%87-%D8%B9%D8%B5%D8%A8%DB%8C/
@MatlabTips
شبکه های عصبی به عنوان ابزاری قدرتمند در زمینه یادگیری ماشین کاربردهای روزافزونی داشته است. این بار در کافه متلب با به کارگیری این علم در صدد این هستیم که نویز کانال را فیلتر کنیم. علاقه مندان می توانند به لینک زیر جهت اطلاعات بیشتر رجوع کنند.
https://coffeematlab.com/2002/%D9%81%DB%8C%D9%84%D8%AA%D8%B1-%D9%86%D9%88%DB%8C%D8%B2-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%B4%D8%A8%DA%A9%D9%87-%D8%B9%D8%B5%D8%A8%DB%8C/
@MatlabTips
کافه متلب
فیلتر کردن نویز با استفاده از شبکه عصبی بازگشتی - کافه متلب
مقدمه فرض کنید برای انتقال سیگنال داده ناگزیر باشیم از یک کانال نویزدار استفاده کنیم که این کانال باعث آشفتگی سیگنال انتقالی میگردد که برای رفع این مشکل و حذف قسمت نویز سیگنال خروجی کانال، تدبیری اندیشیده شود. در عمل یکی از روش هایی که برای فیلتر کردن نویز…