コンテンツにスキップ

「線形補間」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Aibot (会話 | 投稿記録)
m ロボットによる 追加: uk:Лінійна інтерполяція
Natad (会話 | 投稿記録)
編集の要約なし
1行目: 1行目:
[[ファイル:ScientificGraphSpeedVsTime.svg|thumb|250px|区分的線形補間の例]]
'''線形補間'''(せんけいほかん)は、線形多項式を用いた回帰分析の手法である。'''1次補間'''としても知られている。これは[[数学]]の世界(特に[[数値解析]])や[[コンピュータグラフィックス]]を含む多くの分野で非常によく使われている。これは[[補間]]の単純な形式であ


'''線形補間'''(せんけいほかん)は、[[多項式補間]]の特殊なケースで、[[線形多項式]](一次式)を用いた回帰分析の手法である。'''1次補間'''としても知られている。実用上は、線形補間を区分的に適用した'''区分的線形補間'''(1次[[スプライン補間]]、いわゆる[[折れ線グラフ]])が重要で、通常は単に線形補間と総称する。
==線形補間を行う方法==


線形補間は[[数学]]の世界(特に[[数値解析]])や[[コンピュータグラフィックス]]を含む多くの分野で非常によく使われている。[[補間]]の非常に単純な形式であり、これより単純なのは[[最近傍補間]](0次補間)しかない
<table border="0" width="220" cellpadding="3" align="right">

<tr><td>[[Image:Linear_interpolation.png]]</td></tr>
==線形補間を行う方法==
</table>
[[ファイル:Linear_interpolation.png|thumb|250px]]


座標(''x''<sub>0</sub>, ''y''<sub>0</sub>)と(''x''<sub>1</sub>, ''y''<sub>1</sub>)があるとする。ここで、
座標(''x''<sub>0</sub>, ''y''<sub>0</sub>)と(''x''<sub>1</sub>, ''y''<sub>1</sub>)があるとする。ここで、
28行目: 29行目:
この式から、<math>\alpha</math>の値を計算すると直接''y''の値を得られることが分かる。この式は''x''が''x''<sub>0</sub>と''x''<sub>1</sub>の間になくても成立する。それ故に、<math>\alpha</math>は0から1の間にないかもしれないが、その場合通常は''比率''とは呼ばれない。その場合は'''線形外挿法'''と呼ばれる。[[外挿]]を参照のこと。
この式から、<math>\alpha</math>の値を計算すると直接''y''の値を得られることが分かる。この式は''x''が''x''<sub>0</sub>と''x''<sub>1</sub>の間になくても成立する。それ故に、<math>\alpha</math>は0から1の間にないかもしれないが、その場合通常は''比率''とは呼ばれない。その場合は'''線形外挿法'''と呼ばれる。[[外挿]]を参照のこと。


''y''が既知で''x''を知りたい場合、手続きとしては''x''と''y''を交換すれば同じである。
''y''が既知で''x''を知りたい場合、''x''と''y''を交換してまったく同じ手続きをすればいい。これはもっと複雑な補間アルゴリズムにはない特徴である。


==誤差評価==
==近似としての線形補間==


線形補間はしばしば、ある関数''f''上の他の2点の値を使って、その関数上のある値を近似するのに使われる。この近似による誤差は次のように定義される。
線形補間はしばしば、ある関数''f''上の他の2点の値を使って、その関数上のある値を近似するのに使われる。この近似による誤差は次のように定義される。
45行目: 46行目:


見れば分かるが、与えられた関数上の2点間の近似は、近似された関数の2次導関数から計算された値よりも悪くなる。このことは、カーブを描いた関数は単純な線形補間を使った近似を行うと悪い値が出ることからも、直感的に正しいことが分かる。
見れば分かるが、与えられた関数上の2点間の近似は、近似された関数の2次導関数から計算された値よりも悪くなる。このことは、カーブを描いた関数は単純な線形補間を使った近似を行うと悪い値が出ることからも、直感的に正しいことが分かる。

==特徴==
計算量が非常に少ない。計算量 <math>\mathcal O(n)</math> のアルゴリズムの中でもひときわ小さい。

