آموزش متلب (MATLAB)
دسته بندی ( ۵۴۳ آموزش )
نمایش دسته بندی ها (۵۴۳ آموزش)
مباحث اولیه، در متلب (MATLAB)
مباحث اولیه، در متلب (MATLAB) 8
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB)
بردارها (Vector) و ماتریس ها (Matrix)، در متلب (MATLAB) 75
دستورهای ساده و پرکاربرد، در متلب (MATLAB)
دستورهای ساده و پرکاربرد، در متلب (MATLAB) 4
توابع (Function)، در متلب (MATLAB)
توابع (Function)، در متلب (MATLAB) 12
متغیرها (Variable)، در متلب (MATLAB)
متغیرها (Variable)، در متلب (MATLAB) 12
m-file ها، در متلب (MATLAB)
m-file ها، در متلب (MATLAB) 2
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB)
نمایش اطلاعات در خروجی (پنجره Commands)، در متلب (MATLAB) 5
رسم شکل ها، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB)
رسم شکل های دو بعدی، در متلب (MATLAB) 19
رسم شکل های سه بعدی، در متلب (MATLAB)
رسم شکل های سه بعدی، در متلب (MATLAB) 13
رسم چند شکل با هم، در متلب (MATLAB)
رسم چند شکل با هم، در متلب (MATLAB) 6
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB)
رسم شکل ها و نمودارهای خاص، در متلب (MATLAB) 12
رسم شکل های هندسی ساده، در متلب (MATLAB)
رسم شکل های هندسی ساده، در متلب (MATLAB) 8
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB)
تعیین ویژگی های خط های رسم شده در شکل، در متلب (MATLAB) 6
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB)
تعیین ویژگی های محورهای مختصات شکل، در متلب (MATLAB) 12
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB)
نمایش متن در شکل (عنوان، توضیح و ...)، در متلب (MATLAB) 5
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB)
تعیین ویژگی های رنگ های (Color) به کار رفته در رسم شکل، در متلب (MATLAB) 3
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (قبل از رسم شکل)، در متلب (MATLAB) 13
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB)
تعیین یا تغییر ویژگی های شکل (بعد از رسم شکل)، در متلب (MATLAB) 9
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB)
ذخیره شکل ها به صورت فایل (فایل عکس)، در متلب (MATLAB) 2
کار با شکل رسم شده، در متلب (MATLAB)
کار با شکل رسم شده، در متلب (MATLAB) 1
پردازش تصویر و کار با عکس ها، در متلب (MATLAB)
پردازش تصویر و کار با عکس ها، در متلب (MATLAB) 15
ساخت انیمیشن، در متلب (MATLAB)
ساخت انیمیشن، در متلب (MATLAB) 1
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB)
متغیرها و معادلات سمبلیک (Symbolic)، در متلب (MATLAB) 4
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB)
رشته ها (String) و آرایه های رشته ای (String Array) و کاراکترها (Character) و آرایه های کاراکتری (Character Array) (متن ها)، در متلب (MATLAB) 42
حلقه ها (for و while)، در متلب (MATLAB)
حلقه ها (for و while)، در متلب (MATLAB) 3
آرایه ها (Array)، در متلب (MATLAB)
آرایه ها (Array)، در متلب (MATLAB) 4
آرایه های سلولی (Cell Array)، در متلب (MATLAB)
آرایه های سلولی (Cell Array)، در متلب (MATLAB) 12
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB)
متغیرهای منطقی (Logical) و آرایه های منطقی (Logical Array)، در متلب (MATLAB) 2
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB)
ساختارها (Structure) و آرایه های ساختاری (Structure Array)، در متلب (MATLAB) 3
جدول ها (Table)، در متلب (MATLAB)
جدول ها (Table)، در متلب (MATLAB) 11
جدول های زمانی (TimeTable)، در متلب (MATLAB)
جدول های زمانی (TimeTable)، در متلب (MATLAB) 1
درخت ها (Tree)، در متلب (MATLAB)
درخت ها (Tree)، در متلب (MATLAB) 1
پایگاه داده SQLite ، در متلب (MATLAB)
پایگاه داده SQLite ، در متلب (MATLAB) 0
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB)
دستورات شرطی (if و else و switch و ...)، در متلب (MATLAB) 2
خطاهای رایج، در متلب (MATLAB)
خطاهای رایج، در متلب (MATLAB) 2
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB)
برنامه نویسی شیء گرا (Object Oriented Programming) ، در متلب (MATLAB) 1
سیمولینک (Simulink)، در متلب (MATLAB)
سیمولینک (Simulink)، در متلب (MATLAB) 5
GUI و واسطه های گرافیکی، در متلب (MATLAB)
GUI و واسطه های گرافیکی، در متلب (MATLAB) 7
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB)
فایل ها (File) و پوشه ها (Folder)، در متلب (MATLAB) 18
تاریخ و زمان، در متلب (MATLAB)
تاریخ و زمان، در متلب (MATLAB) 19
توقف موقتی یا کامل برنامه، در متلب (MATLAB)
توقف موقتی یا کامل برنامه، در متلب (MATLAB) 4
بردارها و ماتریس های خاص، در متلب (MATLAB)
بردارها و ماتریس های خاص، در متلب (MATLAB) 3
توابع خاص، در متلب (MATLAB)
توابع خاص، در متلب (MATLAB) 2
حافظه (Memory)، در متلب (MATLAB)
حافظه (Memory)، در متلب (MATLAB) 3
برنامه های آماده برای دانلود، در متلب (MATLAB)
برنامه های آماده برای دانلود، در متلب (MATLAB) 1
Excel و متلب (MATLAB)
Excel و متلب (MATLAB) 2
راهنما (Help)، در متلب (MATLAB)
راهنما (Help)، در متلب (MATLAB) 2
مباحث عمومی، در متلب (MATLAB)
مباحث عمومی، در متلب (MATLAB) 19

