درون یابی مثلثاتی (Trigonometric Interpolation) یک روش درون‌یابی با استفاده از چندجمله‌ای‌های مثلثاتی است. همان‌طور که می‌دانیم، درون‌یابی فرایندی برای یافتن تابعی است که تعدادی نقطه معلوم از آن می‌گذرد. در درون یابی مثلثاتی ، این تابع باید یک چندجمله‌ای مثلثاتی باشد که مجموع سینوس‌ها و کسینوس‌ها است. این فرم، به ویژه برای درون‌یابی توابع دوه‌ای یا متناوب مناسب است.

درون یابی مثلثاتی

یک چندجمله‌ای مثلثاتی درجه $$ K $$ به شکل زیر است:

$$ \large p ( x ) = a _ 0 + \sum _ { k = 1 } ^ K a _ k \cos ( k x ) + \sum _ { k = 1 } ^ K b _ k \sin ( k x ) . \;\;\;\;\; ( 1 ) $$

این عبارت شامل $$ 2 K + 1 $$ ضریب $$ a _ 0 $$، $$ a _ 1 $$، …، $$ a _ k $$، $$ b _ 1 $$، … و $$ b _ k $$ است و باید این ضرایب را طوری محاسبه کنیم که تابع از $$ N $$ نقطه زیر عبور کند:

$$ \large p ( x _ n ) = y _ n , \quad n = 0 , \ldots , N – 1 . $$

از آنجا که چندجمله‌ای مثلثاتی با دروه تناوب $$ 2 \pi $$ دروه‌ای یا متناوب است، $$ N $$ نقطه را می‌توان در یک تناوب به شکل زیر مرتب کرد:

$$ \large 0 \leq x _ 0 < x _ 1 < x _ 2 < \ldots < x _ { N – 1 } < 2 \pi . $$

دقت کنید که فاصله بین نقاط لزوماً‌ برابر نیست. اکنون مسئله درون‌یابی، یافتن ضرایب به گونه‌ای است که چندجمله‌ای مثلثاتی $$ p $$ در شرایط درون‌یابی صدق کند.

فرمول‌بندی در صفحه مختلط

اگر مسئله را در صفحه مختلط فرمول‌بندی کنیم، کارسازتر خواهد بود. می‌توانیم فرمول یک چندجمله‌ای مثلثاتی را به صورت $$ p ( x ) = \sum _ { k = – K } ^ K c _ k e ^ { i k x } $$ بازنویسی کنیم که در آن، $$ i$$ واحد موهومی است. اگر $$ z = e ^ {i x } $$ را قرار دهیم، خواهیم داشت:

$$ \large q ( z ) = \sum _ { k = – K } ^ K c _ k z ^ { k } $$

همچنین، $$ q ( e ^ { i x } ) \triangleq p ( x )  $$ را در نظر می‌گیریم.

در این صورت، مسئله درون یابی مثلثاتی به درون‌یابی چندجمله‌ای روی دایره واحد کاهش می‌یابد. وجود و یکتایی درون یابی مثلثاتی به سادگی برای درون‌یابی چندجمله‌ای متناظر آن به دست می‌آید.

جواب مسئله

تحت شرایط بالا، برای هر مجموعه $$N$$تایی از نقاط $$ \{ x _ k , y _ k \} $$ جوابی برای مسئله وجود دارد. تعداد نقاط $$N$$ بزرگ‌تر از تعداد ضرایب چندجمله‌ای نیست، یعنی $$ N \le 2 k + 1 $$ (اگر $$ N > 2 k + 1 $$ باشد، بسته به نقاط، ممکن است جواب وجود داشته باشد یا وجود نداشته باشد). علاوه بر این، چندجمله‌ای درون‌یاب یکتاست اگر و تنها اگر تعداد ضرایب قابل تنظیم برابر با تعداد نقاط باشد، یعنی $$ N = 2 k + 1 $$. در ادامه، فرض می‌کنیم این شرط به درستی برقرار است.

تعداد نقاط فرد

اگر تعداد نقاط $$N$$ فرد باشد، یعنی $$ N = 2 k + 1 $$، اعمال فرمول لاگرانژ برای درون‌یابی چندجمله‌ای، در صفحه مختلط منجر به جوابی به فرم زیر می‌شود:

$$ \large p ( x ) = \sum _ { k = 0 } ^ { 2 K } y _ k \, t _ k ( x ) \;\;\;\;\; ( 2 ) $$

که در آن:

$$ t _ k ( x ) = e ^ { – i K x + i K x _ k } \prod _ { m = 0 , m \ne k } ^ { 2 K } \frac { e ^ { i x } – e ^ { i x _ m } }{ e ^ { i x _ k } – e ^ { i x _ m } } . \;\;\;\;\; ( 3 )$$