連続だが、[[導関数]]および高次導関数は一般に不連続である(一般に、''n'' 次補間は ''n'' - 1 次導関数まで連続である)。連続性により、元データにない値が現れる(ただしこれは、最近傍補間や特殊なアルゴリズム以外に共通の特徴である)。また導関数が不連続であるので、元データの傾きが大きく変化する付近で、高調波が発生してしまう。

[[単調性]]が保持される。つまり、元データが単調増加だと補間結果も単調増加である(単調減少でも同じ)。このため、[[オーバーシュート]](元データの傾きが大きく増える直前に補間結果が少し減ること、またはその逆)がない。


==応用分野==
==応用分野==
52行目: 60行目:
2値間の線形補間のもっとも基本的な操作は、[[コンピュータグラフィックス]]でよく使われる。[[Bresenhamの線描画アルゴリズム|Bresenham(ブレゼンハム)のアルゴリズム]]は、2点間を結ぶ線を段々に補間して描画する。
2値間の線形補間のもっとも基本的な操作は、[[コンピュータグラフィックス]]でよく使われる。[[Bresenhamの線描画アルゴリズム|Bresenham(ブレゼンハム)のアルゴリズム]]は、2点間を結ぶ線を段々に補間して描画する。


1次補間は現在のすべてのコンピュータグラフィックスプロセッサのハードウェア内に内蔵されている。この処理はより複雑な操作を行うための処理の一部として使われている。たとえば、[[バイリニア補間]]は2つの1次補間を使ってできる。この処理はコストが安いので、非常に多くのテーブルエントリを持たずに、[[滑らかな関数]]用に素早く参照できる正確な[[ルックアップテーブル]]を実装するのもよい方法である。
1次補間は現在のすべてのコンピュータグラフィックスプロセッサのハードウェア内に内蔵されている。この処理はより複雑な操作を行うための処理の一部として使われている。たとえば、[[バイリニア補間]]は2つの1次補間を使ってできる。画像は多くの場合、線形補間で十分な品質が得られるが、連続という性質上、[[インデックスカラー]]画像には使いにくい。
この処理はコストが安いので、非常に多くのテーブルエントリを持たずに、[[滑らかな関数]]用に素早く参照できる正確な[[ルックアップテーブル]]を実装するのもよい方法である。


==歴史==
==歴史==
60行目: 70行目:
==拡張==
==拡張==


要求される状況によっては、線形補間はしばしば十分に正確でないことがある。その場合は、[[多項式補間]]もしくは[[スプライン補間]]で置き換えることができる。
要求される状況によっては、線形補間はしばしば十分に正確でないことがある。その場合は、(2次以上の)[[多項式補間]]もしくは[[スプライン補間]]で置き換えることができる。


線形補間はまた、2変数の関数のための[[バイリニア補間]]にも拡張できる。バイリニア補間はしばしば乱暴な[[アンチエイリアス]]フィルタとしても用いられる。似たものとして、[[トリリニア補間]]があるが、これは3変数の関数を補間するために使われる。線形補間の他の拡張としては、三角形や正四面体のメッシュのような他の網の目構造に適用される。
線形補間はまた、2変数の関数のための[[バイリニア補間]]にも拡張できる。バイリニア補間はしばしば乱暴な[[アンチエイリアス]]フィルタとしても用いられる。似たものとして、[[トリリニア補間]]があるが、これは3変数の関数を補間するために使われる。線形補間の他の拡張としては、三角形や正四面体のメッシュのような他の網の目構造に適用される。

2009年4月22日 (水) 02:52時点における版

区分的線形補間の例

線形補間(せんけいほかん)は、多項式補間の特殊なケースで、線形多項式(一次式)を用いた回帰分析の手法である。1次補間としても知られている。実用上は、線形補間を区分的に適用した区分的線形補間(1次スプライン補間、いわゆる折れ線グラフ)が重要で、通常は単に線形補間と総称する。

線形補間は数学の世界(特に数値解析)やコンピュータグラフィックスを含む多くの分野で非常によく使われている。補間の非常に単純な形式であり、これより単純なのは最近傍補間(0次補間)しかない。

線形補間を行う方法

