(57)【要約】      （修正有）【課題】吸収係数の高速補間方法を提供する。【解決手段】３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間方法であって、前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える段階と、前記３次空間のもう一つの次元の点列データを計算用２次元行列の別の次元として計算用２次元行列を生成する段階を有し、  前記計算用２次元行列の特異値分解を行い、特異値対角行列のうち降順に先頭から１０％の特異値を用いて前記２次元の格子状空間の格子点データを用いて、近似して補間係数を計算する方法を提供する。【選択図】図２
2006285667.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間方法であって、
前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える段階と、前記３次空間のもう一つの次元の点列データを計算用２次元行列の別の次元として計算用２次元行列を生成する段階を有し、
前記計算用２次元行列の特異値分解を行い、特異値対角行列のうち降順に先頭から所定の割合の特異値を用いて前記２次元の格子状空間の格子点データを用いて、近似して補間係数を計算する方法。
【請求項２】
前記２次元の格子状空間は斜交格子である請求項１に記載の方法。
【請求項３】
前記２次元の格子状空間を２以上の領域に分割し、各領域に対して計算を行う請求項１又は２に記載の方法。
【請求項４】
前記２次元の格子状空間は気温と気圧の軸によって張られる請求項１ないし３のいずれか１項に記載の方法。
【請求項５】
前記２次元の格子状空間は、さらに波数を軸とする３次元空間に位置している請求項４に記載の方法。
【請求項６】
前記所定の割合は以下のように求められる請求項１から５のいずれか１項に記載の方法。
Ａを計算用２次元行列、Ｕを列間が直交する直交行列、Σを特異値行列、該特異値行列Σの成分をσ１＞σ２＞σ３・・・＞σｎで表し、Ｖｔを回転行列として、特異値分解Ａ＝Ｕ・Σ・Ｖｔにおいて、
（１）前記計算用２次元行列Ａの列ベクトル
【数１】
2006285667.tif 000011
に対して要素の平均値
【数２】
2006285667.tif 000012
に最も近い要素ａｉ，ｊ又は該要素の中央値又は該要素の最大値を標準要素とし、
（２）該標準要素を用いて、
【数３】
2006285667.tif 000013
を、ｌを１，２，３，・・と降順に順次求め、求める要求精度ｄに対してｄ＜ｄｌとなるｌを暫定の近似範囲とする。
（３）上記（１）、（２）を計算用２次元行列の全列に対して行い、最大のｌを近似範囲とする。
【請求項７】
３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間プログラムであって、
前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える段階と、前記３次空間のもう一つの次元の点列データを計算用２次元行列の別の次元として計算用２次元行列を生成する段階を有し、
前記計算用２次元行列の特異値分解を行い、特異値対角行列のうち降順に先頭から所定の割合の特異値を用いて前記２次元の格子状空間の格子点データを用いて、近似して補間係数を計算するプログラム。
【請求項８】
前記請求項６の方法を用いて所定の割合を求める請求項７に記載のプログラム。
【請求項９】
３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間装置であって、
前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える手段と、前記３次空間のもう一つの次元の点列データを計算用２次元行列の別の次元として計算用２次元行列を生成する手段を有し、
前記計算用２次元行列の特異値分解を行い、特異値対角行列のうち降順に先頭から所定の割合の特異値を用いて前記２次元の格子状空間の格子点データを用いて、近似して補間係数を計算する装置。
【請求項１０】
３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間装置であって、
前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える手段と、前記３次空間のもう一つの次元の点列データ計算用２次元行列の別の次元として計算用２次元行列を生成する手段を有し、
前記計算用２次元行列をＡ、特異値対角行列をΣとして、Ａ＝Ｕ・Σ・Ｖｔにより特異値分解を計算する装置において、Ｕ・Σの計算値を降順に先頭から所定の割合をＰＴテーブルに保存する装置。
【請求項１１】
３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数補間装置であって、
前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で1次元列方向に並べ変える手段と、前記３次空間のもう一つの次元の点列データ計算用２次元行列の別の次元として計算用２次元行列を生成する手段を有し、
前記計算用２次元行列をＡ、特異値対角行列をΣとして、Ａ＝Ｕ・Σ・Ｖｔにより特異値分解を計算する装置において、Ｕ・Σの計算値をＰＴテーブルに保存し、該装置運用時に該ＰＴテーブルのデータのうち降順に先頭から所定の割合のデータを使用して関数補間を行う装置。
【請求項１２】
前記特異値対角行列の特異値のうち、降順に先頭から採用する割合を指定して、或いは指定した精度以内で補間係数を計算することを特徴とする請求項１ないし６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は関数の補間方法に関し特に３次元空間から１次元空間へ写像して補間を行う補間方法および装置に関する。
【背景技術】
【０００２】
関数の補間方法は、例えば線形補間、スプライン補間、その他多数の補間方法が知られている。補間は離散化した数値等を表わす関数値の間の点を計算する方法であり、補間する対象のデータ量が多くなると計算量もそれに比例して多くなる。特に大量のデータの補間を行う計算では計算量が膨大となり実用的な時間内で計算を行うことは困難な状態である。このような計算の例としては大気の放射伝達計算がある。
【０００３】
大気の放射伝達計算は大気を透過した光のスペクトルを観測して大気中の成分濃度を求める計算であり、大気中を伝わる光が受ける吸収、散乱の過程を計算する必要がある。この吸収係数の計算には気温×気圧×波数で定義される３次元のデータを用いる。
【０００４】
従来は放射伝達計算に必要な吸収係数を気圧×気温でのスプライン補間係数を数表にし、例えばデータベース等にこの数表を入力して必要に応じて補間するという方法を用いていた。
【特許文献１】特開２００３−２４８６７４号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、このような方法では計算すべき波長域や補間する点が増大すると計算量が膨大となりワークステーション等を使用しても計算時間が数日かかる。これは放射伝達計算を適用し、例えば測定結果を計算し温室効果ガスを特定する場合も同様であり、実用的な計算時間とはいえない。よってこのような補間計算をできるだけ高速で行う方法が望まれている。
【課題を解決するための手段】
【０００６】
上記の問題に鑑み、本発明は気温×気圧×波数で定義される３次元空間の点から１次元空間の点へ写像する関数の値をコンピュータを用いて補間する関数値補間方法であって、前記３次元空間の一部である２次元の格子状空間の格子点データを所定の方法で１次元列方向に並べ変える段階と、前記３次空間のもう一つの次元の点列データを計算用２次元行列の別の次元として計算用２次元行列を生成する段階を有し、前記計算用２次元行列の特異値分解を行い、特異値対角行列のうち特異値の降順に先頭から１０％前後の特異値と他の二つの行列の列部分或いは行部分の１０％前後を用いて前記２次元の格子状空間の格子点データに適用して、近似して補間係数を計算する方法を提供する。これによって計算に必要なデータ量を大幅に少なくすることができ高速補間計算が可能となる。
【０００７】
さらに前記所定の割合は以下のように求めることができる。
Ａを計算用２次元行列、Ｕを列間が直交する直交行列、Σを特異値行列、該特異値行列Σの成分をσ１＞σ２＞σ３・・・＞σｎで表し、Ｖｔを回転行列として、特異値分解Ａ＝Ｕ・Σ・Ｖｔにおいて、
（１）前記計算用２次元行列Ａの列ベクトル
【数４】
2006285667.tif 000003
に対して要素の平均値
【数５】
2006285667.tif 000004
に最も近い要素ａｉ，ｊ又は該要素の中央値又は該要素の最大値を標準要素とし、
（２）該標準要素を用いて、
【数６】
2006285667.tif 000005
を、ｌを１，２，３，・・と順次求め、求める要求精度（有効桁数）ｄに対してｄ＜ｄｌとなるｌが暫定の近似範囲であり、特異値行列の成分において降順に先頭からｌ個の成分が近似範囲となる。
（３）上記（１）、（２）を計算用２次元行列の全列に対して行い、最大のｌを近似範囲とする。
【０００８】
また前記２次元の格子状空間は斜交格子であり、該格子状空間を２以上の領域に分割し、各領域に対して計算を行う方法を提供する。さらには上記の方法を行うことができるコンピュータプログラム、さらに該プログラムを有する計算装置を提供する。
【発明を実施するための最良の形態】
【０００９】
以下に本発明を図を用いて説明する。まず、吸収係数のデータは図１（ａ）に示されているように気圧×気温のデータを波数毎に並べた３次元空間のデータ１である。ある波数について気温×気圧データを取り出したものが図１（ｂ）である。該図１（ｂ）から解るように斜交格子を用いており、３つの区間に分けられている。本実施例では３つの区間に分けているがこれに限定されるものではなく当業者であれば必要に応じて適切な区間に分けることができる。
【００１０】
次に区間毎に気温×気圧の２次元データを１次元空間に写像する。図２に示したように１つの斜交区間を取り出し、該区間の格子点の第１の縦方向データ列３を行列の列方向に並べる。同様にして隣の第２の縦方向データ列４を取り出し列方向に続けて並べる。つまり縦のデータ列を１つの単位として順次取り出して列方向に並べる。これを繰り返し、第３の縦方向データ列５、第４の縦方向データ列６、・・・というように順次縦方向のデータ列を並べていく。
【００１１】
このようにすると１つの斜交区間の格子点の２次元データは行列の列方向の１次元データとして写像することができる。これを波数方向に並べられた全てのデータに対しても行うことによって２次元の数表が作成される。このようにして１つの斜交空間に対してデータの並べ替えを行うと吸収係数数表７が生成される。この吸収係数数表７は列方向の要素の数は斜交区間の格子点数であり、行方向の要素の数は波数軸方向のデータ数である行列となることは当業者には明らかである。つまり吸収係数数表７は吸収係数行列と言い換えることができる。
【００１２】
次にこの吸収係数数表７に対して特異値分解を行う。当業者には既知であるが特異値分解は以下のような式で表される。
【数７】
2006285667.tif 000006
但し、Ａは吸収係数行列、Ｕは列間は直交する直交行列、Σは特異値行列（σ1＞σ2＞・・＞σn）、Ｖｔは回転行列である。
ここで特異値対角行列Σに注目すると、Σの対角要素を特異値の降順に並べて見ると図３のようなグラフになる。グラフから明らかなように特異値は急激に減少している。該グラフによると第２の領域９では特異値の値はほぼ一定となっており、さらに第１の領域８の値と比較すると１桁以上小さい値となっている。
従来のＰＴ（気圧：Ｐ，気温：Ｔ）テーブルを用いた計算（例えば特開２００３−２４８６７４号公報参照）では、波数点断面（（気圧×気温）格子点）の格子点値の４次スプライン補間係数を例えばデータベース等に記憶しておき、任意の気圧×気温点に対し全波数点について補間係数を計算していた。
補間のベースになる気圧×気温格子点の断面が、上記特異値分解結果の直交行列Ｖｔの列方向に対応する。Ｖｔの列を元の２次元気圧×気温格子に戻し、２次元スプライン補間係数を計算しておき、任意の気圧×気温に対応する列ベクトルＶ（Ｐ，Ｔ）を補間すれば、格子点値を高速で計算出来ることになる。
【００１３】
本願発明者は第１の領域８のデータのみを用いて計算を行うと吸収係数数表７のデータを十分な精度で近似できることを見いだした。つまり第１の領域８のデータのみを計算することで吸収係数数表７を十分な精度で計算できることから、大幅に計算量を削減することができ、高速で補間計算を行うことができる。また、吸収係数の計算をテーブルルックアップ方式で行う場合にはデータベースに記憶させるデータ量も削減することができる。ここで、該第１の領域８のデータはデータ全体の約１０％程度である。第１の領域８に相当するデータは数式で見ると以下の式中の点線で囲まれた範囲に相当する。
【数８】
2006285667.tif 000007
【００１４】
ここで上記のように１０％のデータで吸収係数を十分な精度で近似できることをデータを用いて説明する。図４の上のグラフは吸収係数であり、これを上記の方法により特異値の降順に先頭から５％のデータで近似したときに、もとのデータとの差を示したグラフである。グラフから明らかなように１０−７のオーダーで誤差が生じていることがわかる。
【００１５】
次に図５は１０％のデータで同様な計算を行ったときのグラフである。図５の下のグラフを見ると、誤差がほぼ０となっていることがわかる。つまり上記のように特異値の降順に先頭から１０％のデータを用いて吸収係数の計算を行うと十分小さな誤差で近似できることがわかる。
【００１６】
このように一部のデータで十分な精度で計算できることから、事前計算により吸収係数をデータベースに記憶させる時には記憶するデータ量を削減することができる。あるいは領域９を含めて全てのデータを計算しデータベースに記憶させ、運用時に先頭から１０％のデータを取り出して使用することもできる。
吸収係数行列の行数が大きいと特異値分解における分解過程のハウスホルダー変換で計算時間を要する。また、格子点値のオーダは波数域で大きく変化し、大きな波数域を分解対象にするよりも、分割した方がよりよい近似精度が得られる。よって吸収係数行列の行方向をさらに分割したものを特異値分解の処理単位とすることができる。
【００１７】
本実施例では特異値の降順に先頭から１０％のデータを用いたが、これは１０％に限定されるものではない。例えば図３に示したグラフから所定の割合を求めてもよい。また以下の方法によって求めることが好ましい。
所定の割合は以下のように求められる。
Ａを計算用２次元行列つまり吸収係数行列とし、Ｕを列間が直交する直交行列、Σを特異値行列、該特異値行列Σの成分をσ１＞σ２＞σ３・・・＞σｎで表し、Ｖｔを回転行列として、特異値分解Ａ＝Ｕ・Σ・Ｖｔにおいて、
（１）前記計算用２次元行列Ａの列ベクトル
【数９】
2006285667.tif 000008
に対して要素の平均値
【数１０】
2006285667.tif 000009
に最も近い要素ａｉ，ｊ又は該要素の中央値又は該要素の最大値を標準要素とし、
（２）該標準要素を用いて、
【数１１】
2006285667.tif 000010
を、ｌを１，２，３，・・と順次求め、求める要求精度（有効桁数）ｄに対してｄ＜ｄｌとなるｌが暫定的な近似範囲であり、特異値行列の成分において降順に先頭からｌ個の成分が近似範囲となる。
（３）上記（１）、（２）を計算用２次元行列の全列に対して行い、最大のｌを近似範囲とする。
例えば吸収線のピークが顕著な場合には最大値を選ぶようにすることで精度を高めることができる。
【００１８】
本発明では以上のように吸収係数行列７を特異値分解したときに、特異値行列を降順に並べたときに数値が急激に小さくなり、特にグラフ（図３参照）の平坦な部分、つまり第２の領域９の数値は第１の領域８の数値に比較して１桁以上小さいために、第１の領域８のデータのみで吸収係数行列７を近似できることを特徴としてる。本実施例では第１の領域８のデータはデータ全体の１０％前後であるため、この部分で吸収係数行列７を近似できることは計算を高速化する際に極めて有利となる。
また、吸収係数の計算において上記Ｕ・ΣのＵをあらかじめ計算しデータベースに記憶させておく事前計算においても、上記数式８の点線で囲まれた部分のＵを記憶するだけでよいため、記憶容量を小さくすることができる。これによってデータ量は従来の１／５になり、計算量もそれに応じて減少する。
【図面の簡単な説明】
【００１９】
【図１】図１（ａ）は気圧×気温×波数の３次元データを示しており、（ｂ）はある気圧×気温データを取り出したものである。
【図２】斜交区間の２次元データを１次元データに並べ替える処理の図である。
【図３】特異値行列の成分を降順に並べたときのグラフである。
【図４】吸収係数のデータを特異値の降順に先頭から５％のデータで近似したときのデータと誤差を示したグラフである。
【図５】吸収係数のデータを特異値の降順に先頭から１０％のデータで近似したときのデータと誤差を示したグラフである。
【符号の説明】
【００２０】
１  ３次元空間のデータ
３  第１の縦方向データ列
４  第２の縦方向データ列
５  第３の縦方向データ列
６  第４の縦方向データ列
７  吸収係数数表
８  第１の領域
９  第２の領域
【図１】
2006285667.tif 000014
【図２】
2006285667.tif 000015
【図３】
2006285667.tif 000016
【図４】
2006285667.tif 000017
【図５】
2006285667.tif 000018