MatlabTips
891 subscribers
462 photos
73 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
⚠️ هشدار: libsvm دارای متد های svmtrain و svmpredict است که svmtrain آن بر روی svmtrain خود متلب override شده و دیگر نمی توانید از آن استفاده کنید مگر آنکه مسیر آن را حذف کنید.
⚠️ نسخه ای که قرار داده شد تنها برای ویندوز های 64 بیتی کار میکند. برای نسخه 32 بیتی نیاز دارید که کد های C را خودتان کامپایل کنید.

#libsvm #svmtrain #svmpredict
@matlabtips
وفور اطلاعات، فقر توجه ایجاد می کند.
(هربرت سایمون، اقتصاددان و دانشمند علوم کامپیوتر، 1970)
Forwarded from گنگ خواب دیده
اگر پیروز میدان نیستی....
لا اقل جوری شکست بخور که حریفت هم برنده نشه..!

@mortezaebad
Progects :)))))))))))
God bless him!
Forwarded from مستور مست
جسمها چون کوزه های بسته سر
تا در آن کوزه چه باشد آن نگر

گر به مظروفش نظر داری ، شهی
گر به ظرفش عاشقی ، تو گمرهی

"مولوى"
@mastor_e_mast
🔵مساله تطبیق منحنی(Curve Fitting)🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیش‌نیاز: برنامه نویسی مقدماتی
برای: مقدماتی و متوسط

فرض کنید مجموعه از نقاط به صورت دوتایی مرتب داریم و آن را رسم می کنیم:

t = [0 0.3 0.8 1.1 1.6 2.3];
y = [0.6 0.67 1.01 1.35 1.47 1.25];
plot(t,y,'o')
title('Plot of y Versus t')
ممکن است حدس زده باشیم که این نقاط از یک قاعده پیروی میکنند. فرض کنید میخواهیم یک قاعده به صورت یک معادله درجه دوم از یک مجموعه داده استخراج کنیم. یک معادله درجه دوم چیزی به صورت زیر خواهد بود:
یافتن ضرایب a0 ، a1 و a2 به روش های مختلفی صورت می گیرد که در مساله ی کلی تر رگرسیون بررسی می شوند. متلب می تواند این ضرایب را برای شما پیدا کند. برای این منظور کافی است دستور polyfit را به صورت زیر استفاده کنیم:
p = polyfit(t,y,2)
p =

-0.2942 1.0231 0.4981

و با دستور polyval مقدار آن را برای یک بازه حساب کنیم:
t2 = 0:0.1:2.8;
y2 = polyval(p,t2);
figure
plot(t,y,'o',t2,y2)
title('Plot of Data (Points) and Model (Line)')

و نتیجه به صورت زیر است.
حالا مهمترین پرسش این است که میان این همه تابع و حتی درجات مختلف برای توابع چگونه باید دست به انتخاب زد. این مطلبی است که به زودی به صورت مفصل در مورد آن بحث می کنیم.

#Curve_fitting #Regression #Guess
@MatlabTips
Forwarded from Leila Abedi
Alone With Numbers
Alexandre Desplat
👆👆👆
Soundtrack of "The imitation game" Movie: the life and work of Alan Turing.
عبور غبار و گرد خاک از ایران (تصویر از بالای خلیج فارس توسط ایستگاه فضایی بین المللی گرفته شده است)
iss040e113700_lrg.jpg
1.2 MB
تصویر فوق با کیفیت بالاتر برای مشاهده جزییات
Forwarded from Mr. Gol
🔵نحوه برخورد با مشکل زمان در الگوریتم ها🔵
سطح پیچیدگی:🌕🌑🌑🌑🌑
پیش‌نیاز: برنامه نویسی مقدماتی
برای: همه


مواقع زیادی پیش می آید که در انجام محاسبات دچار مشکل زمان می شویم. به این معنا که هر قدر روی کاغذ حساب می کنیم طول زمان اجرا به طور بسیار نامعقولی بالا است. اگر با این حالت مواجه شدید احتمالا به ترتیب با مشکلات زیر روبرو هستید:

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- مقدار نتیجه به حافظه اصلی کپی می شود.