座標(x0, y0)と(x1, y1)があるとする。ここで、 [x0, x1]の間にあるxが与えられたときに、この線上にある点を得たいとする。図をよく見ると次のことがわかる。

両辺と同じ値である値をと置こう。これは補間係数である。これは、x0からx1までの距離とxに当たるまで動かした点までの距離の比である。xに入る値が分かれば、次の式によってが得られる。

また、次の式も成り立つ。

この式を代数的に操作すると次のどちらかの式が得られる。

この式から、の値を計算すると直接yの値を得られることが分かる。この式はxx0x1の間になくても成立する。それ故に、は0から1の間にないかもしれないが、その場合通常は比率とは呼ばれない。その場合は線形外挿法と呼ばれる。外挿を参照のこと。

yが既知でxを知りたい場合、xyを交換してまったく同じ手続きをすればいい。これはもっと複雑な補間アルゴリズムにはない特徴である。

誤差評価

線形補間はしばしば、ある関数f上の他の2点の値を使って、その関数上のある値を近似するのに使われる。この近似による誤差は次のように定義される。

ここで、pは線形補間多項式であり、以下で定義される。

エラーは次に示す式の範囲内にある。この式はもし、関数fが2次の連続する導関数を持つならば、ロルの定理を使えば証明できる。

見れば分かるが、与えられた関数上の2点間の近似は、近似された関数の2次導関数から計算された値よりも悪くなる。このことは、カーブを描いた関数は単純な線形補間を使った近似を行うと悪い値が出ることからも、直感的に正しいことが分かる。

特徴

計算量が非常に少ない。計算量 のアルゴリズムの中でもひときわ小さい。

連続だが、導関数および高次導関数は一般に不連続である(一般に、n 次補間は n - 1 次導関数まで連続である)。連続性により、元データにない値が現れる(ただしこれは、最近傍補間や特殊なアルゴリズム以外に共通の特徴である)。また導関数が不連続であるので、元データの傾きが大きく変化する付近で、高調波が発生してしまう。

単調性が保持される。つまり、元データが単調増加だと補間結果も単調増加である(単調減少でも同じ)。このため、オーバーシュート(元データの傾きが大きく増える直前に補間結果が少し減ること、またはその逆)がない。

応用分野

線形補間はしばしば表の穴を埋めるのに使われる。もし、ある国の1970年、1980年、1990年、2000年の人口を表に持っていて、1994年の人口を見積もりたいとする。線形補間はこういうことを行うのには簡単な方法である。

2値間の線形補間のもっとも基本的な操作は、コンピュータグラフィックスでよく使われる。Bresenham(ブレゼンハム)のアルゴリズムは、2点間を結ぶ線を段々に補間して描画する。

1次補間は現在のすべてのコンピュータグラフィックスプロセッサのハードウェア内に内蔵されている。この処理はより複雑な操作を行うための処理の一部として使われている。たとえば、バイリニア補間は2つの1次補間を使ってできる。画像は多くの場合、線形補間で十分な品質が得られるが、連続という性質上、インデックスカラー画像には使いにくい。

この処理はコストが安いので、非常に多くのテーブルエントリを持たずに、滑らかな関数用に素早く参照できる正確なルックアップテーブルを実装するのもよい方法である。

歴史

線形補間は古くは表中の空白を埋めるのに使われていた。またしばしば天文学的なデータにも使われていた。この手法はセレウコス朝(紀元前3世紀終)やギリシャの天文学者や数学者であるヒッパルコス(紀元前2世紀)などによって使われていたと考えられている。線形補間の記述はプトレマイオス(2世紀)のアルマゲストに見ることができる。

拡張

要求される状況によっては、線形補間はしばしば十分に正確でないことがある。その場合は、(2次以上の)多項式補間もしくはスプライン補間で置き換えることができる。

線形補間はまた、2変数の関数のためのバイリニア補間にも拡張できる。バイリニア補間はしばしば乱暴なアンチエイリアスフィルタとしても用いられる。似たものとして、トリリニア補間があるが、これは3変数の関数を補間するために使われる。線形補間の他の拡張としては、三角形や正四面体のメッシュのような他の網の目構造に適用される。

参照

関連項目