ضریب $$ e ^ { – i K x + i K x _ k } $$ در این فرمول، برای جبران این مسئله است که فرمول‌بندی صفحه مختلط شامل توان‌های منفی $$ e ^ { i x } $$ نیز بوده و به همین دلیل یک چندجمله‌ای برحسب $$ e ^{ i x } $$ نیست. صحت این موضوع را می‌توان به سادگی با مشاهده $$ t _ k ( x _ k ) = 1 $$ و اینکه $$ t _ k ( x ) $$ یک ترکیب خطی از توان‌های $$ e ^ { i x } $$ است، تأیید کرد. با استفاده از اتحادِ

$$ \large e ^ { i z _ 1 } – e ^ { i z _ 2 } = 2 i \sin \left ( \frac { z _ 1 – z _ 2 } { 2 } \right ) e ^ { i \frac 1 2 z _ 1 + i \frac 1 2 z _ 2 } \;\;\;\;\; ( 4 )$$

ضریب $$ t _ k ( x ) $$ را می‌توان به فرم زیر نوشت:

$$ \large t _ k ( x ) = \prod _ { m = 0 , m \ne k } ^ { 2 K } \frac { \sin \frac 1 2 ( x – x _ m ) } { \sin \frac 1 2 ( x _ k – x _ m ) } . \;\;\;\;\; (5)$$

تعداد نقاط زوج

اگر تعداد نقاط $$N$$ زوج باشد، یعنی $$ N = 2 K $$، اعمال فرمول لاگرانژ برای درون‌یابی چندجمله‌ای برای فرمول‌بندی چندجمله‌ای در صفحه مختلط منجر به جوابی به فرم زیر می‌شود:

$$ \large p ( x ) = \sum _ { k = 0 } ^ { 2 K – 1 } y _ k \, t _ k ( x )\;\;\;\;\; (6) $$

که در آن:

$$ \large t _ k ( x ) = e ^ { – i K x + i K x _ k } \frac { e ^ { i x } – e ^ { i \alpha _ k } } { e ^ { i x _ k } – e ^ { i \alpha _ k } } \prod _ { m = 0 , m \ne k } ^ { 2 K – 1 } \frac { e ^ { i x } – e ^ { i x _ m } } { e ^ { i x _ k } – e ^ { i x _ m } } . \;\;\;\;\; ( 7 )$$

در اینجا ثابت $$ \alpha _ k $$ را می‌توان به صورت دلخواه انتخاب کرد. این امر به آن دلیل است که تابع درون‌یاب (۱) شامل تعداد فردی از ضرایب مجهول است. انتخاب معمول آن است که بالاترین فرکانس به فرم یک ثابت ضرب در $$ \cos ( K x ) $$ باشد، یعنی جمله $$ \sin ( K x ) $$ حذف می‌شود، اما در حالت کلی، فاز بالاترین فرکانس را می‌توان به گونه‌ای انتخاب کرد که $$ \varphi _  K $$ باشد. برای به دست آوردن عبارت $$ \alpha _ k $$ با استفاده از (۲) و (۳) می‌توان نوشت:

$$\large  t _ k ( x ) = \frac { \cos \left ( K x – \frac 1 2 \alpha _ k + \frac 1 2 \sum \limits _ { m = 0 , m \ne k } ^ { 2 K – 1 } x _ m \right ) + \sum \limits _ { m = – ( K – 1 ) } ^ { K – 1 } c _ k e ^ { i m x } } { 2 ^ N \sin ( \frac { x _ k – \alpha _ k }{ 2 } ) \prod \limits _ { m = 0 , m \ne k } ^ { 2 K – 1 } \sin ( \frac { x _ k – x _ m } { 2 } ) } . \;\;\;\;\; (8)$$

به مبهم شدن ناشی از صفر شدن مخرج توجه داشته باشید.

در نظر گرفتن نقاط با فواصل برابر

یک ساده‌سازی دیگر مسئله، حالتی است که نقاط $$ x _ m $$ دارای فواصل برابری باشند، یعنی:

$$ \large x _ m = \frac { 2 \pi m } { N } $$

باز هم دو حالت را بررسی می‌کنیم.

تعداد نقاط فرد

ساده‌سازی بیشتر با استفاده از (2) یک رویکرد بدیهی است. یک روش بسیار ساده‌تر در نظر گرفتن «هسته دیریکله» (Dirichlet Kernel) است:

$$ \large D ( x , N ) = \frac { 1 } { N } + \frac { 2 } { N } \sum _ { k = 1 } ^ { \frac 1 2 ( N – 1 ) } \cos ( k x ) = \frac { \sin \frac 1 2 N x } { N \sin \frac 1 2 x } \;\;\;\;\; (9)$$

که در آن، $$ N > 0 $$ فرد است. به سادگی می‌توان مشاهده کرد که $$ D ( x , N) $$ یک ترکیب خطی از کسینوس‌های $$ e ^ { i x } $$ بوده و داریم:

