MatlabTips
891 subscribers
462 photos
73 videos
54 files
304 links
آموزش MATLAB با "استفاده از ویدئو و متن" در سطوح مبتدی تا پیشرفته
پاسخ به سوالات تخصصی:
@roholazandie
Download Telegram
6-می توانید با استفاده از Equation فرمول هایتان را به صورت latex بنویسید و همانجا هم نمایش دهید.
7-استفاده از زبان های مختلف در متلب جدید امکان پذیر شده است. پس اگر خواستید گزارشتان را فارسی بنویسید مشکلی وجود ندارد.
8- می توانید خروجی pdf یا فرمت های دیگر ذخیره کنید که برای گزارش نویسی کد های تمرین هایتان عالی است.
⚠️در صورتی که هر کدام از گیف های بالا واضح نیستند بر روی PC ذخیره کنید و با اینترنت اکسپلورر باز کنید تا جزییات را به صورت کامل تر ببینید⚠️
@MatlabTips
🔵عدد سحرانگیز🔵

مفهوم عدد pi به شکل فریبنده‌ای ساده است. pi نسبت محیط دایره به قطر آن است که همیشه با 3.14 برای کارهایمان تقریب میزنیم.
این عدد هیچوقت تمام نمیشود و همین حس بینهایت بودنش توجه بسیاری از ریاضیدانان برجسته و همچنین دانشجویان را برای سال ها به خود جلب کرده است.
در فیلم "pi" به کارگردانی آقای آرنوفسکی می بینیم که "مکس" قهرمان داستان در جستجوی یافتن یک الگوی جادویی در پشت "مین فریم" خود روزها کلنجار می‌رود. تا جایی که افرادی از گروه های مختلف در تعقیب و گریز این ریاضیدان بر میخیزند که این شاید بتوانند به کمک مکس این الگوی جادویی را استخراج کنند. یهودی های که فکر میکنند اسم اعظم به صورت الگویی در ارقام pi نهفته شده است و فعالین بازار سرمایه نیز به خیال خود دنبال یک رابطه ای در این عدد هستند که بتوان به سودهای هنگفتی دست یافت و ...
با همه این حرف‌ها در طی اعصار و قرون ریاضیدان ها فرمول های متعددی را برای این عدد یافته اند. هر شخص به نوبه خود به دنبال رابطه ای بوده است که بتواند به سرعت همگرایی قابل توجهی دست یابد. در این بین "گاتفرید لایبنیز" نیز بیکار ننشسته و سالها قبل از اینکه "تیلور" مفاهیمی حول سری تیلور را بسط دهد، رابطه ای برای این عدد مقدس یافته است.
لایبنیز سری زیرا را برای محاسبه عدد pi پیشنهاد می‌کند.
سری لایبنیز
براحتی می‌توان برنامه این سری را با یک حلقه در متلب نوشت:
% leibniz formula
% arctang(x) = x - x^3/3 + x^5/5 - x^7/7 + ...
% pi/4 = sigma((-1)^n / (2n+1)),n=0 -> inf

Pi = 0;
i = 0; %initialization

while abs(pi-Pi)>1e-4 % Conditional part & stop criterion

Pi = 4 * (-1)^i / (2*i+1)+ Pi; % according to leibniz formula
i = i + 1; % Counter
end
disp(abs(pi-Pi)) % display result

با زیاد کردن تعداد تکرارها به دقت بهتری می‌رسیم.
#PI, #leibniz
@MatlabTips
🔵اثر مهمانی🔵
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیش‌نیاز: برنامه نویسی متوسط
برای: متوسط و پیشرفته

