درون یابی دو خطی — به زبان ساده

۱۳۴۶ بازدید
آخرین به‌روزرسانی: ۱۳ اردیبهشت ۱۴۰۲
زمان مطالعه: ۸ دقیقه
درون یابی دو خطی — به زبان ساده

در ریاضیات، درون یابی دو خطی (Bilinear Interpolation) تعمیمی از درون‌یابی خطی برای درون‌یابی توابع دو متغیره (به عنوان مثال، تابعی از x و y) در یک شبکه دو بُعدی افقی-عمودی است. درون یابی دو خطی با استفاده از درون‌یابی خطی ابتدا در یک جهت و سپس به کار گیری آن در جهت دیگر انجام می‌شود. اگرچه هر مرحله الگوریتم درون یابی دو خطی خطی است، اما پاسخ نهایی به دست آمده دیگر خطی نیست و می‌توان گفت که درجه دوم است. درون یابی دو خطی یکی از تکنیک‌های اساسی «بازنمونه‌گیری» (Resampling) در بینایی ماشین و پردازش تصویر است.

الگوریتم درون یابی دو خطی

فرض کنید می‌خواهیم مقدار تابع مجهول $$ f $$ را در نقطه $$ ( x , y ) $$ بیابیم. فرض می‌کنیم که مقدار $$f$$ را در چهار نقطه $$ Q _ {11} = ( x_1 , y _ 1 )$$، $$ Q _ { 1 2} = ( x _ 1 , y _ 2 ) $$، $$ Q _ { 21} = ( x _ 2 , y _ 1 ) $$ و $$ Q _ { 22} = ( x _ 2 , y _ 2 ) $$ می‌دانیم.

ابتدا درون‌یابی خطی را برای $$ x $$ انجام می‌دهیم. در نتیجه، خواهیم داشت:

$$  \begin {align}
f ( x , y _ 1 ) & \approx \frac { x _ 2 - x } { x _ 2 - x _ 1 } f ( Q _ { 1 1 } ) + \frac { x - x _ 1 } { x _ 2 - x _ 1 } f ( Q _ { 2 1 } ) , \\
f ( x , y _ 2 ) & \approx \frac { x _ 2 - x } { x _ 2 - x _ 1 } f ( Q _ { 1 2 } ) + \frac { x - x _ 1 } { x _ 2 - x _ 1 } f ( Q _ { 2 2 } ) .
\end {align} $$

در ادامه، درون‌یابی را برای $$ y $$ انجام داده و مقدار مطلوب را به دست خواهیم آورد:

$$ \begin {align}
f ( x , y ) & \approx \frac { y _ 2 – y } { y _ 2 – y _ 1 } f ( x , y _ 1 ) + \frac { y – y _ 1 } { y _ 2 – y _ 1 } f ( x , y _ 2 ) \\
& = \frac { y _ 2 – y } { y _ 2 – y _ 1 } \left ( \frac { x _ 2 -x } { x _ 2 – x _ 1 } f ( Q _ { 1 1 } ) + \frac { x – x _ 1 } { x _ 2 – x _ 1 } f ( Q _ { 2 1 } ) \right ) + \frac { y – y _ 1 } { y _ 2 – y _ 1 } \left ( \frac { x _ 2 – x } { x _ 2 – x _ 1 } f ( Q _ { 1 2 } ) + \frac { x – x _ 1 } { x _ 2 – x _ 1 } f ( Q _ { 2 2 } ) \right ) \\
& = \frac { 1 } { ( x _ 2 – x _ 1 ) ( y _ 2 – y _ 1 ) } \big ( f ( Q _ { 1 1 } ) ( x _ 2 – x ) ( y _ 2 – y ) + f ( Q _ { 2 1 } ) ( x – x _ 1 ) ( y _ 2 – y ) \\ & \quad \;+ f ( Q _ { 1 2 } ) ( x _ 2 – x ) ( y -y _ 1 ) + f ( Q _ { 2 2 } ) ( x – x _ 1 ) ( y- y _1 ) \big ) \\
& = \frac { 1 } { ( x _ 2 – x _ 1 ) ( y _ 2 – y _ 1 ) } \begin {bmatrix} x _ 2 – x & x – x _ 1 \end {bmatrix} \begin {bmatrix} f ( Q _ { 1 1 } ) & f ( Q _ { 1 2 } ) \\ f ( Q _ { 2 1 } ) & f ( Q _ { 2 2 } ) \end {bmatrix} \begin {bmatrix}
y _ 2 – y \\ y – y _ 1 \end {bmatrix} .
\end {align} $$

