JP4531738B2 - 行列における数値分解方法 - Google Patents
行列における数値分解方法 Download PDFInfo
- Publication number
- JP4531738B2 JP4531738B2 JP2006314369A JP2006314369A JP4531738B2 JP 4531738 B2 JP4531738 B2 JP 4531738B2 JP 2006314369 A JP2006314369 A JP 2006314369A JP 2006314369 A JP2006314369 A JP 2006314369A JP 4531738 B2 JP4531738 B2 JP 4531738B2
- 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
Description
図7において、従来のQR分解アルゴリズムにより、以下に示す(1)式に基づき、行列Hを行列Qと下三角行列Lとの2つの行列に分解される。ここで、行列HはR行,T列の行列を表し、行列QはR行,T列の行列を表し、下三角行列LはT行,T列の行列を表している。
Gene H.Golub, Charles F.Van Loan、Matrix Computations ThirdEdition. Hohns Hopkins published
また、従来例にあっては、アルゴリズムを実際の物理的な回路により実現する場合、回路規模が上記所要処理演算量に比例するため、必要な回路規模も大きくなり、装置を小型化することが困難である。
また、従来例にあっては、上述したように、回路規模が大きくなることにより、消費電力も比例して増加することとなり、バッテリで動作する携帯機器等で使用した場合、電力の消耗が早く、長時間使用することができなくなる。
また、本発明のアルゴリズムによれば、QL分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQL分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化及び低製造コスト化を実現できる。
また、本発明のアルゴリズムによれば、上述したように、回路規模が小さくなり、低消費電力化、低製造コスト化が可能となり、大量生産に適している。
すなわち、本発明は行列Hのみを用いて、この行列Hを行列Q及び行列Lの2つの行列に分解する従来のアルゴリズムにおける所要演算量が大きい、所要回路規模が大きい、消費電力が大きいなどの欠点を解決するものである。
すなわち、計算のイメージは、図1に示すような流れで行われ、行列Aと行列Gとを入力し、以下の(2)式に示すように、行列Lを各行毎に、最下部の行から、最上部の行まで順次算出し、行列Qを各列毎に、右側から左側まで順次算出する。この(2)式において、qt(1≦t≦T)は行列Qのt番目の列ベクトルを示しており、lt(1≦t≦T)は行列Lのt番目の行ベクトルを示している。
以下、本発明の第1の実施形態による数値分解システムを図面を参照して説明する。図2は同実施形態による数値分解システムの構成例を示すブロック図である。
第1の実施形態による数値分解システムは、入力部1,初期化部4,行列L演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
初期化部4は、行列L演算部5及び行列Q演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(行列Hの要素を、空行列Qの対応する要素の位置(行及び列で指定される)に要素のデータを上書きして)、行列Qとし、空行列Lに対して正方行列の下三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Lとして初期化を行う。
ここで、行ベクトルL(i,1:i)は、i行目の行ベクトルにおける1番目の列成分からi番目までの列成分までの部分行列を示し、スカラーlk,i *は行列Lのk行,i列目の要素の複素共役を示している。すなわち、各列ベクトル単位にて、非ゼロ要素の部分からなる部分行列のみの演算を行っている。
L(i,1:i):=L(i,1:i)−lk,i *・L(k,1:i)…(3)
このとき、行列R演算部4は、kをデクリメントして、上記(3)式を、Tからi+1の間、すなわちi+1≦k≦Tの範囲において繰り返して行う。
L(i,1:i):=L(i,1:i)/(li,i)1/2 …(4)
Q(:,i):=Q(:,i)/li,i …(5)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーli,jは、行列Lにおけるi行目,j列目の要素である。
Q(:,j):=Q(:,j)−li,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から下三角部分を抽出し、空行列Lの対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Lに対して行列Gの下三角部分の要素を付与し、行列Lを下三角部分が非ゼロ要素である下三角行列である行列Lとする。
ここで、例えば、1回の演算ループの処理が終了した後、処理(11)にて数値iをデクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値1を下回ったこと、すなわち0となったこと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、その時点で記憶部7に記憶されている行列L及び行列Qを、それぞれ行列Hを分解した下三角行列Lと行列Qとして出力する。
したがって、数値k=1以降において、行列L演算部5は、数値kがi+1≦k≦Tの範囲内にあることを検出すると、処理(4)へ処理を進める。
そして、行列L演算部5は、この部分行列L(i,1:i)に対し、(3)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列L演算部5は、1回の演算ループの毎に数値kをデクリメントし、処理を処理(3)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jが1≦j≦i−1の間繰り返して行い、演算ループ毎に(3)式により、(2)式の最左辺の列ベクトルq1〜行ベクトルqi−1の各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルqi−1から列ベクトルq1に向かい、順に列ベクトルを演算する。ここで、列ベクトルqjは、Q(:,j)と同様である。
そして、行列Q演算部6は、数値jの示す列ベクトルqj、すなわち部分行列Q(,:ij)を、記憶部7に記憶されている行列Qから読み出す。
そして、行列Q演算部6は、この部分行列Q(,:i)に対し、(6)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(10)へ進める。
次に、処理(10)において、行列Q演算部6は、1回の演算ループの毎に数値jをインクリメントし、処理を処理(8)へ進める。
第2の実施形態の数値分解システムは、第1の実施形態と同様の構成をしている。第2の実施形態と第1の実施形態との違いは、演算制御部8の行列L演算部5及び行列Q演算部6の演算順序にある。すなわち、第1の実施形態においては、同一の演算ループ内にて、行列Lを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
したがって、演算制御部8及び初期化部4以外の他の構成要素(入力部1,行列L演算部5,行列Q演算部6及び記憶部7)の動作は、第2の実施形態においても、第1の実施形態の構成と同様である。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、空行列Lに対し、この行列Gの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Lに対して行列Gの値を付与し、空行列LをT行,T列の正方行列とする。
そして、処理(7)において、演算制御部8は、数値iをデクリメント(1を減算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが数値1を下回ったこと(範囲外であること)を検出すると、この時点における行列Lとして記憶部7へ記憶するとともに、処理を処理(8)へ進める。
また、処理(8)〜処理(13)においては、T回(正方行列Gの行及び列の数に対応した回数)の演算ループにて、行列Qを(2)式の最右列の列ベクトルqTから、最左列の列ベクトルq1まで、順番に演算する。
以下、本発明の第3の実施形態による数値分解システムを図面を参照して説明する。図5は同実施形態による数値分解システムの構成例を示すブロック図である。構成は第1の実施形態と同様であるが各構成の機能が異なっている。
したがって、第3の実施形態による数値分解システムは、第1の実施形態と同様に、入力部1,初期化部4,行列L演算部5,行列Q演算部6,記憶部7及び演算制御部8を有している。
初期化部4は、行列L演算部5及び行列Q演算部6にて用いる仮の行列を設定する。すなわち、初期化部4は、空行列Qに対して、分解対象の行列Hを付与して(対応する位置に要素のデータを上書きして)、行列Qとし、空行列Uに対して正方行列の上三角行列を付与して(対応する位置に要素のデータを上書きして)、行列Uとして初期化を行う。
ここで、列ベクトルU(1;i,i)は、i列目の列ベクトルにおける1番目の行成分からi番目までの行成分までの部分行列を示し、スカラーui、k *は行列Uのi行,k列目の要素の複素共役を示している。ここで、L=UHであるため、行列Lの行ベクトルを最下部から順に最上部の行を順次計算することに相当する。
U(1:i,i):=U(1:i,i)−ui、k *・U(1:i,k)…(7)
このとき、行列L演算部4は、kをデクリメントして、上記(7)式を、Tからi+1の範囲内、すなわちi+1≦k≦Tの間で繰り返して行う。
U(1:i,i):=U(1:i,i)/(ui,i)1/2 …(8)
Q(:,i):=Q(:,i)/ui、i …(9)
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、以下の(10)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーui、j *は、行列Uにおけるi行目,j列目の要素の複素共役である。
Q(:,j):=Q(:,j)−ui、j *・Q(:,i) …(10)
このとき、行列Q演算部6は、jを初期値1とし、処理を1回行う毎にインクリメントしつつ、上記(6)式を、1≦j≦i−1の間で繰り返して行う。
演算制御部8は、行列L演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
処理(1)において、初期化部4は、記憶部7から分割対象の行列Hを読み出し、空行列Qに対し、この行列Hの各要素を、対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Qに対して行列Hの値を付与し、空行列QをR行,T列の行列とする。
また、初期化部4は、記憶部7から行列Gを読み出し、この行列Gから上三角部分を抽出し、空行列Uの対応する行番号及び列番号で指定される位置に書き込み、すなわち空行列Uに対して行列Gの上三角部分の要素を付与し、行列Uを上三角部分が非ゼロ要素である上三角行列である行列Uとする。
また、行列L演算部5は、処理(12)において、L=UHの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶する。
次に、演算制御部8は、その時点で記憶部7に記憶されている行列L及び行列Qを、それぞれ行列Hを分解した上三角行列Lと行列Qとして出力する。
そして、行列L演算部5は、数値kがi+1≦k≦Tの範囲内にあることを検出すると、処理(4)へ処理を進める。
そして、行列L演算部5は、この部分行列U(1:i,i)に対し、(7)式の演算を行い、記憶部7における読み出した位置に書き込み、処理を処理(5)へ進める。
次に、処理(5)において、行列R演算部5は、1回の演算ループの毎に数値kをデクリメントし、処理を処理(3)へ進める。
以下、行列Q演算部6は、処理(8)〜処理(10)までの演算ループを、数値jが1≦j≦i−1の間繰り返して行い、演算ループ毎に(3)式により、(2)式の最右辺の列ベクトルqTから最左辺の列ベクトルq1の各列ベクトル(部分行列)を、行列の最右端の列ベクトルから最左端の列ベクトルの順に、すなわち列ベクトルqTから列ベクトルq1に向かい、順に列ベクトルを演算する。上述したように、列ベクトルqjは、Q(:,j)と同様である。
そして、行列Q演算部6は、数値jの示す列ベクトルuj、すなわち部分行列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が1を下回った(0となった)こと(範囲外であること)を検出すると、処理(2)〜処理(11)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(12)へ進める。
上述した複素共役転置の処理後、演算制御部8は、記憶部7から行列Q及び行列Lを読み出し、行列Hの分解結果として出力する。
第4の実施形態の数値分解システムは、第3の実施形態と同様の構成をしている。第4の実施形態と第3の実施形態との違いは、演算制御部8の行列L演算部5及び行列Q演算部6の演算順序にある。すなわち、第3の実施形態においては、同一の演算ループ内にて、行列Lを生成する演算ループと行列Qを生成する演算ループとが実行されるアルゴリズムとなっている。
したがって、行列L演算部5,行列Q演算部6及び演算制御部8以外の他の構成要素(入力部1,初期化部4及び記憶部7)の動作は、第4の実施形態においても、第3の実施形態の構成と同様である。
行列L演算部5は、設定された数値iにより、記憶部7に記憶されている対応するi列目の列ベクトルU(1:i,i)のデータを読み出すとともに、スカラーui、k *を算出し、以下の(7)式により、新たな列ベクトルを算出して、記憶部7の読み出した位置に上書きを行い、列ベクトルのデータの変更を行う。
ここで、列ベクトルU(1:i,i)は、i列目の列ベクトルにおける1番目の行成分からi番目までの行成分までの部分行列を示し、スカラーui、k *は行列Uのi行,k列目の要素の複素共役を示している。ここで、L=UHであるため、行列Uの行ベクトルを最下部から順に最上部の行を順次計算することに相当する。
このとき、行列R演算部4は、kをデクリメントして、上記(7)式を、kがTからi+1の範囲内、すなわちi+1≦k≦Tの間で繰り返して行う。
また、行列Q演算部6は、記憶部7から列ベクトルQ(:,j)を読み出し、上記(6)式により、新たな列ベクトルQ(:,j)を算出し、記憶部7の読み出した位置に記憶する。ここで、スカラーli,jは、行列Lにおけるi行目,j列目の要素の複素共役である。
すなわち、行列Q演算部6は、列ベクトルQ(:,i)の要素に対して、スカラーli,jを乗算し、この乗算結果を列ベクトルQ(:,j)から減算し、この減算結果を新たな列ベクトルQ(:,j)として、記憶部7の読み出した位置に書き込み、データの更新を行う。
このとき、行列Q演算部6は、jを初期値1とし、処理を1回行う毎にインクリメントしつつ、上記(12)式を、1≦j≦i−1の間で繰り返して行う。
演算制御部8は、行列L演算部5及び行列Q演算部6における演算処理の順序制御と、各演算部における演算処理の回数の制御、すなわち演算ループの制御とを行っている。
処理(1)における、初期化部4が行う処理(1)は、第3の実施形態と同様のため、説明を省略する。
ここで、例えば、1回の演算ループの処理が終了した後、処理(7)にて数値iをディクリメント(1を減算)し、処理(2)にて数値iが1≦i≦Tの範囲内であるか否か、0となったか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが1を下回ったこと(範囲外であること)を検出すると、処理(2)〜処理(7)の演算ループ(行列分割の演算ループ)を終了し、処理を処理(8)へ進める。
また、行列L演算部5は、処理(8)において、L=UHの演算を行い、すなわち上述した求めた上三角行列Uに対して複素共役転置の処理を行い、下三角行列の行列Lを算出して、記憶部7に記憶する。
次に、処理(7)において、演算制御部8は、数値iをディクリメント(1を減算)し、処理を処理(2)ヘ進める。
次に、処理(2)において、演算制御部8は、数値iが1≦i≦Tの範囲内であるか否かを検出し、範囲内であることを検出した場合、次の処理(3)へ処理を移し、一方、数値iが0となったこと(範囲外であること)を検出すると、行列Uを上三角行列として記憶部7へ記憶するとともに、処理を処理(8)へ進める。
となったか否かを検出し、範囲内であることを検出した場合、次の処理(10)へ処理を移し、一方、数値iが1を下回ったこと(範囲外であること)を検出すると、処理(9)〜処理(14)の演算ループ(行列Q生成の演算ループ)を終了し、その時点で記憶部7に記憶されている行列Qを、行列Hを分解した行列Qとして出力し、行列Hの分解処理を終了する。上記、処理(10),(11),(12),(13)各々は、それぞれ第3の実施形態における処理(7),(8),(9),(10)と同様のため、説明を省略する。しかしながら、処理(10)で用いる式は(5)式であり、処理(12)で用いる式は(6)式である。
・本発明の各実施形態におけるアルゴリズムは、所要処理演算量が従来アルゴリズム(Classical Gram-Schmidt QR分解法,Modified Gram-Schmidt QR分解法,Householder QR分解法,Given QR分解法など)に比較して少なくなる。
・本発明の各実施形態におけるアルゴリズムは、QL分解法のための回路を小さい規模で実現できる。すなわち、回路規模は所要演算量に比例するため、従来例に比較して演算量が少なくなるため、行列のQL分解の所要回路規模も従来に比較して小さくなり、従来装置に比較して小型化を実現できる。
・上述した各効果により、従来例に比較して、QL分解演算機能の装置への実装が簡易に行える。
・上述した各効果により、小型化、低消費電力化、低製造コスト化等が、従来例に比して向上しているため、経済的な大量生産を行うことができる。
行列及びスカラーは、その度毎に定義しているため省略し、以下、行列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の値の更新処理を示す
Claims (4)
- 入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
入力部が、分析対象であるT列の行列H、及び前記行列Hの複素共役転置行列H H を前記行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として記憶部に書き込みし、前記記憶部から前記正方行列Gの下三角部分の各要素を下三角行列Lの下三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と
行列L演算部が
手順1として前記記憶部から前記下三角行列Lを読み出し、前記下三角行列Lの第i行(T>=i>=1を満たす整数)の行ベクトルにおける非ゼロである各要素に対して、同列の第k行(T>=k>=i+1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として前記記憶部に書き込みする処理を、kをTから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の値をTから1として順次前記行列L演算過程と前記行列Q演算過程とを実行する制御を行い、前記実行後の前記行列Q及び下三角行列Lを、前記記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
入力部が、
分析対象であるT列の行列H、及び前記行列Hの複素共役転置行列H H を前記行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、
前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として前記記憶部に書き込みし、前記記憶部から前記正方行列Gの下三角部分の各要素を下三角行列Lの下三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列L演算部が
手順1として前記記憶部から前記下三角行列Lを読み出し、前記下三角行列Lの第i行(T>=i>=1を満たす整数)の行ベクトルにおける非ゼロである各要素に対して、同列の第k行(T>=k>=i+1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として前記記憶部に書き込みする処理を、kをTから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の値をTから1として順次前記行列L演算過程を実行する制御を行い、
iの値をTから1として順次前記行列Q演算過程を実行する制御を行い、
前記実行後の前記行列Q及び下三角行列Lを、前記記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
入力部が、
分析対象であるT列の行列H、及び前記行列Hの複素共役転置行列H H を前記行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、
前記記憶部から行列Hの各要素を読み出すとともに行列Qの各要素として前記記憶部に書き込みし、前記記憶部から前記正方行列Gの上三角部分の各要素を上三角行列Uの上三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列L演算部が
手順1として前記記憶部から前記上三角行列Uを読み出し、前記上三角行列Uの第i列(T>=i>=1を満たす整数)の列ベクトルにおける非ゼロである各要素に対して、同行の第k列(T>=k>=i+1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として前記記憶部に書き込みする処理を、kをTからi+1について行い、
手順2として前記手順1を行った後の上三角行列Uの第i列の列ベクトルを読み出し、前記第i列の列ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として前記記憶部に書き込みを行う行列U演算過程と、
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの各要素に対して、対角成分の要素の値で除算した値を、新たな要素値として前記記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j<=i-1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として前記記憶部に書き込みし、前記書き込み処理をj<=i-1を満たす全ての列について行う行列Q 演算過程と、
演算処理部が
iの値をTから1として順次前記行列U演算過程と前記行列Q演算過程とを実行する制御を行い、前記実行後の前記Q及び上三角行列Uを、前記記憶部から読み出して出力する演算処理過程と、
行列複素共役転置演算部が
前記上三角行列Uに対して複素共役転置演算を行い、前記下三角行列Lを求める行列複素共役転置演算過程と
を有することを特徴とする行列における数値分解方法。 - 入力される行列Hを行列Qと下三角行列Lとに分解するQL分解を行う数値分解方法であって、
入力部が、
分析対象であるT列の行列H、及び前記行列Hの複素共役転置行列H H を前記行列Hとを乗算して求めたT行T列の正方行列Gを記憶部に記憶し、
初期化手段が、
前記記憶部から前記行列Hの各要素を読み出すとともに行列Qの各要素として前記記憶部に書き込みし、前記記憶部から前記正方行列Gの上三角部分の各要素上三角行列Uの上三角部分の非ゼロである各要素として前記記憶部に書き込みする初期化過程と、
行列L演算部が
手順1として前記記憶部から前記上三角行列Uを読み出し、前記上三角行列Uの第i列(T>=i>=1を満たす整数)の列ベクトルにおける非ゼロである各要素に対して、同行の第k列(T>=k>=i+1)の非ゼロである要素の複素共役値を算出して前記各要素から減算した値を新たな要素値として前記記憶部に書き込みする処理を、kをTからi+1について行い、
手順2として前記手順1を行った後の上三角行列Uの第i列の列ベクトルを読み出し、前記第i列の列ベクトルにおける非ゼロである各要素に対して、対角成分の要素の平方根で除算した値を、新たな要素値として前記記憶部に書き込みを行う行列U演算過程と、
行列複素共役転置演算部が
前記上三角行列Uに対して複素共役転置演算を行い、前記下三角行列Lを求める行列複素共役転置演算過程と
行列Q演算部が
手順3として前記記憶部から前記行列Qの第i列を読み出し、前記第i列の列ベクトルの要素に対して、対角成分の要素の値で除算した値を、新たな要素値として前記記憶部に書き込みし、
手順4として前記手順3を行った後の行列Qを読み出し、第i列の要素に第j列(j<=i-1)の第i行の要素を乗じた値を、第j列の各要素から減算した値を、新たな各要素値として前記記憶部に書き込みし、前記書き込み処理をj<=i-1を満たす全ての列について行う
行列Q演算過程と、
演算処理部が
iの値をTから1として順次前記行列U演算過程を実行する制御を行い、
行列複素共役転置演算過程を実行する制御を行い、
iの値をTから1として順次前記行列Q演算過程を実行する制御を行い、
前記実行後の前記行列Q及び下三角行列Lを、前記記憶部から読み出して出力する演算処理過程と
を有することを特徴とする行列における数値分解方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006314369A JP4531738B2 (ja) | 2006-11-21 | 2006-11-21 | 行列における数値分解方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006314369A JP4531738B2 (ja) | 2006-11-21 | 2006-11-21 | 行列における数値分解方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008129861A JP2008129861A (ja) | 2008-06-05 |
JP4531738B2 true JP4531738B2 (ja) | 2010-08-25 |
Family
ID=39555608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006314369A Expired - Fee Related JP4531738B2 (ja) | 2006-11-21 | 2006-11-21 | 行列における数値分解方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4531738B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651138B (zh) * | 2020-05-28 | 2023-11-03 | Oppo广东移动通信有限公司 | 一种集成电路、信号处理方法及装置、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003273837A (ja) * | 2002-03-12 | 2003-09-26 | Toshiba Corp | 受信装置、送受信装置、送信装置および送信信号分類装置 |
WO2005109680A1 (en) * | 2004-04-22 | 2005-11-17 | Qualcomm Incorporated | Iterative eigenvector computation for a mimo communication system |
JP2006284180A (ja) * | 2005-03-31 | 2006-10-19 | Denso It Laboratory Inc | 到来波の方向推定装置 |
JP2007049267A (ja) * | 2005-08-08 | 2007-02-22 | Nippon Telegr & Teleph Corp <Ntt> | 無線通信システムの受信装置、送信装置の送信した無線信号の検出方法並びにそのプログラムと記録媒体 |
JP4313803B2 (ja) * | 2006-03-27 | 2009-08-12 | 日本電信電話株式会社 | 行列における数値分解方法 |
-
2006
- 2006-11-21 JP JP2006314369A patent/JP4531738B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003273837A (ja) * | 2002-03-12 | 2003-09-26 | Toshiba Corp | 受信装置、送受信装置、送信装置および送信信号分類装置 |
WO2005109680A1 (en) * | 2004-04-22 | 2005-11-17 | Qualcomm Incorporated | Iterative eigenvector computation for a mimo communication system |
JP2006284180A (ja) * | 2005-03-31 | 2006-10-19 | Denso It Laboratory Inc | 到来波の方向推定装置 |
JP2007049267A (ja) * | 2005-08-08 | 2007-02-22 | Nippon Telegr & Teleph Corp <Ntt> | 無線通信システムの受信装置、送信装置の送信した無線信号の検出方法並びにそのプログラムと記録媒体 |
JP4313803B2 (ja) * | 2006-03-27 | 2009-08-12 | 日本電信電話株式会社 | 行列における数値分解方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2008129861A (ja) | 2008-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jidling et al. | Linearly constrained Gaussian processes | |
Wang et al. | IK-SVD: dictionary learning for spatial big data via incremental atom update | |
JP4952979B2 (ja) | 信号分離装置、信号分離方法、ならびに、プログラム | |
JP2018026134A (ja) | ゼロ係数スキップ畳み込みニューラルネットワークエンジン | |
CN112534448A (zh) | 多量子位控制 | |
JP2009037597A (ja) | 入力画像をフィルタリングして出力画像を作成する方法 | |
Soubeyrand et al. | Parameter estimation for reaction-diffusion models of biological invasions | |
JP6953287B2 (ja) | 音源探査装置、音源探査方法およびそのプログラム | |
JP2015521748A (ja) | 入力信号を変換する方法 | |
JP7271244B2 (ja) | Cnn処理装置、cnn処理方法、およびプログラム | |
Berry et al. | Forecasting turbulent modes with nonparametric diffusion models: Learning from noisy data | |
Sampson et al. | Ensemble Kalman filter for nonconservative moving mesh solvers with a joint physics and mesh location update | |
JP5068228B2 (ja) | 非負値行列分解の数値計算方法、非負値行列分解の数値計算装置、プログラムおよび記憶媒体 | |
JP5405641B2 (ja) | 挙動解析システム、挙動解析方法及び挙動解析プログラム | |
Krishnan et al. | A wavelet-based dynamic mode decomposition for modeling mechanical systems from partial observations | |
JP4531738B2 (ja) | 行列における数値分解方法 | |
JP4313803B2 (ja) | 行列における数値分解方法 | |
JP6567478B2 (ja) | 音源強調学習装置、音源強調装置、音源強調学習方法、プログラム、信号処理学習装置 | |
de Frias et al. | A multiscale mass scaling approach for explicit time integration using proper orthogonal decomposition | |
WO2016002020A1 (ja) | 行列生成装置及び行列生成方法及び行列生成プログラム | |
JP7349811B2 (ja) | 訓練装置、生成装置及びグラフ生成方法 | |
JP3865247B2 (ja) | 連立一次方程式反復求解計算機、及び、連立一次方程式反復求解計算方法 | |
WO2020261509A1 (ja) | 機械学習装置、機械学習プログラム、及び機械学習方法 | |
JP7204545B2 (ja) | 音響信号処理装置、音響信号処理方法、およびプログラム | |
WO2023157184A1 (ja) | 情報処理装置、情報処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100517 |
|
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: 20100601 |
|
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: 20100609 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4531738 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: 20130618 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140618 Year of fee payment: 4 |
|
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 |