فرض کنید در یک مهمانی شلوغ هستید. همه جور صدایی شنیده می شود: صدای موسیقی بسیار بلند، صدای خواننده، صدای ظرف ها و قاشق ها، صدای همهمه مهمانان، صدای صندلی ها که گه گاه جابجا می شوند صدای دوستانتان که نزدیک تر با هم صحبت می کنند. در همین حین یکی از دوستانتان به شما نزدیک می شود و دوست جدیدش را به شما معرفی می کند با هم دست می دهید و احوالپرسی می کنید. چه چیز عجیبی در این باره وجود دارد؟
در واقع این قضیه بسیار عجیب است چرا که مغز شما توانسته است بین سیگنال های صوتی بسیار در هم و بر هم صدای خاصی را بشنود و تمام بقیه را بیرون بریزد. این مساله که به اثر مهمانی (cocktail party effect) شناخته می شود سالهاست که بیولوژیست ها و عصب شناسان را به خود مشغول کرده است. مطالعات زیادی بر روی این موضوع انجام شده است که چگونه مغز می تواند موفق به چنین کاری شود. با این حال روش هایی هم در یادگیری ماشین و پردازش سیگنال ارائه شده اند که این فرآیند را تقلید می کنند. این مساله در حوزه پردازش سیگنال به مساله تفکیک منبع کور (blind source separation) شناخته می شود. نمایی از مساله را در زیر می بینید:
یکی از الگوریتم های بسیار توانا در این زمینه Independent Component Analysis است. در این روش فرض بر آن است که سیگنال ها به صورت خطی با هم ترکیب شده اند و همچنین گاوسی نیستند. از طرفی شرط مهم دیگر این است که این سیگنال ها از لحاظ آماری از هم مستقل باشند. ICA هر سیگنال را با ماکزیموم کردن استقلال آماری تخمین می زند. استقلال آماری می تواند به صورت های زیر تعریف شود:
1- به حداقل رساندن اطلاع دو سیگنال از هم (mutual information)
2- به حداکثر رساندن غیر گاوسی بودن (که به روش های مختلف اندازه گیری می شود)
اگرچه این ایده اولین بار برای جدا کردن سیگنال های صوتی مورد استفاده قرار گرفت اما دامنه کاربرد آن بسیار وسیع تر است. به طور مثال حذف سیگنال های پلک زدن، ضربان قلب، حرکات چشم و عضله ها هنگام ضبط نوار مغزی بسیار هم است که به راحتی توسط ICA انجام می شود.
یک الگوریتم کارا برای ICA الگوریتم FastICA است که در زبان متلب پیاده سازی شده است.که در زیر آمده است.
چنانچه جزییات بیشتری در مورد ریاضیات ICA به زبان ساده می خواهید می توانید کتاب زیر را دانلود کنید.
در متلب (MATLAB)، برای نمایش یک سری اعداد مشخص بر روی محورهای مختصات شکل، باید از دستور set همانند کد زیر استفاده کنیم :

clear all
close all
clc

x=0:0.1:2*pi;
y=sin(x);
plot(x,y)
set(gca, 'XTick', [0 0.5 2 4 7]); % Change x-axis ticks
set(gca, 'YTick', [-1 -0.5 0 0.25 0.8 1]); % Change y-axis ticks

که با کد زیر، اعداد روی محور x را مشخص کرده ایم :

set(gca, 'XTick', [0 0.5 2 4 7]); % Change x-axis ticks

و با کد زیر، اعداد روی محور y تعیین شده اند :

set(gca, 'YTick', [-1 -0.5 0 0.25 0.8 1]); % Change y-axis ticks
🔵تمرین‌هایی خارق العاده در محاسبات علمی🔵

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

1⃣برای انسان‌ها برنامه بنویسید، نه برای کامپیوترها

مطمئن شوید که کد شما خوانا باشد. انسان‌ها در یک لحظه تنها می‌توانند چند رابطه و فرمول را در ذهن خود نگه دارند. بنابراین سعی کنید، کدتان تا جایی که ممکن است خوانا و ساده باشد. این موضوع با استفاده از نوشتن کدهایی که ماژولار و شفاف هستند، قابل اجراست.
ادامه دارد ...
@matlabtips