赤い4つの点 (Q 11 , Q 12 , Q 21 , Q 22 ) はデータ位置を示し、緑の点 (P ) は内挿される位置を示す。
四隅にz値として0, 1, 1および0.5を置いた単位正方形における共一次内挿の例。各値間の内挿値は色によって示されている。
共一次内挿 (きょういちじないそう、英: bilinear interpolation )とは、二次元格子 上の2つの変数 (例えば、x とY ) が作用する内挿 に対する線形補間 の拡張である。
基本的な考えは最初に一方向の線形補間を行い、次にもう一方向の補間を行うことである。各段階ではその方向における標本値について線形であるが、内挿全体でみれば線形というよりもむしろ標本位置における二次の内挿といえる。
位置 (x , y ) における未知の関数 f の値を求めることを考える。 Q 11 = (x 1 , y 1 ), Q 12 = (x 1 , y 2 ), Q 21 = (x 2 , y 1 ) および Q 22 = (x 2 , y 2 ) の4点における f の値が分かっているものとする。
最初にx 方向の線形補間を行う。これは
f
(
x
,
y
1
)
≈
x
2
−
x
x
2
−
x
1
f
(
Q
11
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
21
)
f
(
x
,
y
2
)
≈
x
2
−
x
x
2
−
x
1
f
(
Q
12
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
22
)
{\displaystyle {\begin{aligned}f(x,y_{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(x,y_{2})&\approx {\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22})\end{aligned}}}
を与える。
目的とする推定値を得るためにy 方向の内挿を続ける:
f
(
x
,
y
)
≈
y
2
−
y
y
2
−
y
1
f
(
x
,
y
1
)
+
y
−
y
1
y
2
−
y
1
f
(
x
,
y
2
)
≈
y
2
−
y
y
2
−
y
1
(
x
2
−
x
x
2
−
x
1
f
(
Q
11
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
21
)
)
+
y
−
y
1
y
2
−
y
1
(
x
2
−
x
x
2
−
x
1
f
(
Q
12
)
+
x
−
x
1
x
2
−
x
1
f
(
Q
22
)
)
=
1
(
x
2
−
x
1
)
(
y
2
−
y
1
)
(
f
(
Q
11
)
(
x
2
−
x
)
(
y
2
−
y
)
+
f
(
Q
21
)
(
x
−
x
1
)
(
y
2
−
y
)
+
f
(
Q
12
)
(
x
2
−
x
)
(
y
−
y
1
)
+
f
(
Q
22
)
(
x
−
x
1
)
(
y
−
y
1
)
)
{\displaystyle {\begin{aligned}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})\\&\approx {\frac {y_{2}-y}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{11})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{21})\right)+{\frac {y-y_{1}}{y_{2}-y_{1}}}\left({\frac {x_{2}-x}{x_{2}-x_{1}}}f(Q_{12})+{\frac {x-x_{1}}{x_{2}-x_{1}}}f(Q_{22})\right)\\&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}\left(f(Q_{11})(x_{2}-x)(y_{2}-y)+f(Q_{21})(x-x_{1})(y_{2}-y)+f(Q_{12})(x_{2}-x)(y-y_{1})+f(Q_{22})(x-x_{1})(y-y_{1})\right)\end{aligned}}}
ここで留意することは、最初にy 方向、次にx 方向に沿って内挿を行ったとしても同じ値が得られる点である。
挿入問題の解決に対する別方法は
f
(
x
,
y
)
≈
a
0
+
a
1
x
+
a
2
y
+
a
3
x
y
{\displaystyle f(x,y)\approx a_{0}+a_{1}x+a_{2}y+a_{3}xy}
と書ける。ここで線形システムを解くことにより係数が求められる。
[
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
]
[
a
0
a
1
a
2
a
3
]
=
[
f
(
Q
11
)
f
(
Q
12
)
f
(
Q
21
)
f
(
Q
22
)
]
{\displaystyle {\begin{aligned}{\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_{11})\\f(Q_{12})\\f(Q_{21})\\f(Q_{22})\end{bmatrix}}\end{aligned}}}
f(Q) についての解が欲しいなら
f
(
x
,
y
)
≈
b
11
f
(
Q
11
)
+
b
12
f
(
Q
12
)
+
b
21
f
(
Q
21
)
+
b
22
f
(
Q
22
)
{\displaystyle f(x,y)\approx b_{11}f(Q_{11})+b_{12}f(Q_{12})+b_{21}f(Q_{21})+b_{22}f(Q_{22})}
と書くことができる。ここで係数は
[
b
11
b
12
b
21
b
22
]
=
(
[
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
]
−
1
)
T
[
1
x
y
x
y
]
{\displaystyle {\begin{bmatrix}b_{11}\\b_{12}\\b_{21}\\b_{22}\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)^{T}{\begin{bmatrix}1\\x\\y\\xy\end{bmatrix}}}
を解くことにより得られる。
関数 f の4点(0, 0), (0, 1), (1, 0) , および (1, 1)が明らかになっている座標系の場合、挿入式は次のように簡単化できる。
f
(
x
,
y
)
≈
f
(
0
,
0
)
(
1
−
x
)
(
1
−
y
)
+
f
(
1
,
0
)
x
(
1
−
y
)
+
f
(
0
,
1
)
(
1
−
x
)
y
+
f
(
1
,
1
)
x
y
.
{\displaystyle 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
)
≈
[
1
−
x
x
]
[
f
(
0
,
0
)
f
(
0
,
1
)
f
(
1
,
0
)
f
(
1
,
1
)
]
[
1
−
y
y
]
{\displaystyle 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}}}
となる。
名前が意味することに反して、共一次内挿は 非 線形である。これは2つの一次関数 の積なのである。
あるいは(かわりに)、挿入は次のように書くことができる。
f
(
x
,
y
)
=
∑
i
=
0
1
∑
j
=
0
1
a
i
j
x
i
y
j
=
a
00
+
a
10
x
+
a
01
y
+
a
11
x
y
{\displaystyle f(x,y)=\sum _{i=0}^{1}\sum _{j=0}^{1}a_{ij}x^{i}y^{j}=a_{00}+a_{10}x+a_{01}y+a_{11}xy}
ここで
a
00
=
f
(
0
,
0
)
{\displaystyle a_{00}=f(0,0)}
a
10
=
f
(
1
,
0
)
−
f
(
0
,
0
)
{\displaystyle a_{10}=f(1,0)-f(0,0)}
a
01
=
f
(
0
,
1
)
−
f
(
0
,
0
)
{\displaystyle a_{01}=f(0,1)-f(0,0)}
a
11
=
f
(
1
,
1
)
+
f
(
0
,
0
)
−
(
f
(
1
,
0
)
+
f
(
0
,
1
)
)
{\displaystyle a_{11}=f(1,1)+f(0,0)-(f(1,0)+f(0,1))}
幾何的に可視化すれば、黒い点の値は各色の点にそれと同じ色の矩形域を全4矩形域の合計で割った値を掛けた値の合計値である。
両者において、定数の数 (ここでは4) は f で与えられるデータ点の数と一致する。挿入は x か y いずれかの方向に平行 な線に沿って線形であり、 x や y が一定値であっても同様である。他の直線に沿っては、挿入は二次 となる。しかしながら、挿入が (x と y' の')の向きで 非 線形であったとしても、それは偏角の上では線形であり、上の式からも明らかである。なぜなら、すべての係数 aj , j=1..4は関数 f(,) の値に対して比例しているからである。