توجه کنید که اگر ابتدا درون‌یابی را برای $$ y $$ و بعد از آن برای $$ x $$ انجام دهیم، به نتیجه مشابهی خواهیم رسید.

شکل زیر، نمای بصری روش درون یابی دو خطی را نشان می‌دهد. در این شکل، چهار نقطه قرمز، نقاط داده هستند و نقطه سبز نقطه مورد نظر برای درون‌یابی است.

درون یابی دو خطی

یک روش دیگر برای درون یابی دو خطی

یک روش دیگر برای یافتن جواب درون یابی دو خطی به صورت زیر است:

$$ f ( x , y ) \approx a _ 0 + a _ 1 x + a _ 2 y + a _ 3 x y $$

که در آن، ضرایب از حل دستگاه زیر به دست می‌آیند:

$$ \begin {align}
\begin {bmatrix}
1 & x _ 1 & y _ 1 & x _ 1 y _ 1 \\
1 & x _ 1 & y _ 2 & x _ 1 y _ 2 \\
1 & x _ 2 & y _ 1 & x _ 2 y _ 1 \\
1 & x _ 2 & y _ 2 & x _ 2 y _ 2
\end {bmatrix} \begin {bmatrix}
a _ 0 \\ a _ 1 \\ a _ 2 \\ a _ 3
\end {bmatrix} = \begin {bmatrix}
f ( Q _ { 1 1 } ) \\ f ( Q _ { 1 2 } ) \\ f ( Q _ { 2 1 } ) \\ f ( Q _ { 2 2 } )
\end {bmatrix}
\end {align} $$

این ضرایب به صورت زیر هستند:

$$ a _ 0 = \frac { f ( Q _ { 1 1 } ) x _ 2 y _ 2 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } + \frac { f ( Q _ { 1 2 } ) x _ 2 y _ 1 }{ ( x _ 1 - x _ 2 ) ( y _ 2 - y _1 ) } + \frac { f ( Q _ { 2 1 } ) x _ 1 y _ 2 } { ( x _1 - x _ 2 ) ( y _ 2 - y _ 1 ) } + \frac { f ( Q _ { 2 2 } ) x _ 1 y _ 1 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } , $$

$$ a _ 1 = \frac { f ( Q _ { 1 1 } ) y _ 2 } { ( x _ 1 - x _ 2 ) ( y _ 2 - y _ 1 ) } + \frac { f ( Q _ { 1 2 } ) y _ 1 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } + \frac { f ( Q _ { 2 1 } ) y _ 2 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } + \frac { f ( Q _ { 2 2 } ) y _ 1 } { ( x _ 1 - x _ 2 ) ( y _ 2 - y _ 1 ) } , $$

$$ a _ 2 = \frac { f ( Q _ { 1 1 } ) x _ 2 } { ( x _ 1 - x _ 2 ) ( y _ 2 - y _ 1 ) } + \frac { f ( Q _ { 1 2 } ) x _ 2 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } + \frac { f ( Q _ { 2 1} ) x _ 1 } { ( x _ 1 - x _ 2 ) ( y _ 1 - y _ 2 ) } + \frac { f ( Q _ { 2 2 } ) x _ 1 } { ( x _ 1 - x _ 2 ) ( y _ 2 - y _ 1 ) } , $$

اگر بخواهیم جواب را برحسب $$ f ( Q ) $$ بنویسیم، خواهیم داشت:

