درون یابی مثلثاتی (Trigonometric Interpolation) یک روش درونیابی با استفاده از چندجملهایهای مثلثاتی است. همانطور که میدانیم، درونیابی فرایندی برای یافتن تابعی است که تعدادی نقطه معلوم از آن میگذرد. در درون یابی مثلثاتی ، این تابع باید یک چندجملهای مثلثاتی باشد که مجموع سینوسها و کسینوسها است. این فرم، به ویژه برای درونیابی توابع دوهای یا متناوب مناسب است.
این عبارت شامل 2K+1 ضریب a0، a1، ...، ak، b1، ... و bk است و باید این ضرایب را طوری محاسبه کنیم که تابع از N نقطه زیر عبور کند:
p(xn)=yn,n=0,…,N−1.
از آنجا که چندجملهای مثلثاتی با دروه تناوب 2π دروهای یا متناوب است، N نقطه را میتوان در یک تناوب به شکل زیر مرتب کرد:
0≤x0<x1<x2<…<xN−1<2π.
دقت کنید که فاصله بین نقاط لزوماً برابر نیست. اکنون مسئله درونیابی، یافتن ضرایب به گونهای است که چندجملهای مثلثاتی p در شرایط درونیابی صدق کند.
فرمولبندی در صفحه مختلط
اگر مسئله را در صفحه مختلط فرمولبندی کنیم، کارسازتر خواهد بود. میتوانیم فرمول یک چندجملهای مثلثاتی را به صورت p(x)=k=−K∑Kckeikx بازنویسی کنیم که در آن، i واحد موهومی است. اگر z=eix را قرار دهیم، خواهیم داشت:
q(z)=k=−K∑Kckzk
همچنین، q(eix)≜p(x) را در نظر میگیریم.
در این صورت، مسئله درون یابی مثلثاتی به درونیابی چندجملهای روی دایره واحد کاهش مییابد. وجود و یکتایی درون یابی مثلثاتی به سادگی برای درونیابی چندجملهای متناظر آن به دست میآید.
جواب مسئله
تحت شرایط بالا، برای هر مجموعه Nتایی از نقاط {xk,yk} جوابی برای مسئله وجود دارد. تعداد نقاط N بزرگتر از تعداد ضرایب چندجملهای نیست، یعنی N≤2k+1 (اگر N>2k+1 باشد، بسته به نقاط، ممکن است جواب وجود داشته باشد یا وجود نداشته باشد). علاوه بر این، چندجملهای درونیاب یکتاست اگر و تنها اگر تعداد ضرایب قابل تنظیم برابر با تعداد نقاط باشد، یعنی N=2k+1. در ادامه، فرض میکنیم این شرط به درستی برقرار است.
تعداد نقاط فرد
اگر تعداد نقاط N فرد باشد، یعنی N=2k+1، اعمال فرمول لاگرانژ برای درونیابی چندجملهای، در صفحه مختلط منجر به جوابی به فرم زیر میشود:
ضریب e−iKx+iKxk در این فرمول، برای جبران این مسئله است که فرمولبندی صفحه مختلط شامل توانهای منفی eix نیز بوده و به همین دلیل یک چندجملهای برحسب eix نیست. صحت این موضوع را میتوان به سادگی با مشاهده tk(xk)=1 و اینکه tk(x) یک ترکیب خطی از توانهای eix است، تأیید کرد. با استفاده از اتحادِ
اگر تعداد نقاط N زوج باشد، یعنی N=2K، اعمال فرمول لاگرانژ برای درونیابی چندجملهای برای فرمولبندی چندجملهای در صفحه مختلط منجر به جوابی به فرم زیر میشود:
در اینجا ثابت αk را میتوان به صورت دلخواه انتخاب کرد. این امر به آن دلیل است که تابع درونیاب (۱) شامل تعداد فردی از ضرایب مجهول است. انتخاب معمول آن است که بالاترین فرکانس به فرم یک ثابت ضرب در cos(Kx) باشد، یعنی جمله sin(Kx) حذف میشود، اما در حالت کلی، فاز بالاترین فرکانس را میتوان به گونهای انتخاب کرد که φK باشد. برای به دست آوردن عبارت αk با استفاده از (۲) و (۳) میتوان نوشت:
دوباره، به سادگی میتوان دید که D(x,N) یک ترکیب خطی از توانهای کسینوسی eix است و شامل جمله sinN1Nx نیست و در رابطه زیر صدق میکند:
D(xm,N)=⎩⎨⎧0 for m=01 for m=0.
با استفاده از این مشخصات، ضرایب tk(x) در (۶) به صورت زیر داده میشوند:
tk(x)=D(x−xk,N)=⎩⎨⎧Ntan21(x−xk)sin21N(x−xk) for x=xkx→0limNtan21xsin21Nx=1 for x=xk.=Nsinc21(x−xk)sinc21N(x−xk)cos21(x−xk)(12)
توجه کنید که tk(x) شامل sin21Nx نیست. در نهایت، باید گفت که sin21Nx در همه نقاط xm حذف میشود.
رابطه درون یابی مثلثاتی با تبدیل فوریه گسسته
در حالت خاصی که فاصله نقاط xn با هم برابر است، داریم:
تبدیلی که نقطه دادههای yn را به ضرایب ak و bk مربوط میکند از تبدیل فوریه گسسته (DFT) مرتبه N به دست میآید:
Yk=n=0∑N−1yne−i2πNnk
yn=p(xn)=N1k=0∑N−1Ykei2πNnk
پیادهسازی درون یابی مثلثاتی در متلب
کد متلب روش درون یابی مثلثاتی به صورت زیر است:
1function P =triginterp(xi,x,y)2% TRIGINTERP Trigonometric interpolation.3% Input:4% xi evaluation points for the interpolant (vector)5% x equispaced interpolation nodes (vector, length N)6% y interpolation values (vector, length N)7% Output:8% P values of the trigonometric interpolant (vector)9N =length(x);10% Adjust the spacing of the given independent variable.11h =2/N;12scale =(x(2)-x(1))/ h;13x = x/scale; xi = xi/scale;14% Evaluate interpolant.15P =zeros(size(xi));16for k =1:N
17 P = P +y(k)*trigcardinal(xi-x(k),N);18end1920function tau =trigcardinal(x,N)21ws =warning('off','MATLAB:divideByZero');22% Form is different for even and odd N.23ifrem(N,2)==1% odd24 tau =sin(N*pi*x/2)./(N*sin(pi*x/2));25else% even26 tau =sin(N*pi*x/2)./(N*tan(pi*x/2));27end28warning(ws)29tau(x==0)=1;% fix value at x=0
اگر این مطلب برایتان مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
سید سراج حمیدی دانشآموخته مهندسی برق است و به ریاضیات و زبان و ادبیات فارسی علاقه دارد. او آموزشهای مهندسی برق، ریاضیات و ادبیات مجله فرادرس را مینویسد.
با سلام
میشه در رابطه با چندجمله ای های مثلثاتی بیشتر توضیح بدین یا ی کتاب معرفی کنید که مثالی از این چندجمله ای ها داشته باشه
با سپاس فراوان
سید سراج حمیدی
سلام. این چندجملهایها در توابع مختلط نیز مورد بحث قرار میگیرند. برای آشنایی بیشتر، پیشنهاد میکنیم به «آموزش توابع مختلط (Complex Functions)» مراجعه کنید.
از همراهیتان با مجله فرادرس، سپاسگزاریم.
با سلام
میشه در رابطه با چندجمله ای های مثلثاتی بیشتر توضیح بدین یا ی کتاب معرفی کنید که مثالی از این چندجمله ای ها داشته باشه
با سپاس فراوان
سلام. این چندجملهایها در توابع مختلط نیز مورد بحث قرار میگیرند. برای آشنایی بیشتر، پیشنهاد میکنیم به «آموزش توابع مختلط (Complex Functions)» مراجعه کنید.
از همراهیتان با مجله فرادرس، سپاسگزاریم.