محاسبه ضرایب سری فوریه یک تابع متناوب در متلب

با استفاده از ضرایب سری فوریه یک تابع متناوب، می توانیم آن تابع را بر حسب مجموعه ای از توابع پایه تقریب بزنیم. فرض کنید تابع f(x) دارای دوره تناوب باشد. در این صورت این تابع را می توانیم بر حسب ضرایبی از sin و cos به دست آوریم. این ضرایب به صورت زیر محاسبه می شوند :

\[ a_n={1 \over \pi}\int_{-\pi}^{\pi} f(x)cos(nx)\,dx, ~~~~~ n \geq 0 \] \[ b_n={1 \over \pi}\int_{-\pi}^{\pi} f(x)sin(nx)\,dx, ~~~~~ n \geq 1 \]

نکته مهم این است که برای به دست آوردن ضرایب سری فوریه، تابع f(x) حتما باید در بازه دوره تناوب خود، انتگرال پذیر باشد.

تابع f(x) را نیز به وسیله این ضرایب می توانیم به صورت زیر تقریب بزنیم :

\[ (S_Nf)(x)={a_0 \over 2} + {\sum_{n=1}^N [a_ncos(nx)+b_nsin(nx)],} ~~~~~ N \geq 0 \]

حال می خواهیم با متلب برنامه ای بنویسیم که ضرایب سری فوریه تابعی دلخواه را برای ما به دست آورده و همچنین مقدار تقریب زده شده این تابع به وسیله این ضرایب سری فوریه را در یک x مشخص حساب کند. فرض می کنیم تابع به صورت f(x)=sin(x) باشد و کدهای زیر را می نویسیم :


clear all
clc
syms x
f=sin(x);
N=10;
a_0=(1/pi)*int(f*cos(0*x),-pi,pi)
for n=1:N
    a_n(n)=(1/pi)*int(f*cos(n*x),-pi,pi);
    b_n(n)=(1/pi)*int(f*sin(n*x),-pi,pi);
end
a_n
b_n
 
f_new=a_0/2;
for n=1:N
    f_new=f_new+a_n(n)*cos(n*x)+b_n(n)*sin(n*x);
end
 
subs(f_new,x,5)
subs(f,x,5)

تابع f_new که بر حسب ضرایب سری فوریه به دست می آید، تقریبی از تابع f می باشد. دستور subs(f_new,x,5) ، در تابع f_new ، مقدار x=5 را جایگذاری می کند. همچنین در خط بعدی، مقدار subs(f,x,5) را محاسبه کرده ایم تا بتوانیم مقدار تقریبی f_new(5) را با مقدار f(5) مقایسه کنیم.

نتیجه :


a_0 =
 
0
 
 
a_n =
 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
 
b_n =
 
[ (5734161139222659*pi)/18014398509481984, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
 
ans =
 
   -0.9589
 
 
ans =
 
   -0.9589

مشاهده می کنید که دو مقدار، دقیقا با هم برابر شده اند.

نویسنده علیرضا گلمکانی
شماره کلید 103
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 4 4 0
hamid
۱۳۹۸/۱۰/۲۵
۱۴:۱۲

سلام
ممنون از سایت خوبتون ولی در اجرای این کد مشکلی وجود داره. برخلاف خروجی ای که توی سایت گذاشتین، وقتی کد اجرا میشه دو خط آخر که محاسباته اجرا نمیشه و فقط مینویسه (5)sin
مشکلش چیه؟

admin
۱۳۹۸/۱۰/۲۵
۱۵:۳۵

سلام.
محاسبات صحیح است، اما نتیجه نهایی به صورت یک عدد صحیح یا عدد اعشاری نمایش داده نشده.
برای اینکه نتیجه را به صورت یک عدد صحیح یا عدد اعشاری داشته باشیم، می توانیم از دستور vpa در متلب (MATLAB) استفاده نماییم (کلید شماره 26435) (در صورت تمایل، برای تعیین تعداد رقم اعشاری، توضیحات نوشته شده در کلید مورد نظر را بخوانید).
بنابراین کدهای متلب (MATLAB) مورد نظر را به صورت زیر می نویسیم :

کد پی‌اچ‌پی:
clear all
close all
clc

syms x
f
=sin(x);
N=10;
a_0=(1/pi)*int(f*cos(0*x),-pi,pi)
for 
n=1:N
    a_n
(n)=(1/pi)*int(f*cos(n*x),-pi,pi);
 
   b_n(n)=(1/pi)*int(f*sin(n*x),-pi,pi);
end
a_n
b_n
 
f_new
=a_0/2;
for 
n=1:N
    f_new
=f_new+a_n(n)*cos(n*x)+b_n(n)*sin(n*x);
end
 
value_1 
vpa(subs(f_new,x,5))
value_2 vpa(subs(f,x,5)) 

نتیجه اجرای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:
a_0 =
 
0
 
 
a_n 
=
 
0000000000]
 
 
b_n =
 
[ (
5734161139222659*pi)/18014398509481984000000000]
 
 
value_1 =
 
-
0.95892427466313852817614113118698
 
 
value_2 
=
 
-
0.95892427466313846889315440615599 


Flower

hamid
۱۳۹۸/۱۰/۲۶
۰۷:۳۹

خیلی ممنون از توضیحات کاملتون  Heart

zahra
۱۴۰۱/۰۷/۲۹
۲۲:۵۷

ممنون از توضییحات کامل و دقیق تون که با قلمی شیوا بیان شده است

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


راهنمای دستورات متلب (MATLAB)

راهنمای دستورات متلب (MATLAB) بر اساس حرف اول دستور :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z