$$ \large D ( x _ m , N ) = \begin {cases} 0 \text { for } m \neq 0 \\1\text { for } m = 0 \end {cases} . $$

از آنجا که این دو ویژگی به طور یکتا ضرایب $$ t _ k ( x ) $$ را در (۵) تعریف می‌کنند، خواهیم داشت:

$$ \large \begin {align}
t _ k ( x ) & = D ( x – x _ k , N ) = \begin {cases}
\frac { \sin \frac 1 2 N ( x – x _ k ) } { N \sin \frac 1 2 ( x -x _ k ) } \text{ for } x \neq x _ k \\
\lim \limits _ { x \to 0 } \frac { \sin \frac 1 2 N x } { N \sin \frac 1 2 x } = 1 \text { for } x = x _ k
\end {cases} \\ & = \frac { \mathrm {sinc} \, \frac 1 2 N ( x – x _ k ) } { \mathrm {sinc} \, \frac 1 2 ( x – x _ k ) } .
\end {align} \;\;\;\;\; (10)$$

در اینجا، تابع $$\mathrm {sinc}$$ از هرگونه تکینگی جلوگیری کرده و به صورت زیر تعریف می‌شود:

$$ \large \mathrm {sinc} \, x = \frac { \sin x } { x } . $$

تعداد نقاط زوج

برای تعداد نقاط زوج $$N$$، هسته دیریکله را به صورت زیر تعریف می‌کنیم:

$$ \large  D ( x , N ) = \frac { 1 } { N } +\frac { 1 } { N } \cos \frac 1 2 N x + \frac { 2 } { N } \sum _ { k = 1 } ^ { \frac 1 2 N – 1 } \cos ( k x ) = \frac { \sin \frac 1 2 N x } { N \tan \frac 1 2 x } . \;\;\;\;\; (11)$$

دوباره، به سادگی می‌توان دید که $$ D ( x , N) $$ یک ترکیب خطی از توان‌های کسینوسی $$ e ^ { i x } $$ است و شامل جمله $$ \sin \frac { 1 } { N} N x $$ نیست و در رابطه زیر صدق می‌کند:

$$ \large D ( x _ m , N ) = \begin {cases} 0 \text{ for } m \neq 0 \\ 1 \text { for } m = 0 \end {cases} . $$

با استفاده از این مشخصات، ضرایب $$ t _ k ( x ) $$ در (۶) به صورت زیر داده می‌شوند:‌

$$ \large \begin {align}
t _ k ( x ) & = D ( x – x _ k , N ) = \begin {cases}
\frac { \sin \frac 1 2 N ( x – x _ k ) } { N \tan \frac 1 2 ( x -x _ k ) } \text { for } x \neq x _ k \\
\lim \limits _ { x \to 0 } \frac { \sin \frac 1 2 N x } { N \tan \frac 1 2 x } = 1 \text { for } x = x _ k .
\end {cases} \\ & = \frac { \mathrm { sinc} \, \frac 1 2 N ( x – x _ k ) } { N \mathrm { sinc} \, \frac 1 2 ( x – x _ k ) } \cos \frac 1 2 ( x – x _ k )
\end {align} \;\;\;\;\;(12)$$

توجه کنید که $$ t _ k ( x ) $$ شامل $$ \sin \frac { 1 } { 2 } N x $$ نیست. در نهایت، باید گفت که $$ \sin \frac { 1 } { 2 } N x $$ در همه نقاط $$ x _ m $$ حذف می‌شود.

رابطه درون یابی مثلثاتی با تبدیل فوریه گسسته

در حالت خاصی که فاصله نقاط $$ x _ n $$ با هم برابر است، داریم:

$$ x _ n = 2 \pi \frac { n } { N } , \qquad 0 \leq n < N . $$

تبدیلی که نقطه داده‌های $$ y _ n $$ را به ضرایب $$ a _ k $$ و $$ b _ k $$ مربوط می‌کند از تبدیل فوریه گسسته (DFT) مرتبه $$N$$ به دست می‌آید:

$$ Y _ k = \sum _ { n = 0 } ^ { N – 1 } y _ n \ e ^ { – i 2 \pi \frac { n k } { N } } $$

$$ y _ n = p ( x _ n ) = \frac { 1 } { N } \sum _ { k = 0 } ^ { N – 1 } Y _ k \ e ^ { i 2 \pi \frac { n k } { N } } $$

پیاده‌سازی درون یابی مثلثاتی در متلب

کد متلب روش درون یابی مثلثاتی به صورت زیر است:

اگر این مطلب برایتان مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

telegram
twitter

سید سراج حمیدی

«سید سراج حمیدی» دانش‌آموخته مهندسی برق است. او مدتی در زمینه انرژی‌های تجدیدپذیر فعالیت کرده، و در حال حاضر، آموزش‌های مهندسی برق و ریاضیات مجله فرادرس را می‌نویسد.

بر اساس رای 1 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *