| dbpprop:abstract
|
- In mathematics, bilinear interpolation is an extension of linear interpolation for interpolating functions of two variables on a regular grid. The key idea is to perform linear interpolation first in one direction, and then again in the other direction. Suppose that we want to find the value of the unknown function f at the point P = (x, y). It is assumed that we know the value of f at the four points Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1), and Q22 = (x2, y2). We first do linear interpolation in the x-direction. This yields f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}) \quad\mbox{where}\quad R_1 = (x,y_1), f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}) \quad\mbox{where}\quad R_2 = (x,y_2). We proceed by interpolating in the y-direction. f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). This gives us the desired estimate of f(x, y). \begin{align} f(x,y) &\approx \frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y_2-y) \\ & + \frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y_2-y) \\ & + \frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y-y_1) \\ & + \frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y-y_1). \end{align} If we choose a coordinate system in which the four points where f is known are (0, 0), (0, 1), (1, 0), and (1, 1), then the interpolation formula simplifies to 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) xy. Or equivalently, in matrix operations: 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}. Contrary to what the name suggests, the interpolant is not linear. Instead, it is of the form (a_1 x + a_2)(a_3 y + a_4), \, so it is a product of two linear functions. Alternatively, the interpolant can be written as b_1 + b_2 x + b_3 y + b_4 x y \, where b_1 = f(0,0) \, b_2 = f(1,0)-f(0,0) \, b_3 = f(0,1)-f(0,0) \, b_4 = f(0,0)-f(1,0)-f(0,1)+f(1,1). \, In both cases, the number of constants (four) correspond to the number of data points where f is given. The interpolant is linear along lines parallel to either the <math>x or the <math>y direction, equivalently if <math>x or <math>y is set constant. Along any other straight line, the interpolant is quadratic. The result of bilinear interpolation is independent of the order of interpolation. If we had first performed the linear interpolation in the y-direction and then in the x-direction, the resulting approximation would be the same. The obvious extension of bilinear interpolation to three dimensions is called trilinear interpolation.
- V matematice, je bilineární interpolace rozšíření lineární interpolace pro interpolaci funkce dvou proměnných na pravidelnou prostorovou mřížku. Klíčová myšlenka je provést lineární interpolaci nejprve v jednom směru a pak i ve druhém směru. Předpokládejme, že chceme najít hodnotu neznámé funkce f v bodě P = (x, y). Předpokladem je, že známe hodnotu f ve čtyřech bodech Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1), a Q22 = (x2, y2). Nejprve provedeme lineární interpolaci v x-ovém směru. To znamená: f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}) \quad\mbox{kde}\quad R_1 = (x,y_1), f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}) \quad\mbox{kde}\quad R_2 = (x,y_2). A teď budeme pokračovat v y-ovém směru. f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). Nyní máme požadovaný odhad f(x, y). \begin{align} f(x,y) &\approx \frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y_2-y) \\ & + \frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y_2-y) \\ & + \frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y-y_1) \\ & + \frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y-y_1). \end{align} Pokud si vybereme souřadící systém se čtyřmi body, kde funkce f je zadána body (0, 0), (0, 1), (1, 0), a (1, 1), pak se vzorec zjednoduší: 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) xy. Nebo ekvivalentně, maticovými operacemi: 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} Oproti tomu, co říká název, interpolace není lineární. Místo toho je její vzorec (a_1 x + a_2)(a_3 y + a_4), \, takže je výsledkem dvou lineárních funkcí. Stejně tak lze interpolaci zapsat jako b_1 + b_2 x + b_3 y + b_4 x y \, kde b_1 = f(0,0) \, b_2 = f(1,0)-f(0,0) \, b_3 = f(0,1)-f(0,0) \, b_4 = f(0,0)-f(1,0)-f(0,1)+f(1,1) \,. V obou případech počet konstant (čtyři) odpovídá počtu daných bodů, které funkce f udává. Interpolace je lineární podle přímky, která je rovnoběžná buď se směrem <math>x nebo <math>y, ekvivalentně je-li <math>x nebo <math>y nastaveno konstantně. Rovnoběžně s další přímkou je interpolace kvadratická. Výsledek bilineární interpolace je nezávislý na pořadí interpolací. Kdybychom nejprve provedli lineární interpolaci na ose y a pak v x-ovém směru, výsledná aproximace bude stejná. Zřejmým rozšířením bilineární interpolace je třírozměrná interpolace - třílineární interpolace.
- Interpolacja dwuliniowa jest rozszerzeniem interpolacji liniowej. Metoda ta pozwala na interpolację funkcji dwóch zmiennych. Intuicyjnie interpolacja dwuliniowa jest złożeniem dwóch interpolacji liniowych. W celu przeprowadzenia interpolacji dwuliniowej przeprowadza się dwie interpolacje liniowe dla jednego kierunku (np. wzdłuż osi OX w układzie kartezjańskim), a następnie dla tak uzyskanych wartości przeprowadza się interpolację liniową dla drugiego kierunku (osi OY). Najpierw przeprowadzana jest interpolacja liniowa wzdłuż osi OX, otrzymujemy: <math> f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}) \quad\mbox{gdzie}\quad R_1 = (x,y_1) </math> <math> f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}) \quad\mbox{gdzie}\quad R_2 = (x,y_2) </math> Natępnie przeprowadzana jest interpolacja wzdłuż osi OY: <math> f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). </math> Jeśli przyjmiemy system współrzędnych, w którym znane wartości funkcji f znajdują się w punktach o współrzędnych Q11(0, 0), Q12(0, 1), Q21(1, 0), i Q22(1, 1), wtedy wzór na interpolację upraszcza się do postaci: <math> 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) xy. </math> Postać macierzowa równania: <math> 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}</math> Wizualizacja interpolacji dwuliniowej. Wartość funkcji f w punkcie Q22 zmienia się od wartości 0.0 do 1.0; Interpolacja dwuliniowa używana jest m. in. w algorytmach służących do zmiany rozdzielczości obrazu cyfrowego.
- В вычислительной математике билинейной интерполяцией называют расширение линейной интерполяции для функций в двух переменных. Ключевая идея заключается в том, чтобы провести обычную линейную интерполяцию сначала в одном направлении, затем в другом. Файл:Bilinear interpolation. png Четыре красные точки представляют собой известные значения функции. Значение в зеленой точке должно быть интерполировано. Файл:Bilininterp. png Пример билинейной интерполяции в единичном квадрате. Значения вершин составляют 0, 1, 1 и 0.5. Интерполированные значения в каждой точке представлены цветом. Допустим, что необходимо интерполировать значение функции f в точке P = (x, y). Для этого необходимо знать значения функций в (окружающих P) точках Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1), и Q22 = (x2, y2). Первым шагом интерполируется (линейно) значение вспомогательных точек <math>R_1 и <math>R_2 вдоль оси абсцисс, где R_1 = (x,y_1) R_2 = (x,y_2) f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}) f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}) Теперь проводится линейная интерполяция между вспомогательными точками <math>R_1 и <math>R_2. f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). Это и есть приблизительное значение функции в точке P, т. е. f(x, y). \begin{align} f(x,y) &\approx \frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y_2-y) \\ & + \frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y_2-y) \\ & + \frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y-y_1) \\ & + \frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y-y_1). \end{align} В особом случае, когда известные точки находятся на вершинах единичного квадрата, т. е. имеют координаты (0, 0), (0, 1), (1, 0), и (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) xy. Или же с помощью умножения векторов с матрицей: 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} Обратите внимание: сам интерполянт нелинеен: (a_1 x + a_2)(a_3 y + a_4), \, т. к. является произведением двух линейных функций. Альтернативное написание: b_1 + b_2 x + b_3 y + b_4 x y \, где b_1 = f(0,0) \, b_2 = f(1,0)-f(0,0) \, b_3 = f(0,1)-f(0,0) \, b_4 = f(0,0)-f(1,0)-f(0,1)+f(1,1) \,. Результат билинейной интерполяции не зависит от порядка шагов. Возможно сначала интерполировать между известными точками вдоль оси ординат и затем, получив два вспомогательных значения, интерполировать между ними вдоль оси абсцисс. Результат будет тот же. Очевидное расширение билинейной интерполяции на функции в трех переменных — трилинейная интерполяция.
- Білінійна інтерполяція — узагальнення лінійної інтерполяції для функції двох змінних. Ідея в тому, що проводиться лінійна інтерполяція по одній осі, а потім по іншій осі. Файл:Bilinear interpolation. png Відомо значення функції в чотирьох червоних точках. Значення функції в зеленій точці потрібно інтерполювати. Файл:Bilininterp. png Приклад білінійної інтерполяції в одиничному квадраті. Інтерпольовані значення представлені кольором. Якщо необхідно інтерполювати значення функції f в точці P = (x, y). І задано значення функції в навколишніх до P точках Q11 = (x1, y1), Q12 = (x1, y2), Q21 = (x2, y1), и Q22 = (x2, y2). Спершу лінійно інтерполюємо в напрямку осі x: <math> f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}), \quad R_1 = (x,y_1)</math> <math> f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}), \quad R_2 = (x,y_2)</math> Тепер проводимо линійну інтерполяцію в напрямку осі y (між точками <math>R_1</math> та <math>R_2</math>) щоб отримати кінцевий результат: <math> f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). </math> Коли відомі вершини є вершинами одиничного квадрата: (0, 0), (0, 1), (1, 0) та (1, 1), формула білінійної інтерполяції спрощується до <math> 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) xy. </math> можна записати у вигляді наступної білінійної форми: <math> 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}</math> Інтерполяція є добутком двох лінійних функцій. І вона також може бути записана як: <math> b_1 + b_2 x + b_3 y + b_4 x y \, </math> де <math> b_1 = f(0,0) \,</math> <math> b_2 = f(1,0)-f(0,0) \,</math> <math> b_3 = f(0,1)-f(0,0) \,</math> <math> b_4 = f(0,0)-f(1,0)-f(0,1)+f(1,1) \,</math>. Результат білінійної інтерполяції не залежить від порядку виконання кроків інтерполяції. Очевидним узагальненням білінійної інтерполяції на функцію трьох змінних є — трилінійна інтерполяція.
- 雙線性插值,又稱為雙線性內插。在数学上,双线性插值是有两个变量的插值函数的线性插值扩展,其核心思想是在两个方向分别进行一次线性插值。 假如我们想得到未知函数 f 在点 P = (x, y) 的值,假设我们已知函数 f 在 Q11 = (x1, y1)、Q12 = (x1, y2), Q21 = (x2, y1) 以及 Q22 = (x2, y2) 四个点的值。 首先在 x 方向进行线性插值,得到 <math> f(R_1) \approx \frac{x_2-x}{x_2-x_1} f(Q_{11}) + \frac{x-x_1}{x_2-x_1} f(Q_{21}) \quad\mbox{where}\quad R_1 = (x,y_1), </math> <math> f(R_2) \approx \frac{x_2-x}{x_2-x_1} f(Q_{12}) + \frac{x-x_1}{x_2-x_1} f(Q_{22}) \quad\mbox{where}\quad R_2 = (x,y_2). </math> 然后在 y 方向进行线性插值,得到 <math> f(P) \approx \frac{y_2-y}{y_2-y_1} f(R_1) + \frac{y-y_1}{y_2-y_1} f(R_2). </math> 这样就得到所要的结果 f(x, y), <math> f(x,y) \approx \frac{f(Q_{11})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y_2-y) + \frac{f(Q_{21})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y_2-y) </math> <math> + \frac{f(Q_{12})}{(x_2-x_1)(y_2-y_1)} (x_2-x)(y-y_1) + \frac{f(Q_{22})}{(x_2-x_1)(y_2-y_1)} (x-x_1)(y-y_1). </math> 如果选择一个坐标系统使得 f 的四个已知点坐标分别为 (0, 0)、(0, 1)、(1, 0) 和 (1, 1),那么插值公式就可以化简为 <math> 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) xy. </math> 或者用矩阵运算表示为 <math> 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}</math> 与这种插值方法名称不同的是,这种插值方法并不是线性的,它的形式是 <math> (a_1 x + a_2)(a_3 y + a_4), \, </math> 它是两个线性函数的乘积。另外,插值也可以表示为 <math> b_1 + b_2 x + b_3 y + b_4 x y. \, </math> 在这两种情况下,常数的数目]都对应于给定的 f 的数据点数目。 线性插值的结果与插值的顺序无关。首先进行 y 方向的插值,然后进行 x 方向的插值,所得到的结果是一样的。 双线性插值的一个显然的三维空间延伸是三线性插值。
|