$$ f ( x , y ) \approx b _ { 1 1 } f ( Q _ { 1 1 } ) + b _ { 1 2 } f ( Q _ { 1 2 } ) + b _ { 2 1 } f ( Q _ { 2 1 } ) + b _ { 2 2 } f ( Q _ { 2 2 } ) $$

که در آن، ضرایب را می‌توان به صورت زیر به دست آورد:

$$ \begin {bmatrix}
b _ { 1 1 } \\ b _ { 1 2 } \\ b _ { 2 1 } \\ b _ { 2 2 }
\end {bmatrix} =
\left ( \begin {bmatrix}
1 & x _ 1 & y _ 1 & x _ 1 y _ 1 \\
1 & x _ 1 & y _ 2 & x _ 1 y _ 2 \\
1 & x _ 2 & y _ 1 & x _ 2 y _ 1 \\
1 & x _ 2 & y _ 2 & x _ 2 y _ 2
\end {bmatrix} ^ { - 1 } \right ) ^ { \rm T } \begin {bmatrix}
1 \\ x \\ y \\ x y
\end {bmatrix} . $$

درون یابی دو خطی مربع واحد

اگر دستگاه مختصاتی را انتخاب کنیم که چهار نقطه $$ f $$ آن $$ ( 0 , 0 )$$، $$ ( 1 , 0 ) $$، $$ ( 0 , 1 ) $$ و $$ ( 1  , 1 ) $$ باشند، آنگاه فرمول درون‌یابی به صورت زیر است:

$$ f ( x , y ) \approx f ( 0 , 0 ) ( 1 - x ) ( 1 - y ) + f ( 1 , 0 ) x ( 1 - y ) + f ( 0 , 1 ) ( 1 - x ) y + f ( 1 , 1 ) x y $$

یا به طور معادل به صورت ماتریسی داریم:

$$ f ( x , y ) \approx \begin {bmatrix} 1 - x & x \end {bmatrix} \begin {bmatrix} f ( 0 , 0 ) & f ( 0 , 1 ) \\ f ( 1 , 0 ) & f ( 1 , 1 ) \end {bmatrix} \begin {bmatrix}
1 - y \\ y \end {bmatrix} . $$

درون یابی دو خطی غیرخطی

همان‌گونه که از نام آن پیداست، درون یابی دو خطی خطی نیست و ضرب دو تابع خطی است. برای مثال، درون یابی دو خطی بالا که به دست آمد، دارای ضرب مقادیر $$ x $$ و $$ y $$ است.

همچنین، درون‌یابی در مربع واحد را می‌توان به صورت زیر نوشت:

$$ f ( x , y ) = \sum _ { i = 0 } ^ 1 \sum _ { j = 0 } ^ 1 a _ { i j } x ^ i y ^ j = a _ { 0 0 } + a _ { 1 0 } x + a _ { 0 1 } y + a _ { 1 1 } x y $$

که در آن:

$$ \begin {align*} a _ { 0 0 } & = f ( 0 , 0 ) ,
\\ a _ { 1 0 } & = f ( 1 , 0 ) - f ( 0 , 0 ) ,
\\ a _ { 0 1 } & = f ( 0 , 1 ) - f ( 0 , 0 ) ,
\\ a _ { 1 1 } & = f ( 1 , 1 ) + f ( 0 , 0 ) -\big ( f ( 1 , 0 ) + f ( 0 , 1 ) \big ) . \end {align*} $$

نتیجه درون یابی دو خطی مستقل از آن محوری است که اول یا دوم درون‌یابی می‌شود. اگر در ابتدا درون‌یابی خطی در جهت $$ y$$ انتخاب و سپس در جهت $$ x $$ انجام شود، نتیجه تقریب مشابه خواهد بود.

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

^^

بر اساس رای ۹ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Wikipedia
۱ دیدگاه برای «درون یابی دو خطی — به زبان ساده»

با سلام، خواهشمند است بفرمایید برای درونیابی دو بعدی در اکسل راه حل چیست؟ آیا تابعی وجود دارد؟

نظر شما چیست؟

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