JP4313803B2 - 行列における数値分解方法 - Google Patents
行列における数値分解方法 Download PDFInfo
- Publication number
- JP4313803B2 JP4313803B2 JP2006086017A JP2006086017A JP4313803B2 JP 4313803 B2 JP4313803 B2 JP 4313803B2 JP 2006086017 A JP2006086017 A JP 2006086017A JP 2006086017 A JP2006086017 A JP 2006086017A JP 4313803 B2 JP4313803 B2 JP 4313803B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- storage unit
- column
- value
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
図7において、従来のQR分解アルゴリズムにより、以下に示す(1)式に基づき、行列Hを行列Qと上三角行列Rとの2つの行列に分解される。ここで、行列HはR行,T列の行列を表し、行列QはR行,T列の行列を表し、上三角行列RはT行,T列の行列を表している。
Gene H.Golub, Charles F.Van Loan、Matrix Computations Third Edition. Hohns Hopkins published
また、従来例にあっては、アルゴリズムを実際の物理的な回路により実現する場合、回路規模が上記所要処理演算量に比例するため、必要な回路規模も大きくなり、装置を小型化することが困難である。
また、従来例にあっては、上述したように、回路規模が大きくなることにより、消費電力も比例して増加することとなり、バッテリで動作する携帯機器等で使用した場合、電力の消耗が早く、長時間使用することができなくなる。
すなわち、行列Hを行列Q,Rの2つの行列へ分解する処理において、演算量が大きい、所要回路規模が大きい、消費電力が多いという従来の課題を、分解対象の行列Hのみを用いたアルゴリズムにより解決する。
具体的な実施形態のアルゴリズムとしては、行列Hと行列G(行列Hの複素共役転置行列)とをアルゴリズムの入力とし、T(行列Hの列ベクトルの数)回の巡回(ループ処理)により、H=QRとなる行列Q及び行列Rを生成する。行列Rは列ベクトル毎に上部から下部方向に、また行列Qは列ベクトル毎に左端から右端に向かって順次生成される。
また、本発明のアルゴリズムによれば、QR分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQR分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化を実現できる。
すなわち、計算のイメージは、図1に示すような流れで行われ、行列Aと行列Gとを入力し、以下の(2)式に示すように、行列Rを各行毎に、最上部の行から、最下部の行まで順次算出し、行列Qを各列毎に、左側から右側まで順次算出する。この(2)式において、qt(1≦t≦T)は行列Qのt番目の列ベクトルを示しており、rt(1≦t≦T)は行列Rのt番目の行ベクトルを示している。
以下、本発明の第1の実施形態による数値分解システムを図面を参照して説明する。図2は同実施形態による数値分解システムの構成例を示すブロック図である。
第1の実施形態による数値分解システムは、入力部1,初期化部4,行列R演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
初期化部4は、行列R演算部5及び行列演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(行列Hの要素を、空行列Qの対応する要素の位置(行及び列で指定される)に要素のデータを上書きして)、行列Qとし、空行列Rに対して正方行列の上三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Rとして初期化を行う。
ここで、行ベクトルR(i,i:T)は、i行目の行ベクトルにおけるi番目の列成分からT番目までの列成分までの部分行列を示し、スカラーrk,i *は行列Rのk行,i列目の要素の複素共役を示している。すなわち、各列ベクトル単位にて、非ゼロ要素の部分からなる部分行列のみの演算を行っている。
R(i,i:T):=R(i,i:T)−rk,i *・R(i,i:T)…(3)
このとき、行列R演算部4は、kをインクリメントして、上記(3)式を、1≦k≦i−1の間で繰り返して行う。
R(i,i:T):=R(i,i:T)/(rk,i)1/2 …(4)
Q(:,i):=Q(:,i)/ri,i …(5)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーri,jは、行列Rにおけるi行目,j列目の要素である。
Q(:,j):=Q(:,j)−ri,j・Q(:,i) …(6)
このとき、行列Q演算部6は、jを初期値i+1とし、処理を1回行う毎にインクリメントしつつ、上記(6)式を、i+1≦j≦Tの間で繰り返して行う。
演算制御部8は、行列R演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、この行列Gから上三角部分を抽出し、空行列Rの対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Rに対して行列Gの上三角部分の要素を付与し、行列Rを上三角部分が非ゼロ要素である上三角行列である行列Rとする。
したがって、数値i=2以降において、行列演算部5は、数値kが1≦k≦i−1の範囲内にあることを検出するため、処理(4)へ処理を進める。
そして、行列R演算部5は、この部分行列R(i,i:T)に対し、(3)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列R演算部5は、1回の演算ループの毎に数値kをインクリメントし、処理を処理(3)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jがi+1≦j≦Tの間繰り返して行い、演算ループ毎に(3)式により、(2)式の最左辺の列ベクトルq1〜行ベクトルqTの各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルq1から列ベクトルqTに向かい、順に列ベクトルを演算する。ここで、列ベクトルqjは、Q(:,j)と同様である。
そして、行列Q演算部6は、数値jの示す列ベクトルrj、すなわち部分行列Q(,:j)を、記憶部7に記憶されている行列Qから読み出す。
そして、行列Q演算部6は、この部分行列Q(,:j)に対し、(6)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(10)へ進める。
次に、処理(10)において、行列Q演算部6は、1回の演算ループの毎に数値jをインクリメントし、処理を処理(8)へ進める。
第2の実施形態の数値分解システムは、第1の実施形態と同様の構成をしている。第2の実施形態と第1の実施形態との違いは、演算制御部8の行列R演算部5及び行列Q演算部6の演算順序にある。すなわち、第1の実施形態においては、同一の演算ループ内にて、行列Rを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
したがって、演算制御部8及び初期化部4以外の他の構成要素(入力部1,行列R演算部5,行列Q演算部6及び記憶部7)の動作は、第2の実施形態においても、第1の実施形態の構成と同様である。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、空行列Rに対し、この行列Gの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Rに対して行列Gの値を付与し、空行列RをT行,T列の正方行列とする。
そして、処理(7)において、演算制御部8は、数値iをインクリメント(1を加算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値Tを超えたこと(範囲外であること)を検出すると、この時点における行列Rとして記憶部7へ記憶するとともに、処理を処理(8)へ進める。
また、処理(8)〜処理(13)においては、T回(正方行列Gの行及び列の数に対応した回数)の演算ループにて、行列Qを(2)式の最左辺の列ベクトルq1から列ベクトルqTまで、順番に演算する。
以下、本発明の第3の実施形態による数値分解システムを図面を参照して説明する。図2は同実施形態による数値分解システムの構成例を示すブロック図である。構成は第1の実施形態と同様であるが各構成の機能が異なっている。
したがって、第3の実施形態による数値分解システムは、第1の実施形態と同様に、入力部1,初期化部4,行列R演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
初期化部4は、行列R演算部5及び行列演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(対応する位置に要素のデータを上書きして)、行列Qとし、空行列L’に対して正方行列の下三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Lとして初期化を行う。
ここで、行ベクトルL(i:T,i)は、i列目の列ベクトルにおけるi番目の行成分からT番目までの行成分までの部分行列を示し、スカラーli、k *は行列Lのi行,k列目の要素の複素共役を示している。ここで、R=LHであるため、行列Rの行ベクトルを最上部から順に最下部の行を順次計算することに相当する。
L(i:T,i):=L(i:T,i)−li、k *・L(i:T,k)…(7)
このとき、行列R演算部4は、kをインクリメントして、上記(7)式を、1≦k≦i−1の間で繰り返して行う。
L(i:T,i):=L(i:T,i)/(li,i)1/2 …(8)
Q(:,i):=Q(:,i)/li,i …(9)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(10)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーli,j *は、行列Lにおけるi行目,j列目の要素の複素共役である。
Q(:,j):=Q(:,j)−li,j *・Q(:,i) …(10)
このとき、行列Q演算部6は、jを初期値i+1とし、処理を1回行う毎にインクリメントしつつ、上記(6)式を、i+1≦j≦Tの間で繰り返して行う。
演算制御部8は、行列R演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、この行列Gから下三角部分を抽出し、空行列L’の対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列L’に対して行列Gの下三角部分の要素を付与し、行列L’を下三角部分が非ゼロ要素である下三角行列である行列L’とする。
また、行列R演算部5は、処理(12)において、R=LHの演算を行い、すなわち上述した求めた下三角行列Lに対して複素共役転置の処理を行い、上三角行列の行列Rを算出して、記憶部7に記憶する。
次に、演算制御部8は、その時点で記憶部7に記憶されている行列R及び行列Qを、それぞれ行列Hを分解した上三角行列Rと行列Qとして出力する。
したがって、数値i=2以降において、行列演算部5は、数値kが1≦k≦i−1の範囲内にあることを検出するため、処理(4)へ処理を進める。
そして、行列R演算部5は、この部分行列L(i:T,i)に対し、(7)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列R演算部5は、1回の演算ループの毎に数値kをインクリメントし、処理を処理(3)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jがi+1≦j≦Tの間繰り返して行い、演算ループ毎に(3)式により、(2)式の最左辺の列ベクトルq1〜行ベクトルqTの各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルq1から列ベクトルqTに向かい、順に列ベクトルを演算する。上述したように、列ベクトルqjは、Q(:,j)と同様である。
そして、行列Q演算部6は、数値jの示す列ベクトルrj、すなわち部分行列Q(,:j)を、記憶部7に記憶されている行列Qから読み出す。
そして、行列Q演算部6は、この部分行列Q(,:j)に対し、(10)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(10)へ進める。
次に、処理(10)において、行列Q演算部6は、1回の演算ループの毎に数値jをインクリメントし、処理を処理(8)へ進める。
次に、処理(11)において、演算制御部8は、数値iをインクリメント(1を加算)し、処理を処理(2)へ進める。
そして、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値Tを超えたこと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(12)へ進める。
上述した複素共役転置の処理後、演算制御部8は、記憶部7から行列Q及び行列Rを読み出し、行列Hの分解結果として出力する。
第4の実施形態の数値分解システムは、第3の実施形態と同様の構成をしている。第4の実施形態と第3の実施形態との違いは、演算制御部8の行列R演算部5及び行列Q演算部6の演算順序にある。すなわち、第3の実施形態においては、同一の演算ループ内にて、行列Rを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
したがって、行列R演算部5,行列Q演算部6及び演算制御部8以外の他の構成要素(入力部1,初期化部4及び記憶部7)の動作は、第4の実施形態においても、第3の実施形態の構成と同様である。
行列R演算部5は、設定された数値iにより、記憶部7に記憶されている対応するi列目の列ベクトルL(i:T,i)のデータを読み出すとともに、スカラーli、k *を算出し、以下の(7)式により、新たな列ベクトルを算出して、記憶部7の読み出した位置に上書きを行い、列ベクトルのデータの変更を行う。
ここで、行ベクトルL(i:T,i)は、i列目の列ベクトルにおけるi番目の行成分からT番目までの行成分までの部分行列を示し、スカラーli、k *は行列Lのi行,k列目の要素の複素共役を示している。ここで、R=LHであるため、行列Rの行ベクトルを最上部から順に最下部の行を順次計算することに相当する。
このとき、行列R演算部4は、kをインクリメントして、上記(7)式を、1≦k≦i−1の間で繰り返して行う。
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、上記(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーri,jは、行列Rにおけるi行目,j列目の要素の複素共役である。
すなわち、行列Q演算部6は、列ベクトルQ(:,i)の要素に対して、スカラーli,jを乗算し、この乗算結果を列ベクトルQ(:,j)から減算し、この減算結果を新たな列ベクトルQ(:,j)として、記憶部7の読み出した位置に書き込み、データの更新を行う。
このとき、行列Q演算部6は、jを初期値i+1とし、処理を1回行う毎にインクリメントしつつ、上記(12)式を、i+1≦j≦Tの間で繰り返して行う。
演算制御部8は、行列R演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
処理(1)における、初期化部4が行う処理(1)は、第3の実施形態と同様のため、説明を省略する。
また、行列R演算部5は、処理(8)において、R=LHの演算を行い、すなわち上述した求めた下三角行列Lに対して複素共役転置の処理を行い、上三角行列の行列Rを算出して、記憶部7に記憶する。
次に、処理(7)において、演算制御部8は、数値iをインクリメント(1を加算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値Tを超えたこと(範囲外であること)を検出すると、行列L’を行列Lとして記憶部7へ記憶するとともに、処理を処理(8)へ進める。
・本発明の各実施形態におけるアルゴリズムは、所要処理演算量が従来アルゴリズム(Classical Gram-Schmidt QR分解法,Modified Gram-Schmidt QR分解法,Householder QR分解法,Given QR分解法など)に比較して少なくなる。
・本発明の各実施形態におけるアルゴリズムは、QR分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQR分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化を実現できる。
・上述した各効果により、従来例に比較して、QR分解演算機能の装置への実装が簡易に行える。
・上述した各効果により、小型化、低消費電力化、低製造コスト化等が、従来例に比して向上しているため、経済的な大量生産を行うことができる。
行列及びスカラーは、その度毎に定義しているため省略し、以下、行列A、この行列Aの要素(スカラー)をaとして説明する。
aiまたはA(i,:)…行列Aのi番目の行ベクトル
ajまたはA(:,j)…行列Aのj番目の列ベクトル
aij…行列Aのi番目行,j番目列の要素
A(n:m,i:j)…行列Aのn番目行〜m番目行、i番目列〜j番目列の範囲の部分行列
AH…行列Aの複素共役転置行列
AT…行列Aの転置行列
‖b‖…ベクトルbの2次ノルム
a*…スカラーaの複素共役
|a|…スカラーaの絶対値
a:=a…aの値の更新処理を示す
2…複素共役転置行列生成部
3…正方行列生成部
4…初期化部
5…行列R生成部
6…行列Q生成部
7…記憶部
8…演算制御部
Claims (4)
- 入力される行列Hを行列Qと上三角行列Rとに分解するQR分解を行う数値分解方法であって、
入力部が、分析対象であるT列の行列H、及び前記行列の複素共役転置行列H H を行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として記憶部に書き込みし、前記記憶部から前記正方行列Gの上三角部分の各要素を上三角行列Rの上三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列R演算部が
手順1として前記記憶部から前記上三角行列Rを読み出し、前記上三角行列Rの第i行(1<=i<=Tを満たす整数)の行ベクトルにおける非ゼロである各要素に対して、同列の第k行(1<=k<=i-1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として記憶部に書き込みする処理を、kを1からi-1について行い、
手順2として前記手順1を行った後の上三角行列Rの第i行の行ベクトルを読み出し、前記第i行の行ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として記憶部に書き込みを行う
行列R演算過程と、
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの各要素に対して、対角成分の要素の値で除算した値を、新たな要素値として記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j>=i+1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として記憶部に書き込みし、前記書き込み処理をj>=i+1を満たす全ての列について行う
行列Q演算過程と、
演算処理部が
iの値を1からTとして順次前記行列R演算過程と前記行列Q演算過程とを実行する制御を行い、前記実行後の前記行列Q及び上三角行列Rを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと上三角行列Rとに分解するQR分解を行う数値分解方法であって、
入力部が、分析対象であるT列の行列H、及び前記行列の複素共役転置行列H H を行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として記憶部に書き込みし、前記記憶部から前記正方行列Gの上三角部分の各要素を上三角行列Rの上三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列R演算部が
手順1として前記記憶部から前記上三角行列Rを読み出し、前記上三角行列Rの第i行(1<=i<=Tを満たす整数)の行ベクトルにおける非ゼロである各要素に対して、同列の第k行(1<=k<=i-1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として記憶部に書き込みする処理を、kを1からi-1について行い、
手順2として前記手順1を行った後の上三角行列Rの第i行の行ベクトルを読み出し、前記第i行の行ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として記憶部に書き込みを行う
行列R演算過程と、
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの各要素に対して、対角成分の要素の値で除算した値を、新たな要素値として記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j>=i+1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として記憶部に書き込みし、前記書き込み処理をj>=i+1を満たす全ての列について行う
行列Q演算過程と、
演算処理部が
iの値を1からTとして順次前記行列R演算過程を実行しする制御を行い、
iの値を1からTとして順次前記行列Q演算過程を実行する制御を行い、
前記実行後の前記行列Q 及び上三角行列Rを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと上三角行列Rとに分解するQR分解を行う数値分解方法であって、
入力部が、分析対象であるT列の行列H、及び前記行列の複素共役転置行列H H を行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、前記記憶部から行列Hの各要素を読み出すとともに行列Qの各要素として記憶部に書き込みし、前記記憶部から前記正方行列Gの下三角部分の各要素を下三角行列Lの下三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列R演算部が
手順1として前記記憶部から前記下三角行列Lを読み出し、前記下三角行列Lの第i列(1<=i<=Tを満たす整数)の列ベクトルにおける非ゼロである各要素に対して、同行の第k列(1<=k<=i-1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として記憶部に書き込みする処理を、kを1からi-1について行い、
手順2として前記手順1を行った後の下三角行列Lの第i列の列ベクトルを読み出し、前記第i列の列ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として記憶部に書き込みを行う
行列L演算過程と、
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの各要素に対して、対角成分の要素の値で除算した値を、新たな要素値として記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j>=i+1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として記憶部に書き込みし、前記書き込み処理をj>=i+1を満たす全ての列について行う
行列Q 演算過程と、
演算処理部が
iの値を1からTとして順次前記行列R演算過程と前記行列Q演算過程とを実行する制御を行い、前記実行後の前記行列Q及び下三角行列Lを記憶部から読み出して出力する演算処理過程と、
行列複素共役転置演算部が前記下三角行列Lに対して複素共役転置演算を行い、前記上三角行列Rを求める行列複素共役転置演算過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと上三角行列Rとに分解するQR分解を行う数値分解方法であって、
入力部が、分析対象であるT列の行列H、及び前記行列の複素共役転置行列H H を行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として記憶部に書き込みし、前記記憶部から前記正方行列Gの下三角部分の各要素を下三角行列Lの下三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列R演算部が
手順1として前記記憶部から前記下三角行列Lを読み出し、前記下三角行列Lの第i列(1<=i<=Tを満たす整数)の列ベクトルにおける非ゼロである各要素に対して、同行の第k列(1<=k<=i-1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として記憶部に書き込みする処理を、kを1からi-1について行い、
手順2として前記手順1を行った後の下三角行列Lの第i列の列ベクトルを読み出し、前記第i列の列ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として記憶部に書き込みを行う
行列L演算過程と、
行列複素共役転置演算部が前記下三角行列Lに対して複素共役転置演算を行い、前記上三角行列Rを求める行列複素共役転置演算過程と
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの各要素に対して、対角成分の要素の値で除算した値を、新たな要素値として記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j>=i+1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として記憶部に書き込みし、前記書き込み処理をj>=i+1を満たす全ての列について行う
行列Q演算過程と、
演算処理部が
iの値を1からTとして順次前記行列R演算過程を実行する制御を行い、
行列複素共役転置演算過程を実行する制御を行い、
iの値を1からTとして順次前記行列Q演算過程を実行する制御を行い、
前記実行後の前記行列Q 及び上三角行列Rを、記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006086017A JP4313803B2 (ja) | 2006-03-27 | 2006-03-27 | 行列における数値分解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006086017A JP4313803B2 (ja) | 2006-03-27 | 2006-03-27 | 行列における数値分解方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007264788A JP2007264788A (ja) | 2007-10-11 |
JP4313803B2 true JP4313803B2 (ja) | 2009-08-12 |
Family
ID=38637751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006086017A Expired - Fee Related JP4313803B2 (ja) | 2006-03-27 | 2006-03-27 | 行列における数値分解方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4313803B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129861A (ja) * | 2006-11-21 | 2008-06-05 | Nippon Telegr & Teleph Corp <Ntt> | 行列における数値分解方法 |
-
2006
- 2006-03-27 JP JP2006086017A patent/JP4313803B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129861A (ja) * | 2006-11-21 | 2008-06-05 | Nippon Telegr & Teleph Corp <Ntt> | 行列における数値分解方法 |
JP4531738B2 (ja) * | 2006-11-21 | 2010-08-25 | 日本電信電話株式会社 | 行列における数値分解方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2007264788A (ja) | 2007-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6987860B2 (ja) | ハードウェアにおけるカーネルストライドの実行 | |
Jidling et al. | Linearly constrained Gaussian processes | |
Wang et al. | IK-SVD: dictionary learning for spatial big data via incremental atom update | |
JP4952979B2 (ja) | 信号分離装置、信号分離方法、ならびに、プログラム | |
JP6953287B2 (ja) | 音源探査装置、音源探査方法およびそのプログラム | |
JP7271244B2 (ja) | Cnn処理装置、cnn処理方法、およびプログラム | |
JP2011076068A (ja) | 複数の独立したプロセスによって作り出された信号のスペクトログラムの次元を削減するための方法およびシステム | |
Soubeyrand et al. | Parameter estimation for reaction-diffusion models of biological invasions | |
JP2015521748A (ja) | 入力信号を変換する方法 | |
Sampson et al. | Ensemble Kalman filter for nonconservative moving mesh solvers with a joint physics and mesh location update | |
JP5068228B2 (ja) | 非負値行列分解の数値計算方法、非負値行列分解の数値計算装置、プログラムおよび記憶媒体 | |
Krishnan et al. | A wavelet-based dynamic mode decomposition for modeling mechanical systems from partial observations | |
JP5405641B2 (ja) | 挙動解析システム、挙動解析方法及び挙動解析プログラム | |
JP4313803B2 (ja) | 行列における数値分解方法 | |
WO2020262587A1 (ja) | 機械学習装置、機械学習プログラム、及び機械学習方法 | |
JP4531738B2 (ja) | 行列における数値分解方法 | |
Goyal et al. | An adaptive meshfree diffusion wavelet method for partial differential equations on the sphere | |
JP6104469B2 (ja) | 行列生成装置及び行列生成方法及び行列生成プログラム | |
Hadar | High-order Hidden Markov Models-estimation and implementation | |
Chen et al. | Scalable Gaussian process analysis for implicit physics-based covariance models | |
JP7349811B2 (ja) | 訓練装置、生成装置及びグラフ生成方法 | |
JP5325072B2 (ja) | 行列分解装置、行列分解方法及びプログラム | |
JP7047665B2 (ja) | 学習装置、学習方法及び学習プログラム | |
JP2005115497A (ja) | 連立一次方程式反復求解計算機、及び、連立一次方程式反復求解計算方法 | |
JP4954945B2 (ja) | 三次元形状推定装置及びコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081211 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090217 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090507 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090515 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4313803 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140522 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |