شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
گاهی لازم است مقدار تابعy=f(x) را در یک نقطه معین x، بر اساس مقادیر معلوم f(x0)، ... و f(xn) در مجموعه n+1 نقطه a=x0≤x1≤⋯≤xn=b در بازه [a,b] تخمین بزنیم. اگر a<x<b باشد، این فرایند «درونیابی» (Interpolation) نامیده میشود و اگر x<a یا x>b باشد، به آن «برونیابی» (Extrapolation) میگوییم. در این آموزش، با «درون یابی چند جمله ای» (Polynomial Interpolation) آشنا میشویم.
که در آن، n+1 ضریب a0، ... و an را میتوان با n+1 نقطه داده شده به دست آورد. وقتی Pn(x) را به دست آوریم، میتوانیم هر عملیاتی (مانند مشتقگیری، انتگرالگیری، یا یافتن ریشه) را که میخواهیم روی تابع f(x) انجام دهیم، آن را به صورت تقریب به Pn(x)≈f(x) اعمال کنیم. این کار، به ویژه در مواقعی که تابع f(x) یک تابع غیرمقدماتی بوده و در نتیجه، کار با آن دشوار باشد، یا فرم بستهای نداشته باشد، بسیار کارساز خواهد بود.
به طور مشخص، برای یافتن ضرایب Pn(x)، لازم است همه نقاط {xi,yi=f(xi),i=0,⋯,n}، یعنی n+1 معادله خطی زیر را داشته باشیم:
Pn(xi)=j=0∑najxij=f(xi)=yi,(i=0,⋯,n)
اکنون میتوان ضرایب a0، ... و an را با حل این n+1معادله خطی به دست آورد. این معادلات را میتوان به فرمی ماتریسی زیر نوشت:
ماتریس V به عنوان «ماتریس وندرموند» (Vandermonde Matrix) شناخته میشود. با حل این دستگاه، ضرایب [a0,⋯,an]T=a=V−1y به دست میآیند. در اینجا، n+1 چندجملهای x0، x1، x2، ... و xn را میتوان به عنوان مجموعهای از توابع پایه چندجملهای در نظر گرفت که فضای همه چندجملهایهای درجه nاُم را اسپن میکنند. اگر نقاط x0، ... و xn متمایز باشند، یعنی V دارای رتبه کامل بوده و معکوس آن، V−1، وجود داشته باشد، آنگاه جواب سیستم a=V−1f و در نتیجه Pn(x) یکتا است.
البته در عمل این روش به دو دلیل استفاده نمیشود: اول اینکه پیچیدگی محاسباتی O(n3) برای محاسبه معکوس V زیاد است و دوم اینکه با افزایش n ماتریس V بدحالتتر میشود. بنابراین روشهای دیگری نیز برای درونیابی پیشنهاد شدهاند.
خطای درون یابی چند جمله ای اینگونه تعریف میشود:
Rn(x)=f(x)−Pn(x)
که در حالت کلی غیرصفر است، البته جز در نقطه x=xi که Rn(xi)=0,(i=0,⋯,n) است. به عبارت دیگر، تابع خطای Rn(x) دارای n+1 ریشه در x0، ... و xn است و در نتیجه، میتوان آن را به صورت زیر نوشت:
Rn(x)=u(x)i=0∏n(x−xi)=u(x)ω(x)
که در آن، u(x) یک تابع مجهول و ω(x) یک چندجملهای درجه n+1 است که به صورت زیر تعریف میشود:
ω(x)=i=0∏n(x−xi)
برای یافتن u(x)، تابع دیگری به نام F(t) از متغیر t را تشکیل میدهیم که در آن، هر x∈(a,b) به عنوان یک پارامتر در نظر گرفته میشود:
بنابراین، میتوان گفت که F(t) دارای n+2 ریشه در x0، ... و xn و x است. قضیه رول بیان میکند که تابع مشتق f′(x) هر تابع مشتقپذیر f(x) که در رابطه f(a)=f(b)=0 صدق میکند، باید حداقل یک ریشه در c∈(a,b) داشته باشد. طبق «قضیه رول» (Rolle's Theorem)، F′(t) حداقل n+1 ریشه بین دو ریشه متوالی F(t) دارد و F′′(t) حداقل n ریشه، و F(n+1)(t) حداقل یک ریشه در ξ∈(a,b) دارد:
$$ \large \begin {eqnarray}<br />
F ^ { ( n + 1 ) } ( \xi ) = 0 & = & \frac { d ^ { n + 1 } } { d t ^ { n + 1 } }<br />
\left [ f ( t ) - P _ n ( t) - u ( x ) \prod _ { i = 0 } ^ n ( t -x _ i ) \right ] _ { t = \xi }<br />
\nonumber \\<br />
& = & \left [ f ^ { ( n + 1 ) } ( t ) + P _ n ^ { ( n + 1 ) } ( t ) - u ( x ) \frac { d ^ { n + 1 } } { d t ^ { n + 1 } } \prod _ { i = 0 } ^ n ( t - x _ i ) \right ] _ { t = \xi }<br />
\nonumber \\<br />
& = & f ^ { ( n + 1 ) } ( \xi ) - u ( x ) ( n + 1 ) !<br />
\end {eqnarray} $$
معادله آخر به این دلیل است که Pn(t) و i=0∏n(t−xi)، به ترتیب، چندجملهایهایی از درجه n و n+1 از t هستند. با حل معادله بالا، داریم:
u(x)=(n+1)!f(n+1)(ξ)
اکنون تابع خطا را میتوان به صورت زیر نوشت:
Rn(x)=u(x)i=0∏n(x−xi)=(n+1)!f(n+1)(ξ)ω(x)
که در آن، ξ(x) نقطهای است که بسته به x، بین a=x0 و b=xn واقع شده است. خطا را میتوان به صورت کمّی و توسط نُرم دوRn(x) اندازهگیری کرد:
ϵ=∣∣Rn(x)∣∣2=(∫abRn2(x)dx)1/2
در عمل، اگر f(x) یک چندجملهای مرتبه k≤n و در نتیجه f(n+1)(x)=0 باشد، آنگاه میتوان آن را با Pn(x) رونیابی دقیق کرد. اما اگر k>n باشد، درونیابی یک جمله خطای غیرصفر f(n+1)(x)=(n+1)! دارد و جمله خطا به صورت زیر در خواهد آمد:
Rn(x)=(n+1)!f(n+1)(ξ)ω(x)=ω(x)
به دلیل یکتایی درون یابی چند جمله ای ، تحلیل خطای بالا را میتوان به همه روشهای دیگر درونیابی، از قبیل لاگرانژ و نیوتن نیز اعمال کرد.
مثال درون یابی چند جمله ای
تابع y=f(x)=xsin(2x+π/4)+1 را با یک چندجملهای P3(x) با درجه n=3، طبق n+1=4 نقطه زیر تقریب بزنید.
و در نتیجه، چندجملهای درونیاب به عنوان یک مجموع وزندار از n+1=4 تابع توانی به عنوان توابع پایه برای اسپن فضای چندجملهای به دست میآید:
P3(x)=j=0∑najxj=1.0+0.369x+0.643x2−0.663x3
این چندجملهای درونیاب P3(x) در شکل زیر نشان داده شده و با تابع اصلی f(x) مقایسه شده است. خطای ϵ را میتوان با یک مجموعه از k>>n نمونه گسسته u1، ... و uk از تابع f(x) و چندجملهای درونیاب P3(x) تقریب زد:
سید سراج حمیدی دانشآموخته مهندسی برق است و به ریاضیات و زبان و ادبیات فارسی علاقه دارد. او آموزشهای مهندسی برق، ریاضیات و ادبیات مجله فرادرس را مینویسد.
۷ دیدگاه برای «درون یابی چند جمله ای – به زبان ساده»
شهاب
من فکر میردم میبایست ماتریس معوس وندرموند محاسبه و اعمال میشد نه اینکه خود ماتریس وندرموند. آیا اشتباه میکنم؟ لطفا راهنمایی بفرمایید
شهاب
در ماتریس وندرموند به جای عدد 8 عدد 9 مرقوم شده است. ssss
حسین زبرجدی دانا
با سلام؛
متن اصلاح شد.
از همراهی شما با مجله فرادرس سپاسگزاریم
مهرداد
سلام.بخشید u رو توی matlab باید چی بزنیم که برنامه جواب بده؟
مهراد ترکمان
عذر خواهی میکنم منظورم پدیده رونگه یا همون runge phenomenon بود. فکر میکنم میتونه معایب این روش درون یابی و ارجحیت درونیابی اسپلاین رو بخوبی نشون بده. باتشکر از سایت خوبتون.
شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
من فکر میردم میبایست ماتریس معوس وندرموند محاسبه و اعمال میشد نه اینکه خود ماتریس وندرموند. آیا اشتباه میکنم؟ لطفا راهنمایی بفرمایید
در ماتریس وندرموند به جای عدد 8 عدد 9 مرقوم شده است. ssss
با سلام؛
متن اصلاح شد.
از همراهی شما با مجله فرادرس سپاسگزاریم
سلام.بخشید u رو توی matlab باید چی بزنیم که برنامه جواب بده؟
عذر خواهی میکنم منظورم پدیده رونگه یا همون runge phenomenon بود. فکر میکنم میتونه معایب این روش درون یابی و ارجحیت درونیابی اسپلاین رو بخوبی نشون بده. باتشکر از سایت خوبتون.
سلام.
در مطلب «درون یابی اسپلاین — از صفر تا صد» به پدیده رونگه اشاره کردهایم.
سپاس از همراهیتان.
راجع به پدیده رانگ هم توضیح دهید. با تشکر.