JP4260725B2 - Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium - Google Patents
Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium Download PDFInfo
- Publication number
- JP4260725B2 JP4260725B2 JP2004329130A JP2004329130A JP4260725B2 JP 4260725 B2 JP4260725 B2 JP 4260725B2 JP 2004329130 A JP2004329130 A JP 2004329130A JP 2004329130 A JP2004329130 A JP 2004329130A JP 4260725 B2 JP4260725 B2 JP 4260725B2
- Authority
- JP
- Japan
- Prior art keywords
- eigenvalue
- matrix
- list
- hermitian
- unitary
- 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
本発明は、固有値を計算する固有値計算装置、固有値計算方法、その固有値計算プログラム及び記録媒体に関し、特に、ユニタリ行列の固有値を計算する固有値計算装置、固有値計算方法、固有値計算プログラム及び記録媒体に関する。 The present invention relates to an eigenvalue calculation apparatus, eigenvalue calculation method, eigenvalue calculation program, and recording medium for calculating an eigenvalue, and more particularly to an eigenvalue calculation apparatus, eigenvalue calculation method, eigenvalue calculation program, and recording medium for calculating an eigenvalue of a unitary matrix.
<使用する記号の定義>
本明細書では、行列Aの転置行列をtAで表し、その転置行列の全ての要素を各々共役複素数で置き換えた行列である共役転置行列(随伴行列とも呼ぶ)をA*で表す。このとき、エルミート(Hermite)行列(Aが実行列の場合は対称行列)は、A=A*となる行列であり、ユニタリ(unitary)行列は、AA*=Iとなる行列である(但し、Iは単位行列を表す)。
<本発明の背景>
固有値計算において一番扱いやすい行列はエルミート行列である。すなわち、対象のエルミート行列をHouseholder変換やLanczosの方法等を用いて三重対角行列(三重対角エルミート行列)に変換し、それにQR法やSturm法を適用すれば、その固有値を求めることができる(例えば、非特許文献1,2参照。)。
<Definition of symbols used>
In this specification, it represents a transposed matrix of the matrix A in t A, representing each conjugate transpose matrix is a matrix obtained by replacing in complex conjugate of all elements of the transposed matrix (also referred to as adjoint matrix) with A *. At this time, the Hermite matrix (a symmetric matrix when A is a real matrix) is a matrix where A = A * , and the unitary matrix is a matrix where AA * = I (provided that I represents a unit matrix).
<Background of the present invention>
The easiest matrix to handle in eigenvalue calculation is the Hermitian matrix. That is, if the Hermitian matrix of interest is converted into a tridiagonal matrix (tridiagonal Hermitian matrix) using the Householder transform, Lanczos method, etc., and its QR method or Sturm method is applied to it, its eigenvalue can be obtained. (For example, refer
一方、一般的な正方行列Aの固有値の算出には以下の手法が用いられることが一般的である。すなわち、対象の正方行列Aを、有限回の演算によって実現できるユニタリ相似変換によって都合のよい中間形A’=U*AU(Uはユニタリ行列)に変形し、その中間形A’にQR法等の反復計算を適用してその固有値を求める手法がとられる(例えば、非特許文献1,2参照。)。この手法は、QR法等の反復計算によって中間形A’が上三角形行列に収束する事実を前提にしたものであり、この前提が保たれる限り正しい固有値の算出が可能である。
しかし、正方行列Aが持つ複数の固有値のうち、相互に絶対値が等しいものが存在していた場合、上述した中間形A’=U*AUに反復計算を適用してその固有値を求める手法では、正しい固有値が求まらないことがある。すなわち、前述の通り、この固有値算出方法は、反復計算により中間形A’が上三角形行列に収束する事実を前提としている。しかし、正方行列Aが絶対値の等しい複数の固有値を持っていた場合、この反復計算によって中間形A’が上三角形行列に収束しない場合もあり、その結果、正しい固有値を求められない場合も生じてくる。 However, when a plurality of eigenvalues possessed by the square matrix A have equal absolute values, the method for obtaining the eigenvalues by applying iterative calculation to the above-described intermediate form A ′ = U * AU is not used. The correct eigenvalue may not be obtained. That is, as described above, this eigenvalue calculation method is based on the fact that the intermediate form A ′ converges to the upper triangular matrix by iterative calculation. However, when the square matrix A has a plurality of eigenvalues having the same absolute value, the intermediate form A ′ may not converge to the upper triangular matrix by this iterative calculation, and as a result, a correct eigenvalue may not be obtained. Come.
ここでユニタリ行列の固有値の絶対値はすべて1である。そのため、ユニタリ行列を対象として前述の手法を適用した場合、正しい固有値を算出できない場合がある。
本発明はこのような点に鑑みてなされたものであり、ユニタリ行列の正しい固有値を容易に算出できる技術を提供することを目的とする。
Here, the absolute values of the eigenvalues of the unitary matrix are all 1. For this reason, when the above-described method is applied to a unitary matrix, a correct eigenvalue may not be calculated.
The present invention has been made in view of such a point, and an object thereof is to provide a technique capable of easily calculating a correct eigenvalue of a unitary matrix.
本発明では上記課題を解決するために、まず、入力されたユニタリ行列とその共役転置行列との和であるエルミート行列を算出する。そして、このエルミート行列の固有値を算出し、このエルミート行列の固有値を定数倍し、その演算結果を出力する。
ここで、前述のように、エルミート行列の固有値を算出することは容易である。また、この手順を固有値算出対象のユニタリ行列U、或いはそれから生成したユニタリ行列に適用することにより、ユニタリ行列Uの固有値の実部、虚部及び重複度を特定するための情報を得ることができる。例えば、上記の手順を固有値算出対象のユニタリ行列Uに適用した場合、その出力は、ユニタリ行列Uの固有値の実部とその重複度とを特定するものとなる。また、上記の手順をユニタリ行列i・U(iは虚数単位)に適用した場合、その出力は、ユニタリ行列Uの固有値の虚部とその重複度とを特定するものとなる。また、上記の手順をユニタリ行列i・U2に適用した場合、その出力は、ユニタリ行列Uの固有値の実部及び虚部の積とその重複度とを特定するものとなる。なお、重複度とは、重複解の重複数を意味する。例えば、求めた値が0.2,0.2,0.2,0.4,0.5,0.5,0.7であった場合、値「0.2」の重複度は3となり、「0.5」の重複度は2となる。
In the present invention, in order to solve the above problem, first, a Hermitian matrix that is the sum of the input unitary matrix and its conjugate transpose matrix is calculated. Then, the eigenvalue of this Hermite matrix is calculated, the eigenvalue of this Hermite matrix is multiplied by a constant, and the calculation result is output.
Here, as described above, it is easy to calculate the eigenvalues of the Hermitian matrix. In addition, by applying this procedure to the unitary matrix U that is an eigenvalue calculation target or a unitary matrix generated therefrom, information for specifying the real part, the imaginary part, and the degree of overlap of the eigenvalues of the unitary matrix U can be obtained. . For example, when the above procedure is applied to the unitary matrix U that is an eigenvalue calculation target, the output specifies the real part of the eigenvalue of the unitary matrix U and the degree of overlap. Further, when the above procedure is applied to the unitary matrix i · U (i is an imaginary unit), the output specifies the imaginary part of the eigenvalue of the unitary matrix U and its redundancy. When the above procedure is applied to the unitary matrix i · U 2 , the output specifies the product of the real part and the imaginary part of the eigenvalue of the unitary matrix U and the degree of overlap. Note that the degree of overlap means the number of overlapping solutions. For example, if the calculated value is 0.2, 0.2, 0.2, 0.4, 0.5, 0.5, and 0.7, the overlap of the value “0.2” is 3. , “0.5” has a degree of overlap of 2.
このように、上記の手順によりユニタリ行列Uの固有値の実部、虚部及び重複度を特定するための情報を得ることができ、これによりユニタリ行列Uの固有値を特定することができる。 In this way, information for specifying the real part, the imaginary part, and the degree of overlap of the eigenvalues of the unitary matrix U can be obtained by the above-described procedure, whereby the eigenvalues of the unitary matrix U can be specified.
以上のように本発明では、ユニタリ行列の固有値の算出に計算のしやすいエルミート行列の固有値を利用することとしたため、ユニタリ行列の正しい固有値を容易に算出することが可能となる。 As described above, according to the present invention, the eigenvalue of the Hermitian matrix that is easy to calculate is used to calculate the eigenvalue of the unitary matrix, so that the correct eigenvalue of the unitary matrix can be easily calculated.
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
まず、本発明における第1の実施の形態について説明する。
<原理>
まず、本形態の原理について説明する。
図1は、本形態の固有値計算装置10の基本的な構成を示したブロック図である。
図1に例示するように、本形態の固有値計算装置10は、エルミート行列算出部11、エルミート行列固有値算出部12及びリスト生成部13を有している。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, a first embodiment of the present invention will be described.
<Principle>
First, the principle of this embodiment will be described.
FIG. 1 is a block diagram showing a basic configuration of an
As illustrated in FIG. 1, the
まず、エルミート行列算出部11にユニタリ行列が入力され、エルミート行列算出部11は、当該ユニタリ行列とその共役転置行列との和であるエルミート行列を算出して出力する。次に、エルミート行列固有値算出部12に、このエルミート行列が入力され、エルミート行列固有値算出部12は、当該エルミート行列の固有値を算出して出力する。そして、リスト生成部13にこのエルミート行列の固有値が入力され、リスト生成部13は、当該エルミート行列の固有値を用いて当該エルミート行列の固有値を定数倍し、その演算結果を出力する。
First, a unitary matrix is input to the Hermitian
次に、この基本構成をユニタリ行列の固有値の算出に適用して説明する。なお、以下では、固有値を求めるユニタリ行列をn行n列のユニタリ行列Uとする。この場合、U+U*はエルミート行列となる。
[Uが実の場合]
まず、ユニタリ行列Uが実の場合について説明する。この場合、Uは直交行列となり、U*=tUとなり、V=U+U*は実対称行列となる。
まず、エルミート行列算出部11に、ユニタリ行列Uが入力され、エルミート行列算出部11は、当該ユニタリ行列Uとその共役転置行列U*との和であるエルミート行列V=U+U*を算出し、出力する。次に、エルミート行列固有値算出部12にエルミート行列V=U+U*が入力され、エルミート行列固有値算出部12は、エルミート行列V=U+U*に対し、実対称行列の固有値を求める公知のルーチンを適用し、エルミート行列V=U+U*の固有値を求める。ここで、ユニタリ行列Uは共役転置行列U*と可換であるため、ユニタリ行列Uの固有値と共役転置行列U*の固有値との和は、エルミート行列V=U+U*の固有値と等しくなる。また、ユニタリ行列Uの固有値(例えば、α=a+i・b)を共役複素数で置き換えたもの(a−i・b)は共役転置行列U*の固有値となる。そのため、ユニタリ行列Uの固有値の実部をaγ(γ=1,2,...,n)とすると、エルミート行列V=U+U*の固有値は2aγとなる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
Next, this basic configuration will be described by applying it to the calculation of the eigenvalues of the unitary matrix. In the following, a unitary matrix for obtaining an eigenvalue is an n-by-n unitary matrix U. In this case, U + U * is a Hermitian matrix.
[When U is real]
First, the case where the unitary matrix U is real will be described. In this case, U is an orthogonal matrix, U * = tU , and V = U + U * is a real symmetric matrix.
First, a unitary matrix U is input to the
算出されたエルミート行列V=U+U*の固有値2aγは、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V=U+U*の固有値2aγのうち共通する値をまとめ、固有値2aj(1≦j≦u,1≦u≦n)とその重複度pjとの対を生成する。さらに、この固有値2ajを1/2倍し、ユニタリ行列Uの固有値の実部aj(1≦j≦u,1≦u≦n)とその重複度pjとの対からなるリストA=[(aj,pj)]を生成する。
また、ユニタリ行列Uの固有値の絶対値(実部の二乗と虚部の二乗との和の平方根)は1であるという関係を用い、リスト生成部13は、ユニタリ行列Uの固有値の虚部bjの絶対値を√(1−aj 2)によって算出する。
The calculated eigenvalue 2a γ of the Hermitian matrix V = U + U * is sent to the
Further, the
次に、ユニタリ行列Uの固有値の絶対値が1であることから、この固有値が虚であるかどうかは、−1<aj<1が成り立つかどうかによって判断する。
ここで、−1<aj<1を満たす場合、これを実部ajとする固有値は虚である。そして、このユニタリ行列Uは実であることから、この固有値は必ず複素共役の対となる。つまり、この実部ajをもつ固有値は、aj+√(1−aj 2)とaj−√(1−aj 2)の対になる。すなわち、この固有値の実部ajの重複度pjは必ず偶数となる。
一方、−1<aj<1を満たさない場合(aj=±1と同値)、この固有値は実であり、この実部ajをもつ固有値はajとなる。すなわち、実部aj=±1ならば、その固有値は±1(複号同順)となる。
Next, since the absolute value of the eigenvalue of the unitary matrix U is 1, whether this eigenvalue is imaginary is determined by whether -1 <a j <1 holds.
Here, when -1 <a j <1, the eigenvalue having the real part a j is imaginary. Since this unitary matrix U is real, this eigenvalue is always a complex conjugate pair. That is, the eigenvalue having this real part a j is a pair of a j + √ (1−a j 2 ) and a j −√ (1−a j 2 ). That is, the degree of overlap p j of the real part a j of the eigenvalue is always an even number.
On the other hand, when -1 <a j <1 is not satisfied (equivalent to a j = ± 1), this eigenvalue is real, and the eigenvalue having this real part a j is a j . That is, if the real part a j = ± 1, its eigenvalue is ± 1 (compound order).
以上より、ユニタリ行列Uの固有値が求まり、虚固有値の重複度は(1/2)・pjとなり、実固有値(固有値が±1の場合)の重複度はpjとなる。
[Uが虚の場合]
次に、ユニタリ行列Uが複素の場合を説明する。すなわち、Uはユニタリ行列、V=U+U*はエルミート行列である。
この場合もUが実の場合と同様に、エルミート行列の固有値を求めるルーチンを用いてV=U+U*の固有値を求めることにより、Uの固有値の実部と、虚部の絶対値とがわかる。ただし、Uが虚の場合、Uが実の場合と異なり、実部ajをもつ固有値が、aj+√(1−aj 2)とaj−√(1−aj 2)の対になるとは限らない。そのため、ユニタリ行列Uだけではなく、ユニタリ行列i・Uをも図1の固有値計算装置10に入力し、それぞれのリストを得る。
From the above, the eigenvalue of the unitary matrix U is obtained, the degree of overlap of the imaginary eigenvalue is (1/2) · p j , and the degree of overlap of the real eigenvalue (when the eigenvalue is ± 1) is p j .
[When U is imaginary]
Next, a case where the unitary matrix U is complex will be described. That is, U is a unitary matrix and V = U + U * is a Hermitian matrix.
In this case, as in the case where U is real, the real part of the eigenvalue of U and the absolute value of the imaginary part can be obtained by obtaining the eigenvalue of V = U + U * using a routine for obtaining the eigenvalue of the Hermitian matrix. However, when U is imaginary, unlike the case where U is real, the eigenvalue having real part a j is a pair of a j + √ (1−a j 2 ) and a j −√ (1−a j 2 ). It does not always become. Therefore, not only the unitary matrix U but also the unitary matrix i · U is input to the
すなわち、まず、固有値計算装置10にユニタリ行列Uが入力され、Uが実の場合と同様にリストA=[(aj,pj)]が生成される。また、bj=√(1−aj 2)によって虚部の絶対値bjを求め、三つ組みのリストA’=[(aj,bj,pj)]を生成する。
次に、エルミート行列算出部11にユニタリ行列i・Uが入力され、エルミート行列算出部11は、当該ユニタリ行列i・Uとその共役転置行列(i・U)*との和であるエルミート行列V’=i・U+(i・U)*を算出し、出力する。次に、エルミート行列固有値算出部12にエルミート行列V’=i・U+(i・U)*が入力され、エルミート行列固有値算出部12は、エルミート行列V’=i・U+(i・U)*に対し、エルミート行列の固有値を求める公知のルーチンを適用し、エルミート行列V’=i・U+(i・U)*の固有値を求める。
That is, first, a unitary matrix U is input to the
Next, the unitary matrix i · U is input to the Hermitian
ここで、ユニタリ行列は正規行列なので、ユニタリ行列i・Uの固有値の虚部bγとすると、エルミート行列V’=i・U+(i・U)*の固有値は−2bγとなる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
算出されたエルミート行列V’=i・U+(i・U)*の固有値−2bγは、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V’=i・U+(i・U)*の固有値−2bγのうち共通する値をまとめ、固有値−2bk(1≦k≦v,1≦v≦n)とその重複度qkとの対を生成する。さらに、この固有値−2bkを−(1/2)倍し、ユニタリ行列Uの固有値の虚部bkとその重複度qkとの対からなるリストB=[(bk,qk)]を作成する。
Here, since the unitary matrix is a normal matrix, if the imaginary part b γ of the eigenvalue of the unitary matrix i · U is assumed, the eigenvalue of the Hermitian matrix V ′ = i · U + (i · U) * is −2b γ . Here, even if the eigenvalues have a degree of overlap, the same eigenvalues are arranged for the degree of overlap.
The calculated Hermitian matrix V ′ = i · U + (i · U) * eigenvalue −2b γ is sent to the
以上より、ユニタリ行列Uの固有値の実部、虚部及び重複度からなるリストA’=[(aj,bj,pj)]と、虚部及び重複度からなるリストB=[(bk,qk)]とが生成されたことになる。
次に、リストA’=[(aj,bj,pj)]から要素(a,b,p)を順番に取り出す。
1.ここでa=0であるか、リストA’に(−a,b,p’)という要素がなければ、Uの固有値で虚部が±bであるものの実部はaだけであることがわかる(実部が、−aというものはない)。そのため、最初の成分がbである(b,q)をリストBから抽出することにより、Uの固有値で実部がaとなるものについて、虚部がbとなるもの、すなわち、a+b・iがq個存在することがわかる。また、最初の成分が−bである(−b,q’)をリストBから抽出することにより、Uの固有値で実部がaとなるものについて、虚部が−bとなるもの、すなわち、a−b・iがq’個存在することがわかる。
From the above, the list A ′ = [(a j , b j , p j )] consisting of the real part, imaginary part and multiplicity of the eigenvalues of the unitary matrix U and the list B = [(b k , q k )] are generated.
Next, the element (a, b, p) is sequentially extracted from the list A ′ = [(a j , b j , p j )].
1. Here, if a = 0 or there is no element (−a, b, p ′) in the list A ′, it can be seen that the real part is only a, although the imaginary part of the eigenvalue of U is ± b. (There is no real part -a). Therefore, by extracting (b, q) whose first component is b from the list B, for the eigenvalue of U where the real part is a, the imaginary part is b, that is, a + b · i is It can be seen that q exist. In addition, by extracting (−b, q ′) whose initial component is −b from the list B, for the eigenvalue of U where the real part is a, the imaginary part is −b, that is, It can be seen that there are q ′ ab · i.
2.一方、リストA’に(−a,b,p’)(a≠0)という要素があり、リストBに(b,q),(−b,q’)の一方の要素しかない場合、この存在する側の要素(b,q)或いは(−b,q’)の最初の成分をb’とすると、Uの固有値で、実部が±aとなるものの虚部はb’だけであることがわかる(虚部が−b’というものはない)。よって、Uの固有値で実部が±aとなるものについて、a+b’・iがp個、−a+b’・iがp’個存在することがわかる。
これまでの処理によって固有値が決定できていないものは、リストA’に(a,b,p),(−a,b,p’)(a≠0)という対があり、しかも、リストBに(b,q),(−b,q’)(b≠0)という対がある場合のみである。この場合、前述したリストA’とリストBのみでは固有値を特定することができない。
2. On the other hand, if the list A ′ has an element (−a, b, p ′) (a ≠ 0) and the list B has only one element (b, q), (−b, q ′), this If the first component of the existing element (b, q) or (-b, q ') is b', it is the eigenvalue of U and the real part is ± a, but the imaginary part is only b ' (There is no imaginary part -b '). Therefore, it can be seen that there are p a + b ′ · i and p ′ −a + b ′ · i for the eigenvalue of U whose real part is ± a.
In the case where eigenvalues have not been determined by the processing so far, the list A ′ has a pair of (a, b, p), (−a, b, p ′) (a ≠ 0), and the list B has Only when there is a pair (b, q), (−b, q ′) (b ≠ 0). In this case, the eigenvalue cannot be specified only by the list A ′ and the list B described above.
図2は、この際になぜ固有値が特定できないのかを示した図である。
まず、i・Uの固有値は、Uの固有値を角度90°だけ回転させたものと一致する。よって、ユニタリ行列Uの固有値候補α1を90°回転させたもの(i・Uの固有値)の実部と、ユニタリ行列Uの他の固有値候補α2を90°回転させたもの(i・Uの固有値)の実部とが一致する場合、i・U+(i・U)*の固有値から、これらの固有値候補α1,α2を区別することができない。なお、固有値候補とは、リストA’及びリストリストBの実部,虚部のすべての組み合わせを意味する。
FIG. 2 is a diagram showing why the eigenvalue cannot be specified at this time.
First, the eigenvalue of i · U matches the value obtained by rotating the eigenvalue of U by an angle of 90 °. Therefore, the real part of the unitary matrix U eigenvalue candidate α1 rotated by 90 ° (i · U eigenvalue) and the other eigenvalue candidate α2 of the unitary matrix U rotated by 90 ° (i · U eigenvalue) ) Cannot match the eigenvalue candidates α1 and α2 from the eigenvalue of i · U + (i · U) * . The eigenvalue candidate means all combinations of the real part and the imaginary part of the list A ′ and the list list B.
図2は、このことを説明するための図である。この図は、ユニタリ行列Uの固有値の実部と虚部を示した図であり、横軸は実部を示す実軸であり、縦軸は虚部を示す虚軸である。
図2は、ユニタリ行列Uの固有値候補ak±bk・iを180°回転させたものが、他の固有値候補aj±bj・iと一致する場合を示している。このような状況は、リストA’に(a,b,p),(−a,b,p’)(a≠0)という対があり、しかも、リストBに(b,q),(−b,q’)(b≠0)という対がある場合に生じる。
FIG. 2 is a diagram for explaining this. This figure shows the real part and the imaginary part of the eigenvalues of the unitary matrix U, the horizontal axis is the real axis indicating the real part, and the vertical axis is the imaginary axis indicating the imaginary part.
FIG. 2 shows a case where the eigenvalue candidates a k ± b k · i of the unitary matrix U rotated by 180 ° coincide with other eigenvalue candidates a j ± b j · i. In such a situation, the list A ′ has a pair (a, b, p), (−a, b, p ′) (a ≠ 0), and the list B has (b, q), (− This occurs when there is a pair b, q ′) (b ≠ 0).
この場合、ユニタリ行列Uの固有値候補ak−bk・iを90°回転させたものの実部aは、他の固有値候補−aj+bj・iを90°回転させたものの実部aと一致する。そのため、i・U+(i・U)*の固有値が−2aとして求められたとしても、これが固有値候補ak−bk・iに対応するものか、他の固有値候補−aj+bj・iに対応するものかを区別することができず、Uの固有値を特定することもできない。
以上より、このようなときはさらにユニタリ行列W=i・U2を図1の固有値計算装置10に入力し、それぞれのリストを得る。
In this case, the real part a obtained by rotating the eigenvalue candidate a k −b k · i of the unitary matrix U by 90 ° is the real part a obtained by rotating the other eigen value candidate −a j + b j · i by 90 °. Match. Therefore, even if the eigenvalue of i · U + (i · U) * is obtained as −2a, whether this corresponds to the eigenvalue candidate a k −b k · i or another eigenvalue candidate −a j + b j · i Cannot be distinguished from each other, and the eigenvalue of U cannot be specified.
As described above, in such a case, the unitary matrix W = i · U 2 is further input to the
すなわち、エルミート行列算出部11に、ユニタリWが入力され、エルミート行列算出部11は、ユニタリWとその共役転置行列W*との和であるエルミート行列V’’=W+W*を算出し、出力する。次に、エルミート行列固有値算出部12にエルミート行列V’’=W+W*が入力され、エルミート行列固有値算出部12は、エルミート行列V’’=W+W*に対し、エルミート行列の固有値を求める公知のルーチンを適用し、エルミート行列V’’=W+W*の固有値を求める。
ここで、ユニタリ行列は正規行列なので、ユニタリ行列の可換性より、ユニタリ行列Wの固有値の実部をauとし虚部buとすると、エルミート行列V’’=W+W*の固有値は−4aγ・bγとなる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
That is, unitary W is input to Hermite
Here, since the unitary matrix is a normal matrix, due to the commutability of the unitary matrix, if the real part of the eigenvalue of the unitary matrix W is a u and the imaginary part b u , the eigenvalue of the Hermitian matrix V ″ = W + W * is −4a γ · b γ . Here, even if the eigenvalues have a degree of overlap, the same eigenvalues are arranged for the degree of overlap.
算出されたエルミート行列V’’=W+W*の固有値−4aγ・bγは、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V’’=W+W*の固有値−4aγ・bγのうち共通する値をまとめ、固有値−4ag・bg(1≦g≦w,1≦w≦n)とその重複度rgとの対を生成する。さらに、この固有値−4ag・bgを−(1/4)倍し、ag・bgとその重複度rgとの対からなるリストC=[(ag・bg,rg)]を作成する。
その後、リストA’から(a,b,p)と(−a,b,p’)、リストBから(b,q)、リストCから(ab,r)を抽出する。ここで、ユニタリ行列Uの固有値a+b・i,a−b・i,−a+b・i,−a−b・iの重複度をそれぞれm1,m2,m3,m4とおくと、(a,b,p)と(−a,b,p’)からm1+m2=p,m3+m4=p’となることがわかり、(b,q)からm1+m3=qとなることがわかり、(ab,r)からm1+m4=rとなることがわかる。
The calculated Hermitian matrix V ″ = W + W * eigenvalues −4a γ · b γ is sent to the
Thereafter, (a, b, p) and (−a, b, p ′) are extracted from the list A ′, (b, q) from the list B, and (ab, r) from the list C. Here, if the overlapping values of the eigenvalues a + b · i, a−b · i, −a + b · i, and −a−b · i of the unitary matrix U are set to m 1 , m 2 , m 3 , and m 4 , respectively, From a, b, p) and (−a, b, p ′), it can be seen that m 1 + m 2 = p, m 3 + m 4 = p ′, and from (b, q), m 1 + m 3 = q From (ab, r), it can be seen that m 1 + m 4 = r.
これから、s=(−p’+q+r)/2とおくと、
m1=s
m2=p−s
m3=q−s
m4=r−s
と重複度が求まる。これにより、ユニタリ行列Uの固有値として、a+b・iがm1個、、a−b・iがm2個、−a+b・iがm3個、−a−b・iがm4個存在することがわかる。
From now on, if s = (− p ′ + q + r) / 2,
m 1 = s
m 2 = ps
m 3 = q−s
m 4 = rs−s
And the degree of overlap is obtained. Accordingly, there are m 1 a + b · i, m 2 ab · i, m 3 −a + b · i, and m 4 −a−b · i as eigenvalues of the unitary matrix U. I understand that.
<具体的な構成>
次に、本形態の具体的な構成について例示する。
図3は、本形態における固有値計算装置100の構成を例示したブロック図である。
図3に例示するように、この例の固有値計算装置100は、CPU(Central Processing Unit)110、入力部120、出力部130、ハードディスク装置140、RAM(Random Access Memory)150、ROM(Read Only Memory)160及びバス170を有している。
<Specific configuration>
Next, a specific configuration of this embodiment is illustrated.
FIG. 3 is a block diagram illustrating the configuration of the
As illustrated in FIG. 3, the
CPU110は、入力された各種プログラムに従って様々な演算処理を実行するプロセッサであり、レジスタ111が接続されている。入力部120は、データが入力される入力ポート、キーボード、マウス等であり、出力部130は、データを出力する出力ポート、ディスプレイ等である。ハードディスク装置140は、windows(登録商標)等のOS(Operating System)プログラムを格納するOSプログラム領域141、本形態の固有値計算を実行するための固有値計算プログラムを格納した固有値計算プログラム領域142を有している。また、RAM150は、OSプログラムを格納する固有値計算プログラム領域152、固有値計算プログラムを格納する固有値計算プログラム領域152及び固有値を求めるユニタリ行列Uを格納したデータ領域153を有している。また、バス170は、CPU110、入力部120、出力部130、ハードディスク装置140、RAM150及びROM160を通信可能に接続している。
The
図4は、本形態における固有値計算プログラム200の構成を例示した概念図である。この図に例示するように、固有値計算プログラム200は、エルミート行列算出プログラム202、エルミート行列固有値算出プログラム203、第1〜3の判定プログラム211〜213、第1〜4のリスト生成プログラム221〜224、固有値要素生成プログラム231及び積演算プログラム241を有している。ここで、エルミート行列固有値算出プログラム203としては、例えば、数値計算ソフトウェアMATLAB(登録商標)が有するエルミート行列の固有値を求めることが可能なプログラム等を用いることができる。なお、エルミート行列固有値算出プログラム203のルーチンとしては、例えば、エルミート行列をHouseholder変換やLanczosの方法等を用いて三重対角行列(三重対角エルミート行列)に変換し、それにQR法やSturm法を適用してその固有値を求めるルーチンを例示できる(例えば、非特許文献1,2や伊理正夫、藤野和建著,「数値計算の常識」,共立出版,1985等参照。)。
FIG. 4 is a conceptual diagram illustrating the configuration of the
<具体的な処理>
次に、本形態の具体的な処理について例示する。
図5〜7は、本形態における固有値要素生成処理を説明するためのフローチャートである。以下、これらの図に沿って本形態の固有値要素生成処理について説明していく。
まず、CPU110は、ハードディスク装置140のOSプログラム領域141のOSプログラム、及び固有値計算プログラム領域142の固有値計算プログラム200を読み出し、これらをRAM150のOSプログラム領域151及び固有値計算プログラム領域152に格納する。次に、CPU110は、RAM150のOSプログラム領域151からOSプログラムを順次読み出しこれを実行した上で、固有値計算プログラム領域142から第1の判定プログラム211を読み出し実行する。この第1の判定プログラム211が読み込まれたCPU110(第1の判定手段)は、RAM150のデータ領域153からユニタリ行列Uを読み込み(入力)、当該ユニタリ行列Uが実行列であるか否かを判定する(ステップS1)。
<Specific processing>
Next, specific processing of this embodiment will be exemplified.
5 to 7 are flowcharts for explaining the eigenvalue element generation processing in this embodiment. Hereinafter, the eigenvalue element generation processing of this embodiment will be described with reference to these drawings.
First, the
ここで、ユニタリ行列Uが実行列であると判定された場合、CPU110は、U+tUの固有値を1/2倍したもののリストA(固有値の1/2倍と重複度の対)を作成する(ステップS2)。すなわち、まずCPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み出して実行する。このエルミート行列算出プログラム202が読み込まれたCPU110(第1のエルミート行列算出手段)には、レジスタ111から読み出されたユニタリ行列Uが入力され、このCPU110は、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列U*(=tU/Uが実であるため)との和である第1のエルミート行列U+U*を算出してレジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列固有値算出プログラム203を読み出して実行する。このエルミート行列固有値算出プログラム203が読み込まれたCPU110(第1のエルミート行列固有値算出手段)には、レジスタ111から第1のエルミート行列U+U*が入力され、このCPU110は、当該第1のエルミート行列U+U*の固有値である第1の固有値を算出してレジスタ111に対して出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152から第1のリスト生成プログラム221を読み込んで実行する。この第1のリスト生成プログラム221が読み込まれたCPU110(第1のリスト生成手段)には、レジスタ111から第1の固有値が入力され、このCPU110は、当該第1の固有値を1/2倍してユニタリ行列Uの固有値の実部を算出し、算出したユニタリ行列Uの固有値の実部aj(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pjとの対からなる第1のリストA=[(aj,pj)]を生成してレジスタ111に対して出力、格納する。
Here, if the unitary matrix U is determined to be a real matrix,
以上のようにリストAが生成されると、次に、CPU110は、RAM150の固有値計算プログラム領域152から第2のリスト生成プログラム222を読み出して実行する。この第2のリスト生成プログラム222が読み込まれたCPU110(第2のリスト生成手段)には、レジスタ111から第1のリストA=[(aj,pj)]が入力される。そして、このCPU110は、リストAの実部ajが±1でないとき、この実部ajから平方根bj=√(1−(aj)2)を算出し、第1のリストA=[(aj,pj)]の要素(a,p)を((a+b・i),p/2)と((a−b・i),p/2)に置き換えた固有値リスト[(aj+bj・i),pj/2],[(aj−bj・i),pj/2](iは虚数単位)を生成し、生成した当該固有値リストをバス170及び出力部130を通じ出力して処理を終了する(ステップS3)。
When the list A is generated as described above, the
一方、ステップ1においてユニタリ行列Uが実行列でないと判定された場合、CPU110は、U+U*の固有値を1/2倍したもののリストA(固有値の1/2倍と重複度の対)を作成し、レジスタ111に格納する(ステップS4)。なお、この詳細はtUがU*に置き換わる以外は、上述したステップ2の処理と同様である。
次に、CPU110は、RAM150の固有値計算プログラム領域152から第2のリスト生成プログラム222を読み出して実行する。この第2のリスト生成プログラム222が読み込まれたCPU110(第2のリスト生成手段)には、レジスタ111から第1のリストA=[(aj,pj)]が入力され、このCPU110は、第1のリストAの実部ajから平方根bj=√(1−(aj)2)を算出し、第2のリストA’=[(aj,bj,pj)]を生成し、生成した当該第2のリストA’をレジスタ111(リストメモリ)に対して出力、格納する(ステップS5)。
On the other hand, when it is determined in
Next, the
次に、CPU110は、i・U+(i・U)*の固有値を−1/2倍したもののリストB(固有値の−1/2倍と重複度の対)を作成する(ステップS6)。すなわち、まず、CPU110は、RAM150の固有値計算プログラム領域152から積演算プログラム241を読み出して実行する。この積演算プログラム241が読み込まれたCPU110(第1の積演算手段)には、レジスタ111からユニタリ行列Uと虚数単位i(事前にレジスタ111に格納)が入力され、このCPU110は、当該ユニタリ行列Uと虚数単位iとの積i・Uを算出し、この積i・Uをレジスタ111に対して出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み込んで実行する。このエルミート行列算出プログラム202が読み込まれたCPU110(第2のエルミート行列算出手段)には、レジスタ111から積i・Uが入力され、このCPU110は、当該積i・Uとその共役転置行列である第2の共役転置行列(i・U)*との和である第2のエルミート行列i・U+(i・U)*を算出してレジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列固有値算出プログラム203を読み込んで実行する。このエルミート行列固有値算出プログラム203が読み込まれたCPU110(第2のエルミート行列固有値算出手段)には、レジスタ111から第2のエルミート行列i・U+(i・U)*が入力され、このCPU110は、当該第2のエルミート行列i・U+(i・U)*の固有値である第2の固有値を算出して、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152から第3のリスト生成プログラム223を読み込んで実行する。この第3のリスト生成プログラム223が読み込まれたCPU110(第3のリスト生成手段)には、レジスタ111から第2の固有値が入力される。そして、このCPU110は、当該第2の固有値を−1/2倍してユニタリ行列Uの固有値の虚部bk(1≦k≦v,1≦v≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該虚部bkとその重複度qkとの対からなる第3のリストB=[(bk,qk)]を生成し、生成した当該第3のリストBをレジスタ111(リストメモリ)に対して出力、格納する。
Next, the
次に、CPU110は、RAM150の固有値計算プログラム領域152から第2の判定プログラム212を読み出して実行する。この第2の判定プログラム212が読み込まれたCPU110(第2の判定手段)は、レジスタ111(リストメモリ)内の第2のリストA’=[(aj,bj,pj)]からまだ調べていない1つの要素(a,b,p)を抽出してレジスタ111に格納し(ステップS7)、a=0であるか否か及び当該第2のリストA’に要素(−a,b,p’)が存在するか否かを判定する(ステップS8)。
ここで、a=0或いは要素(−a,b,p’)が第2のリストA’に存在しないと判定された場合、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み出して実行する。この固有値計算プログラム領域152が読み込まれたCPU110(固有値要素生成手段)には、レジスタ111から要素(a,b,p)が入力される。また、このCPU110は、レジスタ111内の第3のリストB=[(bk,qk)]から、要素(b,q)と要素(−b,q’)とを抽出し、(a+b・i,q)及び(a−b・i,q’)を生成してレジスタ111に対して出力し、これらをレジスタ111の要素(a,b,p)と置き換える。また、第3のリストB=[(bk,qk)]に要素(b,q)或いは要素(−b,q’)の一方しか存在しなかった場合は、CPU110は、レジスタ111内の第3のリストB=[(bk,qk)]から、要素(b,q)或いは要素(−b,q’)の一方のみを抽出し、(a+b・i,q)(要素(b,q)が存在した場合)或いは(a−b・i,q’)(要素(−b,q’)が存在した場合)を生成してレジスタ111に対して出力し、これをレジスタ111の要素(a,b,p)と置き換える(ステップS9)。
Next, the
If it is determined that a = 0 or the element (−a, b, p ′) does not exist in the second list A ′, the
一方、ステップS8において、要素(−a,b,p’)(a≠0)が第2のリストA’に存在すると判定された場合、CPU110は、RAM150の固有値計算プログラム領域152から第3の判定プログラム213を読み出して実行する。この第3の判定プログラム213が読み込まれたCPU110(第3の判定手段)は、ステップS8で抽出された要素(a,b,p)をレジスタ111から読み出し、b=0であるか否か、及びレジスタ111内の第3のリストB=[(bk,qk)]に要素(b,q)と要素(−b,q’)とが共に存在するか否かを判定する(ステップS10)。
On the other hand, when it is determined in step S8 that the element (−a, b, p ′) (a ≠ 0) exists in the second list A ′, the
ここで、第3のリストB=[(bk,qk)]に要素(b,q)(b≠0)と要素(−b,q’)とが共に存在すると判断された場合、後述するステップS12を実行する。
一方、b=0であると判定された場合、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み出して実行する。この固有値計算プログラム領域152が読み込まれたCPU110(固有値要素生成手段)には、要素(a,b,p)及び(−a,b,p’)が入力され、このCPU110は、(a,p)及び(−a,p’)を生成してレジスタ111に出力し、これらを要素(a,b,p)及び(−a,b,p’)と置き換えて格納する。また、ステップS10で第3のリストB=[(bk,qk)]に要素(b,q)又は要素(−b,q’)の何れか一方しか存在しないと判定された場合、固有値計算プログラム領域152が読み込まれたCPU110(固有値要素生成手段)には、存在すると判定された側のb又は−bであるb’、並びに要素(a,b,p)及び(−a,b,p’)が入力され、このCPU110は、(a+b’・i,p)及び(−a+b’・i,p’)を生成してレジスタ111に出力し、これらを要素(a,b,p)及び(−a,b,p’)と置き換えて格納する(ステップS11)。そして、このステップS11が処理後、ステップS12に進む。
Here, when it is determined that the element (b, q) (b ≠ 0) and the element (−b, q ′) are both present in the third list B = [(b k , q k )]. Step S12 is executed.
On the other hand, if it is determined that b = 0, the
ステップS12では、第2の判定プログラム212が読み込まれたCPU110が、レジスタ111の第2のリストA’=[(aj,bj,pj)]に、まだ調べていない要素が存在するか否かを判断する。これは、例えば、ステップS7で要素を抽出するたびにその要素にフラグをたてておき、そのフラグの有無を検索することによって行われる。また、ステップS7において、リストA’=[(aj,bj,pj)]の先頭から順番に要素を抽出することとし、リストA’の最後の要素の抽出が行われたか否かによってこの判断を行ってもよい。
In step S12, whether there is an element that has not been checked yet in the second list A ′ = [(a j , b j , p j )] of the register 111 by the
ここで、まだ調べていない要素が存在する場合にはステップS7に戻り、まだ調べていない要素が存在しない場合には、第2の判定プログラム212が読み込まれたCPU110が、リストA’=[(aj,bj,pj)]に置き換えが行われていない要素が存在するか否かを判断する。この判断は、例えば、要素の置き換えを行うたびに、その要素にフラグをたてておき、そのフラグの有無を検索することによって行われる。
ここで、置き換えられていない要素が存在しないと判断された場合、CPU110は、各要素が置き換えられたレジスタ111のリストA’=[(aj,bj,pj)]をバス170及び出力部130を通じて出力し、処理を終了する。
Here, if there is an element that has not been checked yet, the process returns to step S7. If there is no element that has not been checked yet, the
Here, if it is determined that there is no element that has not been replaced, the
一方、まだ置き換えられていない要素が存在すると判断された場合、CPU110は以下の処理を実行する。なお、以下の処理は、ステップS10において、第3のリストB=[(bk,qk)]に要素(b,q)(b≠0)と要素(−b,q’)とが共に存在すると判定された場合の処理に相当する。
まず、W=i・U2とし、W+W*の固有値を−1/4倍したもののリストC(固有値の−1/4倍と重複度の対)を作成する(ステップS14)。すなわち、まず、CPU110は、RAM150の固有値計算プログラム領域152から積演算プログラム241を読み出して実行する。この積演算プログラム241が読み込まれたCPU110(第2の積演算手段)には、レジスタ111から積i・Uとユニタリ行列Uとが入力され、このCPU110は、当該ユニタリ行列Uと当該積i・Uとの積i・U2を算出して、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み込んで実行する。このエルミート行列算出プログラム202が読み込まれたCPU110(第3のエルミート行列算出手段)には、レジスタ111から積i・U2が入力され、このCPU110は、当該積i・U2とその共役転置行列である第3の共役転置行列(i・U2)*との和である第3のエルミート行列i・U2+(i・U2)*を算出して、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列固有値算出プログラム203を読み込んで実行する。このエルミート行列固有値算出プログラム203が読み込まれたCPU110(第3のエルミート行列固有値算出手段)には、レジスタ111から第3のエルミート行列i・U2+(i・U2)*が入力され、このCPU110は、当該第3のエルミート行列i・U2+(i・U2)*の固有値である第3の固有値を算出してレジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152から第4のリスト生成プログラム223を読み込んで実行する。この第4のリスト生成プログラム223が読み込まれたCPU110(第4のリスト生成手段)には、レジスタ111から第3の固有値が入力される。そして、このCPU110は、当該第3の固有値を−1/4倍してユニタリ行列Uの固有値の実部ag(1≦g≦w,1≦w≦n)と虚部bgとの積ag・bgを算出し、算出した当該積ag・bgとその重複度rgとの対からなる第4のリストC=[(ag・bg,rg)]を生成し、生成した当該第4のリストCをレジスタ111(リストメモリ)に出力、格納する。
On the other hand, when it is determined that there is an element that has not been replaced yet, the
First, W = i · U 2 and then, W + W * eigenvalues -1/4 times the list C but (-1/4 times the eigenvalues and multiplicity of pairs) of creating a (step S14). That is, first, the
次に、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み取り実行する。ここで固有値要素生成プログラム231が読み込まれたCPU110(固有値要素生成手段)は、まず、レジスタ111から、まだ置き換えられていない第2のリストA’=[(aj,bj,pj)]から要素(a,b,p)と(−a,b,p’)との対を1つ抽出し(ステップS15)、第3のリストB=[(bk,qk)]から要素(b,q)を抽出し(ステップS16)、第4のリストC=[(ag・bg,rg)]からa・bに対応する要素(a・b,r)を抽出する(ステップS17)。なお、a・bに対応する要素(a・b,r)が存在しない場合はr=0とする。そして、このCPU110は、s=(−p’+q+r)/2を算出し、(a+bi,s)、(a−bi,p−s)、(−a+bi,q−s)及び(−a−bi,r−s)を生成し、生成した(a+bi,s)、(a−bi,p−s)、(−a+bi,q−s)及び(−a−bi,r−s)をレジスタ111に出力し、第2のリストA’=[(aj,bj,pj)]の(a,b,p)を(a+bi,s)と(a−bi,p−s)とに置き換え、(−a,b,p’)を(−a+bi,q−s)と(−a−bi,r−s)とに置き換えてレジスタ111に格納する(ステップS18)。なお、ここで重複度が0になったものは第2のリストA’から排除する。
Next, the
次にCPU110は、レジスタ111を参照し、まだ置き換えられていない第2のリストA’=[(aj,bj,pj)]の要素があるか否かを判断する(ステップS19)。ここで、まだ置き換えられていない要素があると判断された場合にはステップS15に戻り、置き換えられていない要素がないと判断された場合には、置き換えられた第2のリストA’=[(aj,bj,pj)]をバス170及び出力部130を介して出力して処理を終了する。
次に、本形態の実施例を説明する。
Next, the
Next, examples of the present embodiment will be described.
<実施例1>
実施例1はユニタリ行列Uが実(直交行列)の場合の例である。この場合、ステップS1(図5)ではYESと判断され、ステップS2に進む。ここで、Uが以下のような直交行列である場合、
<Example 1>
The first embodiment is an example where the unitary matrix U is real (orthogonal matrix). In this case, YES is determined in step S1 (FIG. 5), and the process proceeds to step S2. Where U is an orthogonal matrix such as
このU+tUをエルミート行列の固有値を求めるルーチン(あるいは、実対称行列の固有値を求めるルーチン) にかけると、1.7364668と−0.51790682という2つの二重根が返ってくる。よって、ステップS2で生成されるリストAは、
[(0.86823340,2),(−0.25895341,2)]
となる。
そして、これからステップS3において、
[(0.86823340+0.49615598・i,1),(0.86823340−0.49615598・i,1),(−0.25895341+0.96588981・i,1),(−0.25895341−0.96588981・i,1)]
という固有値のリストが生成され出力される。
Routines for determining the eigenvalues of the U + t U a Hermitian matrix (or routines to determine the eigenvalues of a real symmetric matrix) when applied to, returned two double root of 1.7364668 and -0.51790682. Therefore, the list A generated in step S2 is
[(0.868233340,2), (−0.25895341,2)]
It becomes.
And in step S3,
[(0.868233340 + 0.49615598 · i, 1), (0.86823340−0.49615598 · i, 1), (−0.25895341 + 0.96588981 · i, 1), (−0.25895341−0.96588981 · i, 1)]
A list of eigenvalues is generated and output.
<実施例2>
実施例1はユニタリ行列Uが虚の場合(直交行列でない場合)の例である。この場合、ステップS1(図5)ではNOと判断され、ステップS4(図6)に進む。ここで、Uが以下のようなユニタリ行列である場合、
<Example 2>
The first embodiment is an example when the unitary matrix U is imaginary (not an orthogonal matrix). In this case, NO is determined in step S1 (FIG. 5), and the process proceeds to step S4 (FIG. 6). Where U is a unitary matrix such as
このU+U*をエルミート行列の固有値を求めるルーチンにかけると、1.8579089,−0.37900860,−1.07905390という単根が返ってくる。よって、ステップS4で生成されるリストAは、
[(0.92895445,1),(−0.18950430,1),(−0.53952695,1)]
となり、ステップS5で生成されるリストA’は、
[(0.92895445,0.37019404,1),(−0.18950430,0.98187989,1),(−0.53952695,0.84196833,1)]
となる。
When this U + U * is applied to a routine for obtaining eigenvalues of the Hermitian matrix, single roots of 1.85779089, -0.379008660, -1.079090590 are returned. Therefore, the list A generated in step S4 is
[(0.9289954451,1), (−0.189950430,1), (−0.539556955,1)]
The list A ′ generated in step S5 is
[(0.928995445, 0.37019404,1), (-0.18950430, 0.981887989,1), (-0.53955695,0.841968833,1)]
It becomes.
次に、ステップS6において、V=i・Uに対して同様な計算を行うと以下のようになる。
このV+V*エルミート行列の固有値を求めるルーチンにかけると、−1.6839367,1.9637598,0.74038808という単根が返ってくる。
Next, when the same calculation is performed for V = i · U in step S6, the following is obtained.
When applied to a routine for obtaining the eigenvalue of this V + V * Hermitian matrix, a single root of -1.68369367, 1.96375798, 0.74038808 is returned.
これから,ステップS6で生成されるリストBは、
[(0.84196835,1),(−0.98187990,1),(−0.37019404,1)]
となる。
ここでリストA’には(a,b,m)と(−a,b,m’)という形の対はないため、リストA’の要素は全てステップS9で処理され、リストBを用いて、Uの固有値のリスト
[(0.92895445−0.37019404・i,1),(−0.18950430−0.98187990・i,1),(−0.53952695+0.84196833・i,1)]
が求まる。
From now on, the list B generated in step S6 is
[(0.841968355, 1), (-0.98187990, 1), (-0.37019404, 1)]
It becomes.
Here, since there is no pair of the form (a, b, m) and (−a, b, m ′) in the list A ′, all elements of the list A ′ are processed in step S9, and the list B is used. , List of eigenvalues of U [(0.928995445-0.37019044 · i, 1), (−0.1895504-0.98187990 · i, 1), (−0.53952695 + 0.84196833 · i, 1)]
Is obtained.
<実施例3>
最後に、ユニタリ行列Uが虚の場合(直交行列でない場合)であって、U+U*が絶対値の等しい符号が反対である固有値を持つ場合の例について説明する。
この場合、ステップS1(図5)ではNOと判断され、ステップS4(図6)に進む。ここで、Uが以下のようなユニタリ行列である場合、
<Example 3>
Finally, an example will be described in which the unitary matrix U is imaginary (not an orthogonal matrix) and U + U * has eigenvalues with opposite signs having the same absolute value.
In this case, NO is determined in step S1 (FIG. 5), and the process proceeds to step S4 (FIG. 6). Where U is a unitary matrix such as
このU+U*をエルミート行列の固有値を求めるルーチンにかけると、−1.2000000,0.56000000,1.2000000という単根が返ってくる。よって、ステップS4で生成されるリストAは、
[(−0.60000000,1),(0.28000000,1),(0.60000000,1)]
となり、ステップS5で生成されるリストA’は、
[(−0.60000000,0.80000000,1),(0.28000000,0.96000000,1),(0.60000000,0.80000000,1)]
となる。
次に、ステップS6において、V=i・Uに対して同様な計算を行うと以下のようになる。
When this U + U * is applied to a routine for obtaining eigenvalues of the Hermitian matrix, single roots of -1.2000000, 0.56000000, 1.2000000 are returned. Therefore, the list A generated in step S4 is
[(−0.60000000,1), (0.28000000,1), (0.60000000,1)]
The list A ′ generated in step S5 is
[(−0.60000000, 0.80000000, 1), (0.28000000, 0.96000000, 1), (0.60000000, 0.80000000, 1)]
It becomes.
Next, when the same calculation is performed for V = i · U in step S6, the following is obtained.
このV+V*エルミート行列の固有値を求めるルーチンにかけると、1.6000000,−1.9200000,−1.6000000という単根が返ってくる。
When applied to a routine for obtaining eigenvalues of this V + V * Hermitian matrix, single roots of 1.6000000, -1.9200000000, and -1.6000000 are returned.
これから,ステップS6で生成されるリストBは、
[(−0.80000000,1),(0.96000000,1),(0.80000000,1)]
となる。
その後、ステップS7以降の処理が行われるが、リストA’の要素(0.28000000,0.96000000,1)については、ステップS9の処理が行われる。そして、リストBの要素(0.96000000,1)を用い、リストA’の要素(0.28000000,0.96000000,1)が(0.28000000+0.96000000・i,1)に置き換えられる。その結果、この段階でリストA’は、
[(−0.60000000,0.80000000,1),(0.28000000+0.96000000・i,1),(0.60000000,0.80000000,1)]
となる。
From now on, the list B generated in step S6 is
[(-0.80000000,1), (0.96000000,1), (0.80000000,1)]
It becomes.
Thereafter, the processing after step S7 is performed, but for the element of list A ′ (0.28000000, 0.96000000, 1), the processing of step S9 is performed. Then, using the element (0.96000000,1) of the list B, the element (0.28000000, 0.96000000,1) of the list A ′ is replaced with (0.28000000 + 0.96000000 · i, 1). As a result, at this stage, list A ′ becomes
[(−0.60000000, 0.80000000, 1), (0.28000000 + 0.96000000 · i, 1), (0.60000000, 0.80000000, 1)]
It becomes.
また、リストA’の要素(−0.60000000,0.80000000,1),(0.60000000,0.80000000,1)の対に対しては、リストBに(−0.80000000,1)と(0.80000000,1)の要素が存在するため(ステップS10)処理されず、この時点ではそのままとなる。
そして、置き換えのできなかったA’の要素があるため、ステップS13の判断がYESとなりステップS14(図7)に進む。
ステップS14では、W=V・Uに対して同様の計算を行うと以下のようになる。
For the pair of elements (−0.60000000, 0.80000000,1) and (0.60000000,0.80000000,1) of list A ′, (−0.80000000,1) Since there is an element of (0.80000000, 1) (step S10), the process is not performed and remains at this point.
Since there is an element A ′ that could not be replaced, the determination in step S13 is YES, and the process proceeds to step S14 (FIG. 7).
In step S14, the same calculation is performed for W = V · U as follows.
このW+W*をエルミート行列の固有値を求めるルーチンにかけると、単根−1.0752000と、二重根−1.9200000が返ってくる。これから、ステップS14で求まるリストCは、
[(0.26880000,1),(0.48000000,2)]
となる。
When this W + W * is applied to a routine for obtaining eigenvalues of the Hermitian matrix, a single root of -1.0752000 and a double root of -1.9200,000 are returned. From now on, the list C obtained in step S14 is:
[(0.26888000, 1), (0.48000000, 2)]
It becomes.
次に、リストA’から、まだ置き換えていない対(a,b,p),(−a,b,p’)をとる(ステップS15)。ここで置き換えていない対は、ただ一組(−0.60000000,0.80000000,1),(0.60000000,0.80000000,1)だけである。すなわち、p=1,p’=1である。
リストBには(0.80000000,1),(−0.80000000,1)があるため、ステップS16では、(b,q)として(0.60000000,0.80000000,1)が抽出されq=1となる。
Next, a pair (a, b, p), (−a, b, p ′) not yet replaced is taken from the list A ′ (step S15). There are only one pair (−0.60000000, 0.80000000, 1) and (0.60000000, 0.80000000, 1) that are not replaced here. That is, p = 1 and p ′ = 1.
Since there are (0.80000000,1) and (−0.80000000,1) in the list B, (0.60000,0.80000000,1) is extracted as (b, q) in step S16, and q = 1
またab=−0.48000000であるが、リストC
[(0.26880000,1),(0.48000000,2)]
には(−0.48000000,r)に合致するものが存在しないため、r=0となる(ステップS17)。
よって、s=(−p’+q+r)/2=0、p−s=1、r−s=0となり、
(−0.60000000,0.80000000,1)
は、
(−0.60000000−0.80000000・i,1)
に、
(0.60000000,0.80000000,1)
は、
(0.60000000+0.80000000・i,1)
に置き換えられ(ステップS18)、リストA’は、
[(−0.60000000−0.80000000・i,1),(0.28000000+0.96000000・i,1),(0.60000000+0.80000000・i,1)]
となって処理が終了する。
Also, ab = −0.48000000, but list C
[(0.26888000, 1), (0.48000000, 2)]
Since there is no match for (−0.48000000, r), r = 0 (step S17).
Therefore, s = (− p ′ + q + r) / 2 = 0, ps = 1, rs = 0,
(-0.60000000, 0.80000000, 1)
Is
(-0.60000000-0.80000000 · i, 1)
In addition,
(0.60000000, 0.80000000, 1)
Is
(0.60000000 + 0.80000000 · i, 1)
(Step S18), the list A ′ is
[(−0.60000000−0.80000000 · i, 1), (0.28000000 + 0.96000000 · i, 1), (0.60000000 + 0.80000000 · i, 1)]
Then, the process ends.
〔第2の実施の形態〕
次に、本発明における第2の実施の形態について説明する。
本形態は、エルミート行列の固有値を求めるルーチンを高々二回しか使わない手法である。なお、以下では第1の実施の形態との相違点を中心に説明する。
<原理>
まず、本形態の原理について説明する。
本形態の基本的な構成は図1の固有値計算装置10と同様である。
[Second Embodiment]
Next, a second embodiment of the present invention will be described.
In this embodiment, a routine for obtaining eigenvalues of the Hermitian matrix is used only twice at most. In the following description, differences from the first embodiment will be mainly described.
<Principle>
First, the principle of this embodiment will be described.
The basic configuration of this embodiment is the same as that of the
[Uが実の場合]
ユニタリ行列Uが実の場合の処理は、第1の実施の形態と全く同じである。
[Uが複素の場合]
ユニタリ行列Uが複素の場合、まず、第1の実施の形態と同じくU+U*の固有値を求める。
まず、第1の実施の形態と同様、固有値計算装置10にユニタリ行列Uが入力され、Uが実の場合と同様にリストA=[(aj,pj)]が生成される。また、bj=√(1−aj 2)によって虚部bjを求め、三つ組みのリストA’=[(aj,bj,pj)]を生成する。
[When U is real]
The processing when the unitary matrix U is real is exactly the same as in the first embodiment.
[When U is complex]
When the unitary matrix U is complex, first, the eigenvalue of U + U * is obtained as in the first embodiment.
First, as in the first embodiment, the unitary matrix U is input to the
ここで、もしリストA’=[(aj,bj,pj)]に、(a,b,p),(−a,b,p’)(a≠0,±1)という対がなければ、第1の実施の形態で述べた通り、i・Uに対し、i・U+(i・U)*の固有値を求めることにより、Uのすべての固有値の虚部が決まる。この処理は第1の実施の形態と同様であるため説明を省略する。
以下では、第1の実施の形態との相違点である、リストA’=[(aj,bj,pj)]に(a,b,p),(−a,b,p’)(a≠0,±1)という対がある場合の処理について説明する。
Here, if the list A ′ = [(a j , b j , p j )] has a pair (a, b, p), (−a, b, p ′) (a ≠ 0, ± 1). Otherwise, as described in the first embodiment, the imaginary part of all eigenvalues of U is determined by obtaining eigenvalues of i · U + (i · U) * for i · U. Since this process is the same as that of the first embodiment, a description thereof will be omitted.
In the following, the list A ′ = [(a j , b j , p j )], which is different from the first embodiment, is added to (a, b, p), (−a, b, p ′). Processing when there is a pair (a ≠ 0, ± 1) will be described.
ユニタリ行列Uに絶対値が1の複素数β=exp(i・θ)を掛けたβ・Uもユニタリ行列である。本形態では、このユニタリ行列β・Uを固有値計算装置10に入力し、新たなリストを得る。ただし、この場合、任意にとったユニタリ行列Uの固有値候補aj±bj・i(とり得る固有値の値)に対し、それを2θ回転させたものが、他の固有値候補と重ならないようにθを選択しなければならない。以下、この理由を説明する。
まず、β・Uの固有値は、Uの固有値を角度θだけ回転させたものと一致する。よって、ユニタリ行列Uの固有値候補α1をθ回転させたもの(β・Uの固有値)の実部と、ユニタリ行列Uの他の固有値候補α2をθ回転させたもの(β・Uの固有値)の実部とが一致したのでは、β・U+(β・U)*の固有値から、これらの固有値候補α1,α2を区別することができない。
Β · U obtained by multiplying the unitary matrix U by a complex number β = exp (i · θ) having an absolute value of 1 is also a unitary matrix. In this embodiment, this unitary matrix β · U is input to the
First, the eigenvalue of β · U matches the value obtained by rotating the eigenvalue of U by the angle θ. Therefore, the real part of the eigenvalue candidate α1 of the unitary matrix U rotated by θ (the eigenvalue of β · U) and the other real part candidate α2 of the unitary matrix U rotated by θ (the eigenvalue of β · U) If the real part matches, the eigenvalue candidates α1 and α2 cannot be distinguished from the eigenvalues of β · U + (β · U) * .
図8は、このことを説明するための図である。この図は、ユニタリ行列Uの固有値の実部と虚部を示した図であり、横軸は実部を示す実軸であり、縦軸は虚部を示す虚軸である。
図8は、ユニタリ行列Uの固有値候補ak±bk・iを2θ回転させたものが、他の固有値候補aj±bj・iと一致する場合を示している。この場合、ユニタリ行列Uの固有値候補ak−bk・iをθ回転させたものの実部aは、他の固有値候補aj+bj・iをθ回転させたものの実部aと一致する。そのため、β・U+(β・U)*の固有値が2aとして求められたとしても、これが固有値候補ak−bk・iに対応するものか、他の固有値候補aj+bj・iに対応するものかを区別することができず、Uの固有値を特定することもできない。
FIG. 8 is a diagram for explaining this. This figure shows the real part and the imaginary part of the eigenvalues of the unitary matrix U, the horizontal axis is the real axis indicating the real part, and the vertical axis is the imaginary axis indicating the imaginary part.
FIG. 8 shows a case where the eigenvalue candidates a k ± b k · i of the unitary matrix U are rotated by 2θ and coincide with other eigen value candidates a j ± b j · i. In this case, the real part a obtained by rotating the eigenvalue candidate a k -b k · i of the unitary matrix U by θ coincides with the real part a obtained by rotating the other eigenvalue candidates a j + b j · i by θ. Therefore, even if the eigenvalue of β · U + (β · U) * is obtained as 2a, it corresponds to the eigenvalue candidate a k −b k · i or to another eigenvalue candidate a j + b j · i Cannot be distinguished, and the eigenvalue of U cannot be specified.
このような問題が生じない都合の良いθを決定する手法としては、以下のものを例示できる。
[ランダムに選択する方法]
第1の例は、絶対値1の複素数β=exp(i・θ)をランダムに発生させ、すべての固有値候補に対し、2θ回転で重なるものがあるか否か調べ、なければそのθを採用し,あれば改めてθを取り直す方法である。一般に固有値候補を2θ回転させたものが他の固有値候補と重なることはまれである。また、2θ回転で重なるものがあるか否か調べる処理量は、エルミート行列の固有値を求めるルーチンの処理量よりもかなり少ない。よって、このような方法でも第1の実施の形態よりも処理量を減らし、処理の高速化を図ることができる。
The following can be exemplified as a convenient method for determining θ that does not cause such a problem.
[Random selection]
In the first example, a complex number β = exp (i · θ) having an absolute value of 1 is randomly generated, and it is checked whether all eigenvalue candidates overlap with each other by 2θ rotation. If this is the case, this is a method of re-acquiring θ. In general, an eigenvalue candidate rotated by 2θ rarely overlaps with other eigenvalue candidates. In addition, the amount of processing to check whether there is an overlap in 2θ rotation is considerably smaller than the processing amount of the routine for obtaining eigenvalues of the Hermitian matrix. Therefore, even with such a method, the processing amount can be reduced and the processing speed can be increased as compared with the first embodiment.
[固有値候補間の最小角よりも小さな2θを設定する方法]
第2の例は、固有値候補間の最小角よりも小さな2θを設定することにより、確実に好適なθを選択できる方法である。この場合、まず、虚部が正のすべての固有値候補a+b・iをaの大きい順に並び替える。これは、a+b・iを偏角の小さい順に並べるということに相当する。次に、隣り合うすべての対a+b・iとa’+b’・iとからa・b’−a’・bを計算する。これは、a+b・iとa’+b’・iの間の角の正弦の値を求めることに相当する。そして、これの最小値(重根はまとめてあつかうので0ということはない)の1/2をmとおき、隣り合う対の間の最小の角をψとし、sinθ=mとすると、2θ<ψを満たす。
[Method of setting 2θ smaller than minimum angle between eigenvalue candidates]
The second example is a method that can reliably select a suitable θ by setting 2θ smaller than the minimum angle between eigenvalue candidates. In this case, first, all eigenvalue candidates a + b · i whose imaginary part is positive are rearranged in descending order of a. This corresponds to arranging a + b · i in ascending order of declination. Next, a · b′−a ′ · b is calculated from all adjacent pairs a + b · i and a ′ + b ′ · i. This corresponds to obtaining the sine value of the angle between a + b · i and a ′ + b ′ · i. Then, if 1/2 of the minimum value (the multiple roots are handled together and not 0) is m, the minimum angle between adjacent pairs is ψ, and sinθ = m, 2θ <ψ Meet.
なぜならば,θ≠0より、cosθ<1に注意すれば、
sin2θ=2sinθ・cosθ<2sinθ=2m=sinψ
だからである。
すなわち、sinθ=mとなるθは好適なθである。そして、m’=√(1−m2)とおき、β=m’+m・iとすることにより、上記のような角度の不都合がない絶対値1の複素数βを求めることができる。なお、この固有値候補間の最小角よりも小さな2θを設定する方法の処理量は、エルミート行列の固有値を求めるルーチンの処理量よりもかなり少ない。よって、このような方法でも第1の実施の形態よりも処理量を減らし、処理の高速化を図ることができる。
Because if θ ≠ 0, pay attention to cos θ <1,
sin2θ = 2sinθ · cosθ <2sinθ = 2m = sinψ
That's why.
That is, θ where sin θ = m is a suitable θ. Then, by setting m ′ = √ (1−m 2 ) and setting β = m ′ + m · i, a complex number β having an absolute value of 1 without the inconvenience of the angle as described above can be obtained. Note that the processing amount of the method of setting 2θ smaller than the minimum angle between the eigenvalue candidates is considerably smaller than the processing amount of the routine for obtaining the eigenvalue of the Hermitian matrix. Therefore, even with such a method, the processing amount can be reduced and the processing speed can be increased as compared with the first embodiment.
以上のように適切なβを設定した後、固有値計算装置10(図1)のエルミート行列算出部11に、ユニタリ行列β・Uが入力され、エルミート行列算出部11は、当該ユニタリ行列β・Uとその共役転置行列(β・U)*との和であるエルミート行列V’=β・U+(β・U)*を算出し、出力する。次に、エルミート行列固有値算出部12にエルミート行列V’=β・U+(β・U)*が入力され、エルミート行列固有値算出部12は、エルミート行列V’=β・U+(β・U)*に対し、エルミート行列の固有値を求める公知のルーチンを適用し、エルミート行列V’’’=β・U+(β・U)*の固有値を求める。ここで、固有値候補a+b・i,a−b・iをθ回転したものの実部はそれぞれa・m’−b・m,a・m’+b・mであるから、エルミート行列V’’’の固有値の実部は、ユニタリ行列Uの実部a、虚部bに対し、2(a・m’−b・m)、2(a・m’+b・m)となる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
After setting appropriate β as described above, the unitary matrix β · U is input to the Hermitian
算出されたエルミート行列V’’’は、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V’’’の固有値のうち共通する値をまとめ、さらに、その固有値を1/2倍した値ch(1≦h≦x,1≦x≦n)とその重複度zhとの対を生成し、それらからなるリストD=[(ch,zh)]を生成する。
そして、前述のリストA’=[(aj,bj,pj)]と、リストD=[(ch,zh)]とを用い、ユニタリ行列の固有値の虚部を決定する。
<具体的な構成>
次に、本形態の具体的な構成について例示する。
The calculated Hermitian matrix V ′ ″ is sent to the
Then, the imaginary part of the eigenvalue of the unitary matrix is determined by using the list A ′ = [(a j , b j , p j )] and the list D = [(c h , z h )].
<Specific configuration>
Next, a specific configuration of this embodiment is illustrated.
本形態の固有値計算装置の構成は、図3に示した第1の実施の形態のものと同様である。ただし、固有値計算プログラムの構成のみが第1の実施の形態と相違する。
図9は、本形態における固有値計算プログラム300の構成を例示した概念図である。この図に例示するように、固有値計算プログラム300は、エルミート行列算出プログラム202、エルミート行列固有値算出プログラム203、第1,2の判定プログラム211,212、第1,5のリスト生成プログラム221,321、固有値要素生成プログラム231及び積演算プログラム241を有している。なお、固有値計算プログラム300において第1の実施の形態と共通する事項については、図4と同じ符号を付した。
The configuration of the eigenvalue calculation apparatus of this embodiment is the same as that of the first embodiment shown in FIG. However, only the configuration of the eigenvalue calculation program is different from that of the first embodiment.
FIG. 9 is a conceptual diagram illustrating the configuration of the
<具体的な処理>
次に、本形態の具体的な処理について例示する。
図10〜12は、本形態における固有値要素生成処理を説明するためのフローチャートである。以下、これらの図に沿って本形態の固有値要素生成処理について説明していく。なお、以下ではUが虚の場合の処理についてのみ説明し、Uが実であるか否かの判断、Uの実の場合に行われる処理については第1の実施の形態と同様であるため、説明を省略する。
<Specific processing>
Next, specific processing of this embodiment will be exemplified.
10 to 12 are flowcharts for explaining the eigenvalue element generation processing in this embodiment. Hereinafter, the eigenvalue element generation processing of this embodiment will be described with reference to these drawings. In the following description, only the process when U is imaginary will be described. Since the process performed when U is real and the process performed when U is real are the same as those in the first embodiment, Description is omitted.
まず、CPU110は、U+U*の固有値を1/2倍したものに係る第1のリストA=[(aj,pj)](固有値の1/2倍と重複度の対)を作成し、レジスタ111に格納する(ステップS20)。なお、この処理は、前述したステップ4の処理と同じである。
次に、CPU110は、第1のリストの各要素(a,p)に対し、平方根b=√(1−(a)2)を計算し、(a,p)を(a,b,p)で置き換えた第2のリストA’=[(aj,bj,pj)]を作成し、レジスタ111(リストメモリ)に格納する(ステップS21)。なお、この処理は、前述したステップ5の処理と同じである。
First, the
Next, the
次に、CPU110は、RAM150の固有値計算プログラム領域152から第2の判定プログラム212を読み出して実行する。第2の判定プログラム212が読み込まれたCPU110は、レジスタ111の第2のリストA’に要素(a,b,p)及び(−a,b,−p’)(a≠0,±1)という対があるか否かを判断する(ステップS22)。
ここで、第2のリストA’に要素(a,b,p)及び(−a,b,−p’)(a≠0,±1)という対がないと判断された場合、CPU110は、i・U+(i・U)*の固有値を−1/2倍したものの第3のリストB=[(bk,qk)](固有値の−1/2倍と重複度の対)を作成し、生成した当該第3のリストBをレジスタ111(リストメモリ)に対して出力、格納する(ステップS23)。なお、この処理は前述したステップS6と同様である。
Next, the
If it is determined that there is no pair of elements (a, b, p) and (−a, b, −p ′) (a ≠ 0, ± 1) in the second list A ′, the
次に、CPU110は、RAM150の固有値計算プログラム領域152から第2の判定プログラム212を読み出して実行する。この第2の判定プログラム212が読み込まれたCPU110(第2の判定手段)は、レジスタ111(リストメモリ)内の第2のリストA’=[(aj,bj,pj)]からまだ調べていない1つの要素(a,b,p)を抽出してレジスタ111に格納する(ステップS24)。
次に、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み出して実行する。この固有値計算プログラム領域152が読み込まれたCPU110(固有値要素生成手段)には、レジスタ111から要素(a,b,p)が入力される。また、このCPU110は、レジスタ111内の第3のリストB=[(bk,qk)]から、要素(b,q)と要素(−b,q’)とを抽出し、(a+b・i,q)及び(a−b・i,q’)を生成してレジスタ111に対して出力し、これらをレジスタ111の要素(a,b,p)と置き換える。また、第3のリストB=[(bk,qk)]に要素(b,q)或いは要素(−b,q’)の一方しか存在しなかった場合は、CPU110は、レジスタ111内の第3のリストB=[(bk,qk)]から、要素(b,q)或いは要素(−b,q’)の一方のみを抽出し、(a+b・i,q)(要素(b,q)が存在した場合)或いは(a−b・i,q’)(要素(−b,q’)が存在した場合)を生成してレジスタ111に対して出力し、これをレジスタ111の要素(a,b,p)と置き換える(ステップS25)。
Next, the
Next, the
次に、第2の判定プログラム212が読み込まれたCPU110が、レジスタ111の第2のリストA’=[(aj,bj,pj)]に、まだ調べていない要素が存在するか否かを判断する。ここで、まだ調べていない要素が存在すると判断された場合にはステップS24に戻り、調べていない要素が存在しないと判断された場合には、上述のように置き換えられた第2のリストA’=[(aj,bj,pj)]がバス170及び出力部130を通じて出力し、処理を終了する。
一方、ステップS22において、第2のリストA’に要素(a,b,p)及び(−a,b,−p’)(a≠0,±1)という対があると判断された場合、CPU110は、RAM150の固有値計算プログラム領域152から複素数設定プログラム362を読み出して実行する。なお、この例の複素数設定プログラム362は、前述の「固有値候補間の最小角よりも小さな2θを設定する方法」により好適な複素数βを生成するためのプログラムである。複素数設定プログラム362が読み込まれたCPU110(複素数設定手段)は、前述の「固有値候補間の最小角よりも小さな2θを設定する方法」に従い、複素数β=m’+m・i(iは虚数単位、(m’)2+m2=1)を設定し、これをレジスタ111に出力して格納する。つまり、まず、このCPU110は、レジスタ111の第2のリストA’=[(aj,bj,pj)]の要素(a,b,p)をajの大きさ順に並び替えた第6のリストA’’を生成し、これをレジスタ111に格納する(ステップS27)。また、このCPU110は、レジスタ111内の第6のリストA’’の隣り合う要素(a,b,p)及び(a’,b’,p’)の全ての対に対してa・b’−a’・bを計算し、その最小値の1/2をmとして算出し、m’=√(1−m2)を算出し、複素数β=m’+m・iを設定し、これをレジスタ111に出力して格納する(ステップS28)。
Next, whether or not there is an element that has not yet been checked in the second list A ′ = [(a j , b j , p j )] of the register 111 by the
On the other hand, if it is determined in step S22 that the second list A ′ has a pair of elements (a, b, p) and (−a, b, −p ′) (a ≠ 0, ± 1), The
次に、CPU110は、レジスタ111内の第6のリストA’’の要素(a,b,p)(a=1,−1は除く)を(a,b,p,a・m’−b・m,a・m’+b・m)に置き換え、この第6のリストA’’をレジスタ111に格納する(ステップS29)。
次に、CPU110は、β・U+(β・U)*の固有値を1/2倍したもののリストD(固有値の1/2倍と重複度の対)を作成する(ステップS30)。すなわち、まず、CPU110は、RAM150の固有値計算プログラム領域152から積演算プログラム241を読み出して実行する。この積演算プログラム241が読み込まれたCPU110(第3の積演算手段)には、レジスタ111からユニタリ行列Uと複素数βとが入力され、このCPU110は、当該ユニタリ行列Uと複素数βとの積β・Uを算出し、レジスタ111に出力して格納する。
Next, the
Next, the
次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み込んで実行する。エルミート行列算出プログラム202が読み込まれたCPU110(第4のエルミート行列算出手段)には、レジスタ111から積β・Uが入力され、このCPU110は、当該積β・Uとその共役転置行列である第4の共役転置行列(β・U)*との和である第4のエルミート行列β・U+(β・U)*を算出し、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列固有値算出プログラム203を読み出して実行する。エルミート行列固有値算出プログラム203が読み込まれたCPU110(第4のエルミート行列固有値算出手段)には、レジスタ111から第4のエルミート行列β・U+(β・U)*が入力され、このCPU110は、当該第4のエルミート行列β・U+(β・U)*の固有値である第4の固有値を算出し、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152から第5のリスト生成プログラム321を読み出して実行する。第5のリスト生成プログラム321が読み込まれたCPU110(第5のリスト生成手段)には、レジスタ111から第4の固有値が入力される。そして、このCPU110は、当該第4の固有値を1/2倍した値ch(1≦h≦x,1≦x≦n)を算出し、算出した当該値chとその重複度zhとの対からなる第5のリストD=[(ch,zh)]を生成し、生成した当該第5のリストDをレジスタ111(リストメモリ)に出力、格納する。
Next, the
次に、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み込んで実行する。固有値要素生成プログラム231が読み込まれたCPU110(固有値要素生成手段)は、まず、レジスタ111からまだ調べていない第6のリストA’’の要素(a,b,p,a・m’−b・m,a・m’+b・m)を読み出す(ステップS31)。次に、このCPU110は、読み出した要素(a,b,p,a・m’−b・m,a・m’+b・m)のaが1あるいは−1であるか否かを判断する(ステップS32a)。ここで、aが1あるいは−1であれば、読み出した要素(a,b,p,a・m’−b・m,a・m’+b・m)を(a,p)に置き換え、これをレジスタ111に格納してステップS33に進む。一方、aが1あるいは−1でなければ、このCPU110は、レジスタ111の第5のリストD=[(ch,zh)]に、要素(a・m’−b・m,z)又は(a・m’+b・m,z’)が存在するか否かを検索する(ステップS32c)。ここで、存在しないと判断された場合にはステップS33に進み、存在すると判断された場合には、さらに何れが存在するかを特定する(ステップS32d)。そして、要素(a・m’−b・m,z)と(a・m’+b・m,z’)が存在すると判断された場合には、要素(a+b・i,z)と(a−b・i,z’)とを生成し、要素(a,b,p,a・m’−b・m,a・m’+b・m)をこれらの二つに置き換えてレジスタ111に出力、格納する(ステップS32e)。また、要素(a・m’−b・m,z)のみが存在すると判断された場合には、要素(a+b・i,z)を生成し、要素(a,b,p,a・m’−b・m,a・m’+b・m)をこれに置き換えてレジスタ111に出力、格納する(ステップS32f)。また、要素(a・m’+b・m,z’)のみが存在すると判断された場合には、要素(a−b・i,z’)を生成し、要素(a,b,p,a・m’−b・m,a・m’+b・m)をこれに置き換えてレジスタ111に出力、格納する(ステップS32g)。そして、ステップS33に進む。
Next, the
ステップS33では、CPU110が、レジスタ111からまだ調べていない第6のリストA’’の要素があるか否かを判断する(ステップS33)。ここで、まだ調べていない要素があると判断された場合には、ステップS31に戻り、調べていない要素がないと判断された場合には、レジスタ111の要素が置き換えられた第6のリストA’’をバス170及び出力部130を通じて出力し、処理を終了する。
図13は、複素数設定プログラム362が、前述の「ランダムに選択する方法」により好適な複素数βを生成するためのプログラムである場合の処理を示したフローチャートである。なお、この場合、前述のステップS27〜S33の代わりにステップS41〜S48の処理が実行される。
In step S33, the
FIG. 13 is a flowchart showing processing when the complex
ステップS41では、複素数設定プログラム362が読み込まれたCPU110(複素数設定手段)には、レジスタ111から第2のリストA’=[(aj,bj,pj)]が入力され、このCPU110は、複素数β=m’+m・iをランダムに生成して(ステップS41)、仮リスト[(aj・m’−bj・m,aj・m’+bj・m)]を生成し、レジスタ111に格納する(ステップS42)。次に、このCPU110は、レジスタ111の仮リスト[(aj・m’−bj・m,aj・m’+bj・m)]を検索し、当該仮リスト[(aj・m’−bj・m,aj・m’+bj・m)]に要素の重複がないか判断する(ステップS43)。ここで、要素の重複があると判断された場合には、ステップS41に戻る。一方、要素の重複がないと判断された場合には、ステップS41でランダムに生成した複素数β=m’+m・iをレジスタ111に出力、格納する。
In step S41, the second list A ′ = [(a j , b j , p j )] is input from the register 111 to the CPU 110 (complex number setting means) from which the complex
次に、CPU110は、レジスタ111内の第2のリストA’の要素(a,b,p)(a=1,−1は除く)を(a,b,p,a・m’−b・m,a・m’+b・m)に置き換え、この第6のリストA’’をレジスタ111に格納する(ステップS44)。
次に、CPU110は、β・U+(β・U)*の固有値を1/2倍したもののリストD(固有値の1/2倍と重複度の対)を作成する(ステップS45)。なお、この処理はステップS30と同様である。
次に、固有値要素生成プログラム231が読み込まれたCPU110(固有値要素生成手段)が、レジスタ111からまだ調べていない第2のリストA’の要素(a,b,p,a・m’−b・m,a・m’+b・m)を読み出し(ステップS46)、ステップS32と同様な処理により、要素(a,b,p,a・m’−b・m,a・m’+b・m)の置き換えを行う(ステップS47)。そして、CPU110が、レジスタ111からまだ調べていない第2のリストA’の要素があるか否かを判断する(ステップS48)。ここで、まだ調べていない要素があると判断された場合には、ステップS46に戻り、調べていない要素がないと判断された場合には、レジスタ111の要素が置き換えられた第2のリストA’をバス170及び出力部130を通じて出力し、処理を終了する。
Next, the
Next, the
Next, the CPU 110 (eigenvalue element generation means) into which the eigenvalue
<実施例4>
この実施例は、前述の実施例3のユニタリ行列Uに本形態の方法を適用した例である。なお、この実施例では、[固有値候補間の最小角よりも小さな2θを設定する方法]を用い複素数βを決定する例である。
まず、実施例3と同じ計算により、リストAが、
[(−0.60000000,1),(0.28000000,1),(0.60000000,1)]
となり(ステップS20)、
リストA’は,
[(−0.60000000,0.80000000,1),(0.28000000,0.96000000,1),(0.60000000,0.80000000,1)]
となる(ステップS21)。
<Example 4>
This embodiment is an example in which the method of this embodiment is applied to the unitary matrix U of the above-described third embodiment. In this embodiment, the complex number β is determined by using [a method of setting 2θ smaller than the minimum angle between eigenvalue candidates].
First, according to the same calculation as in Example 3, the list A is
[(−0.60000000,1), (0.28000000,1), (0.60000000,1)]
(Step S20),
List A '
[(−0.60000000, 0.80000000, 1), (0.28000000, 0.96000000, 1), (0.60000000, 0.80000000, 1)]
(Step S21).
ここで、リストA’に(−0.60000000,0.80000000,1),(0.60000000,0.80000000,1)という対があるためステップS27(図11)に進む。
A’の要素を,その最初の成分の大きい順に並べ替えたリストA’’は、
[(0.60000000,0.80000000,1),(0.28000000,0.96000000,1),(−0.60000000,0.80000000,1)]
となる(ステップS27)。
Here, since there is a pair of (−0.60000000, 0.80000000, 1) and (0.60000000, 0.80000000, 1) in the list A ′, the process proceeds to step S27 (FIG. 11).
A list A ″ in which the elements of A ′ are rearranged in descending order of the first component is
[(0.60000000, 0.80000000, 1), (0.28000000, 0.96000000, 1), (−0.60000000, 0.80000000, 1)]
(Step S27).
次に、リストA’’で隣りあう要素(a,b,p),(a’,b’,p’)すべての対に対し、ab’−a’bを計算すると、
0.35200000と0.80000000となるので、小さい方0.35200000の1/2をとり、m=0.17600000とおく。これから
m’=√(1−m2)=√(1−0.176000002)=√0.96902400=0.98439017
となり、
β=0.98439017+0.17600000i
となる(ステップS28)。
Next, when ab′−a′b is calculated for all pairs of elements (a, b, p), (a ′, b ′, p ′) adjacent in the list A ″,
Since 0.35200000 and 0.80000000, 1/2 of the smaller 0.35200000 is taken, and m = 0.17600000 is set. From this, m ′ = √ (1−m 2 ) = √ (1-0.176000000 2 ) = √0.969002400 = 0.98439017
And
β = 0.98439017 + 0.176000000i
(Step S28).
よって、リストA’’は、以下のものに書換えられる(ステップS29)。
[(0.60000000,0.80000000,0.44983410,0.73143410),(0.28000000,0.96000000,0.106669250.44458925),(−0.60000000,0.80000000,−0.73143410,−0.44983410)]
次に、ステップS30において、V=β・Uに対し、前と同じように計算すると以下のようになる。
V+V*をエルミート行列の固有値を求めるルーチンにかけると、−0.89966820,0.21333850,0.89966820という単根が返ってくる。
これから、リストDは、
[(−0.44983410,1),(0.10666925,1),(0.44983410,1)]
となる(ステップS30)。
Therefore, the list A ″ is rewritten as follows (step S29).
[(0.60000000, 0.80000000, 0.449883410, 0.731414310), (0.28000000, 0.96000000, 0.106669250.4445925), (−0.60000000, 0.80000000, −0.731414310, -0.44983410)]
Next, in step S30, V = β · U is calculated in the same manner as before.
When V + V * is applied to a routine for obtaining eigenvalues of the Hermitian matrix, single roots of −0.89966820, 0.213333850, and 0.89966820 are returned.
From now on, list D becomes
[(-0.449883410,1), (0.1066625,1), (0.449883410,1)]
(Step S30).
その後、ステップS31〜S33において、リストDを参照しつつリストA’’の要素を置き換える。まず、リストA’’の要素
(0.60000000,0.80000000,0.44983410,0.73143410)
は、リストDに要素(0.44983410,1)があって、0.73143410を第一成分とする要素がないので(ステップS32c)、(0.60000000+0.80000000・i,1)に置き換えられる(ステップS32f)。
Thereafter, in steps S31 to S33, the elements of the list A ″ are replaced while referring to the list D. First, list A ″ elements (0.60000000, 0.80000000, 0.449883410, 0.731414310)
Since there is an element (0.44983410,1) in the list D and there is no element having 0.731414310 as the first component (step S32c), it is replaced with (0.60000000 + 0.80000000 · i, 1) ( Step S32f).
また、リストA’’の要素
(0.28000000,0.96000000,0.10666925,0.44458925)
は、リストDに要素(0.10666925,1)があって、0.44458925を第一成分とする要素がないので(ステップS32c)、(0.28000000+0.96000000・i,1)に置き換えられる(ステップS32f)。
また、リストA’’の要素
(−0.60000000,0.80000000,−0.73143410,−0.44983410)
は、リストDに要素(−0.44983410,1)があって,−0.73143410を第一成分とする要素がないので(ステップS32c)、(−0.60000000−0.80000000・i)に置き換えられる(ステップS32f)。
In addition, the element of the list A ″ (0.28000000, 0.96000000, 0.1066625, 0.444558925)
Since there is an element (0.1066625,1) in the list D and there is no element having 0.44458925 as the first component (step S32c), it is replaced with (0.28000000 + 0.96000000 · i, 1) ( Step S32f).
In addition, the element of the list A ″ (−0.60000000, 0.80000000, −0.731414310, −0.449883410)
Since there is an element (−0.44983410,1) in list D and there is no element having −0.731414310 as the first component (step S32c), (−0.60000000000−0.80000000000 · i) It is replaced (step S32f).
以上でリストA’’の置き換えは終了し、
[(0.60000000+0.80000000・i,1),(0.28000000+0.96000000・i,1),(−0.60000000−0.80000000・i,1)]
を出力して処理を終了する。
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、第1の実施の形態では、Uが実であるか否かを判断し(ステップS1)、実の場合にステップS2,S3の処理によってUの固有値を求めたが、ステップS1〜S3の機能を設けず、Uが実であるか虚であるかに関わらず、ステップS4以降の処理を行ってUの固有値を求めることとしてもよい。
This completes the replacement of list A ''.
[(0.60000000 + 0.80000000 · i, 1), (0.28000000 + 0.96000000 · i, 1), (−0.60000000000−0.80000000 · i, 1)]
Is output and the process is terminated.
The present invention is not limited to the embodiments described above. For example, in the first embodiment, it is determined whether or not U is real (step S1). In the case of real, the eigenvalue of U is obtained by the processing of steps S2 and S3. Regardless of whether U is real or imaginary without providing a function, the process after step S4 may be performed to obtain the eigenvalue of U.
また、第2の実施の形態におけるステップS29やステップS44では、第6のリストA’’の要素(a,b,p)(a=1,−1は除く)を(a,b,p,a・m’−b・m,a・m’+b・m)に置き換え、置き換え後の要素を用い、ステップS32cの判断を行うこととしたが、この要素の置き換えを行わず、ステップS32cにおいて、要素(a,b,p)からc=a・m’−b・m或いはc=a・m’+b・mを算出し、このcを用いてステップS32cの判断を行うこととしてもよい。
また、p=z+z’を満たすわけであるから、ステップS32cでc=a・m’−b・mのみを計算し、リストDに(c,z)が存在する場合にq=zとおき、存在しない場合にq=0とおき、Uの(固有値,重複度)を(a+b・i,q)(a−bi,p−q)として出力することとしてもよい。
In step S29 and step S44 in the second embodiment, the elements (a, b, p) (except for a = 1, −1) of the sixth list A ″ are deleted (a, b, p, a · m′−b · m, a · m ′ + b · m), and using the element after the replacement, the determination in step S32c is performed. However, in step S32c, this element is not replaced. C = a · m′−b · m or c = a · m ′ + b · m may be calculated from the element (a, b, p), and the determination in step S32c may be performed using this c.
Since p = z + z ′ is satisfied, only c = a · m′−b · m is calculated in step S32c, and when (c, z) exists in the list D, q = z is set, If it does not exist, q = 0 may be set, and the (eigenvalue, overlap) of U may be output as (a + b · i, q) (a−bi, p−q).
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。さらに、本明細書において装置とは、複数の機能の論理的集合構成であり、各機能が同一筐体内にあるものには限らない。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述した固有値算出プログラムは、コンピュータが読み取り可能な記録媒体に記録しておくことができる。コンピュータが読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
In addition, the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary. Further, in this specification, an apparatus is a logical set configuration of a plurality of functions, and is not limited to one in which each function is in the same housing. Needless to say, other modifications are possible without departing from the spirit of the present invention.
The eigenvalue calculation program described above can be recorded on a computer-readable recording medium. The computer-readable recording medium may be any medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, or a semiconductor memory. Specifically, for example, as the magnetic recording device, a hard disk device, a flexible Discs, magnetic tapes, etc. as optical disks, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. An MO (Magneto-Optical disc) or the like can be used as a magneto-optical recording medium, and an EEP-ROM (Electronically Erasable and Programmable-Read Only Memory) or the like can be used as a semiconductor memory.
また、このプログラムの流通は、例えば、その固有値算出プログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、上述の各実施の形態は、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己のハードディスク装置140に格納し、このプログラムに従った処理を上述のように実行するものである。しかし、固有値計算装置にサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、この固有値計算装置へのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
The program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the eigenvalue calculation program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
In each of the above-described embodiments, for example, a program recorded on a portable recording medium or a program transferred from a server computer is temporarily stored in its own
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In this embodiment, the present apparatus is configured by executing a predetermined program on a computer. However, at least a part of these processing contents may be realized by hardware.
本発明は、量子コンピュータの量子回路の設計における固有値算出に適用することができる(例えば、村上裕美,河野泰人,関川浩「Cartan分解を利用した量子回路の生成」,第10回量子情報技術研究会資料,社団法人電子情報学会 量子情報技術時限研究専門委員会,2004年5月 参照。) The present invention can be applied to eigenvalue calculation in the design of a quantum circuit of a quantum computer (for example, Hiromi Murakami, Yasuto Kawano, Hiroshi Sekikawa, “Generation of Quantum Circuit Using Cartan Decomposition”, 10th Quantum Information Technology (Refer to Research Materials, Electronic Information Society, Quantum Information Technology Timed Research Special Committee, May 2004.)
10,100 固有値計算装置
11 エルミート行列算出部
12 エルミート行列固有値算出部
13 リスト生成部
10,100
Claims (12)
ユニタリ行列が入力され、当該ユニタリ行列とその共役転置行列との和であるエルミート行列を算出して出力するエルミート行列算出手段と、
前記エルミート行列が入力され、当該エルミート行列の固有値を算出して出力するエルミート行列固有値算出手段と、
前記エルミート行列の固有値が入力され、当該エルミート行列の固有値を定数倍し、その演算結果を出力するリスト生成手段と、
を有することを特徴とする固有値計算装置。 An eigenvalue calculation device for calculating an eigenvalue of a unitary matrix,
A Hermitian matrix calculating means for inputting a unitary matrix and calculating and outputting a Hermitian matrix that is the sum of the unitary matrix and its conjugate transpose matrix;
Hermitian matrix eigenvalue calculating means for inputting the Hermitian matrix and calculating and outputting the eigenvalue of the Hermitian matrix;
List generation means for receiving eigenvalues of the Hermitian matrix, multiplying the eigenvalues of the Hermitian matrix by a constant, and outputting the operation results;
An eigenvalue calculation apparatus characterized by comprising:
前記ユニタリ行列Uが入力され、当該ユニタリ行列Uが実行列であるか否かを判定する第1の判定手段と、
前記ユニタリ行列Uが入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列U*との和である第1のエルミート行列U+U*を算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+U*が入力され、当該第1のエルミート行列U+U*の固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出した前記ユニタリ行列Uの固有値の実部aj(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pjとの対からなる第1のリストA=[(aj,pj)]を生成して出力する第1のリスト生成手段と、
前記ユニタリ行列Uが実行列であると判定された場合に、前記第1のリストA=[(aj,pj)]が入力され、その実部ajから平方根bj=√(1−(aj)2)を算出し、固有値リスト[(aj+bj・i),pj/2],[(aj−bj・i),pj/2](iは虚数単位)を生成し、生成した当該固有値リストを出力する第2のリスト生成手段と、
を有することを特徴とする固有値計算装置。 An eigenvalue calculation device for calculating an eigenvalue of a unitary matrix U, comprising:
A first determination unit that receives the unitary matrix U and determines whether the unitary matrix U is an execution column;
A first Hermite matrix that receives the unitary matrix U and calculates and outputs a first Hermite matrix U + U * that is the sum of the unitary matrix U and the first conjugate transpose matrix U * that is the conjugate transpose matrix. A calculation means;
The first is a Hermitian matrix U + U * is input, a first Hermitian matrix eigenvalue calculation means which calculates and outputs the first eigenvalue is the first of a Hermitian matrix U + U * eigenvalues,
The first eigenvalue is input, the real part of the eigenvalue of the unitary matrix U is calculated by multiplying the first eigenvalue by 1/2, and the real part a j (1 ≦ 1) of the calculated eigenvalue of the unitary matrix U j ≦ u, 1 ≦ u ≦ n, the unitary matrix U is an n × n matrix) and its redundancy p j and a first list A = [(a j , p j )] is generated First list generation means for outputting;
If the unitary matrix U is determined to be a real matrix, the first list A = [(a j, p j)] is inputted, the square root from the real part a j b j = √ (1- ( a j ) 2 ), and the eigenvalue list [(a j + b j · i), p j / 2], [(a j −b j · i), p j / 2] (i is an imaginary unit) Second list generation means for generating and outputting the generated eigenvalue list;
An eigenvalue calculation apparatus characterized by comprising:
前記ユニタリ行列Uが入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列U*との和である第1のエルミート行列U+U*を算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+U*が入力され、当該第1のエルミート行列U+U*の固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出した前記ユニタリ行列Uの固有値の実部aj(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pjとの対からなる第1のリストA=[(aj,pj)]を生成して出力する第1のリスト生成手段と、
前記第1のリストA=[(aj,pj)]が入力され、この実部ajから平方根bj=√(1−(aj)2)を算出し、第2のリストA’=[(aj,bj,pj)]を生成し、生成した当該第2のリストA’を出力する第2のリスト生成手段と、
前記ユニタリ行列Uと虚数単位iが入力され、当該ユニタリ行列Uと虚数単位iとの積i・Uを算出して出力する第1の積演算手段と、
前記積i・Uが入力され、当該積i・Uとその共役転置行列である第2の共役転置行列(i・U)*との和である第2のエルミート行列i・U+(i・U)*を算出して出力する第2のエルミート行列算出手段と、
前記第2のエルミート行列i・U+(i・U)*が入力され、当該第2のエルミート行列i・U+(i・U)*の固有値である第2の固有値を算出して出力する第2のエルミート行列固有値算出手段と、
前記第2の固有値が入力され、当該第2の固有値を−1/2倍して前記ユニタリ行列Uの固有値の虚部bk(1≦k≦v,1≦v≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該虚部bkとその重複度qkとの対からなる第3のリストB=[(bk,qk)]を生成し、生成した当該第3のリストBを出力する第3のリスト生成手段と、
を有することを特徴とする固有値計算装置。 An eigenvalue calculation device for calculating an eigenvalue of a unitary matrix U, comprising:
A first Hermite matrix that receives the unitary matrix U and calculates and outputs a first Hermite matrix U + U * that is the sum of the unitary matrix U and the first conjugate transpose matrix U * that is the conjugate transpose matrix. A calculation means;
The first is a Hermitian matrix U + U * is input, a first Hermitian matrix eigenvalue calculation means which calculates and outputs the first eigenvalue is the first of a Hermitian matrix U + U * eigenvalues,
The first eigenvalue is input, the real part of the eigenvalue of the unitary matrix U is calculated by multiplying the first eigenvalue by 1/2, and the real part a j (1 ≦ 1) of the calculated eigenvalue of the unitary matrix U j ≦ u, 1 ≦ u ≦ n, the unitary matrix U is an n × n matrix) and its redundancy p j and a first list A = [(a j , p j )] is generated First list generation means for outputting;
The first list A = [(a j , p j )] is input, and the square root b j = √ (1− (a j ) 2 ) is calculated from the real part a j , and the second list A ′ is calculated. = [(A j , b j , p j )] and a second list generation means for outputting the generated second list A ′;
First product operation means for inputting the unitary matrix U and the imaginary unit i, calculating and outputting a product i · U of the unitary matrix U and the imaginary unit i,
The product i · U is input, and a second Hermitian matrix i · U + (i · U) which is the sum of the product i · U and a second conjugate transpose matrix (i · U) * which is the conjugate transpose matrix thereof. ) Second Hermite matrix calculating means for calculating and outputting * ,
The second Hermitian matrix i · U + (i · U) * is input, and a second eigenvalue that is an eigenvalue of the second Hermitian matrix i · U + (i · U) * is calculated and output. Hermitian matrix eigenvalue calculating means,
The second eigenvalue is input, the second eigenvalue is multiplied by -1/2, and the imaginary part b k of the unitary matrix U (1 ≦ k ≦ v, 1 ≦ v ≦ n, the unitary matrix is n × n matrix), a third list B = [(b k , q k )] consisting of a pair of the calculated imaginary part b k and its redundancy q k is generated, and the generated first Third list generation means for outputting a list B of 3;
An eigenvalue calculation apparatus characterized by comprising:
前記第2のリストA’=[(aj,bj,pj)]及び前記第3のリストB=[(bk,qk)]が入力され、これらを格納するリストメモリと、
前記リストメモリ内の前記第2のリストA’=[(aj,bj,pj)]から1つの要素(a,b,p)を抽出し、a=0であるか否か及び当該第2のリストA’に要素(−a,b,p’)が存在するか否かを判定する第2の判定手段と、
前記第2の判定手段において、a=0或いは前記要素(−a,b,p’)が前記第2のリストA’に存在しないと判定された場合に、前記要素(a,b,p)が入力され、前記リストメモリ内の前記第3のリストB=[(bk,qk)]から、要素(b,q)と要素(−b,q’)との少なくとも一方を抽出し、(a+b・i,q)及び(a−b・i,q’)の少なくとも一方を生成して出力する固有値要素生成手段と、
を有することを特徴とする固有値計算装置。 The eigenvalue calculation apparatus according to claim 3, wherein
The second list A ′ = [(a j , b j , p j )] and the third list B = [(b k , q k )] are input and a list memory for storing them;
One element (a, b, p) is extracted from the second list A ′ = [(a j , b j , p j )] in the list memory, and whether or not a = 0 and Second determination means for determining whether or not the element (−a, b, p ′) exists in the second list A ′;
When the second determination means determines that a = 0 or the element (−a, b, p ′) does not exist in the second list A ′, the element (a, b, p) Is extracted from at least one of the element (b, q) and the element (−b, q ′) from the third list B = [(b k , q k )] in the list memory; Eigenvalue element generating means for generating and outputting at least one of (a + b · i, q) and (ab−i, q ′);
An eigenvalue calculation apparatus characterized by comprising:
前記第2の判定手段において、前記要素(−a,b,p’)(a≠0)が前記第2のリストA’に存在すると判定された場合、b=0であるか否か、及び前記リストメモリ内の前記第3のリストB=[(bk,qk)]に要素(b,q)と要素(−b,q’)とが共に存在するか否かを判定する第3の判定手段を有し、
前記固有値要素生成手段は、
前記第3の判定手段においてb=0であると判定された場合、前記要素(a,b,p)及び(−a,b,p’)が入力され、(a,p)及び(−a,p’)を生成して出力し、
前記第3の判定手段において前記第3のリストB=[(bk,qk)]に前記要素(b,q)又は要素(−b,q’)の何れか一方しか存在しないと判定された場合、存在すると判定された側のb又は−bであるb’、並びに前記要素(a,b,p)及び(−a,b,p’)が入力され、(a+b’・i,p)及び(−a+b’・i,p’)を生成して出力する手段である、
ことを特徴とする固有値計算装置。 The eigenvalue calculation apparatus according to claim 4, wherein
In the second determination means, if it is determined that the element (−a, b, p ′) (a ≠ 0) is present in the second list A ′, whether or not b = 0, and A third determination is made as to whether or not both the element (b, q) and the element (−b, q ′) exist in the third list B = [(b k , q k )] in the list memory. Determination means,
The eigenvalue element generation means includes
If it is determined by the third determination means that b = 0, the elements (a, b, p) and (−a, b, p ′) are input, and (a, p) and (−a , P ′) and output,
In the third determination means, it is determined that only one of the element (b, q) or the element (−b, q ′) exists in the third list B = [(b k , q k )]. In this case, b ′ which is b or −b determined to exist, and the elements (a, b, p) and (−a, b, p ′) are input, and (a + b ′ · i, p ) And (−a + b ′ · i, p ′) are generated and output.
An eigenvalue calculation device characterized by that.
前記積i・Uと前記ユニタリ行列Uとが入力され、当該ユニタリ行列Uと当該積i・Uとの積i・U2を算出して出力する第2の積演算手段と、
前記積i・U2が入力され、当該積i・U2とその共役転置行列である第3の共役転置行列(i・U2)*との和である第3のエルミート行列i・U2+(i・U2)*を算出して出力する第3のエルミート行列算出手段と、
前記第3のエルミート行列i・U2+(i・U2)*が入力され、当該第3のエルミート行列i・U2+(i・U2)*の固有値である第3の固有値を算出して出力する第3のエルミート行列固有値算出手段と、
前記第3の固有値が入力され、当該第3の固有値を−1/4倍して前記ユニタリ行列Uの固有値の実部ag(1≦g≦w,1≦w≦n)と虚部bgとの積ag・bgを算出し、算出した当該積ag・bgとその重複度rgとの対からなる第4のリストC=[(ag・bg,rg)]を生成し、生成した当該第4のリストCを出力する第4のリスト生成手段と、
を有し、
前記リストメモリは、
さらに前記第4のリストCを格納し、
前記固有値要素生成手段は、
前記第3の判定手段において、前記リストメモリ内の前記第3のリストB=[(bk,qk)]に要素(b,q)(b≠0)と要素(−b,q’)とが共に存在すると判定された場合に、
前記リストメモリ内の前記第2のリストA’=[(aj,bj,pj)]から前記要素(a,b,p)と(−a,b,p’)との対を抽出し、前記第3のリストB=[(bk,qk)]から前記要素(b,q)を抽出し、前記第4のリストC=[(ag・bg,rg)]からa・bに対応する要素(a・b,r)を抽出し、s=(−p’+q+r)/2を算出し、(a+bi,s)、(a−bi,p−s)、(−a+bi,q−s)及び(−a−bi,r−s)を生成し、生成した(a+bi,s)、(a−bi,p−s)、(−a+bi,q−s)及び(−a−bi,r−s)を出力する手段である、
ことを特徴とする固有値計算装置。 The eigenvalue calculation apparatus according to claim 5, wherein
Second product operation means for inputting the product i · U and the unitary matrix U, calculating and outputting a product i · U 2 of the unitary matrix U and the product i · U;
The product i · U 2 is input, and a third Hermitian matrix i · U 2 that is the sum of the product i · U 2 and a third conjugate transpose matrix (i · U 2 ) * that is the conjugate transpose matrix thereof. Third Hermite matrix calculating means for calculating and outputting + (i · U 2 ) * ;
The third Hermite matrix i · U 2 + (i · U 2 ) * is input, and a third eigenvalue that is an eigenvalue of the third Hermite matrix i · U 2 + (i · U 2 ) * is calculated. A third Hermitian matrix eigenvalue calculating means for outputting
The third eigenvalue is input, and the third eigenvalue is multiplied by −1/4 to obtain a real part a g (1 ≦ g ≦ w, 1 ≦ w ≦ n) and an imaginary part b of the eigenvalue of the unitary matrix U. calculating a product a g · b g and g, a fourth list of consisting calculated with the product a g · b g from the multiplicity r g and the pair C = [(a g · b g, r g) And a fourth list generation means for outputting the generated fourth list C;
Have
The list memory is
Furthermore, the fourth list C is stored,
The eigenvalue element generation means includes
In the third determination means, the element (b, q) (b ≠ 0) and the element (−b, q ′) are added to the third list B = [(b k , q k )] in the list memory. Are determined to exist together,
A pair of the element (a, b, p) and (−a, b, p ′) is extracted from the second list A ′ = [(a j , b j , p j )] in the list memory. Then, the element (b, q) is extracted from the third list B = [(b k , q k )], and from the fourth list C = [(a g · b g , r g )]. The element (a · b, r) corresponding to a · b is extracted, s = (− p ′ + q + r) / 2 is calculated, and (a + bi, s), (a−bi, p−s), (− a + bi, q−s) and (−a−bi, rs−), and the generated (a + bi, s), (a−bi, ps), (−a + bi, q−s) and (− a-bi, rs).
An eigenvalue calculation device characterized by that.
前記ユニタリ行列Uが入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列U*との和である第1のエルミート行列U+U*を算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+U*が入力され、当該第1のエルミート行列U+U*の固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出したユニタリ行列の固有値の実部aj(1≦j≦u,1≦u≦n)とその重複度pjとの対からなる第1のリストA=[(aj,pj)]を生成して出力する前記第1のリスト生成手段と、
前記第1のリストA=[(aj,pj)]が入力され、この実部ajから平方根bj=√(1−(aj)2)を算出し、第2のリストA’=[(aj,bj,pj)]を生成し、生成した当該第2のリストA’を出力する前記第2のリスト生成手段と、
複素数β=m’+m・i(iは虚数単位、(m’)2+m2=1)を設定して出力する複素数設定手段と、
前記ユニタリ行列U及び前記複素数βが入力され、当該ユニタリ行列Uと当該複素数βとの積β・Uを算出して出力する第3の積演算手段と、
前記積β・Uが入力され、当該積β・Uとその共役転置行列である第4の共役転置行列(β・U)*との和である第4のエルミート行列β・U+(β・U)*を算出して出力する第4のエルミート行列算出手段と、
前記第4のエルミート行列β・U+(β・U)*が入力され、当該第4のエルミート行列β・U+(β・U)*の固有値である第4の固有値を算出して出力する第4のエルミート行列固有値算出手段と、
前記第4の固有値が入力され、当該第4の固有値を1/2倍した値ch(1≦h≦x,1≦x≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該値chとその重複度zhとの対からなる第5のリストD=[(ch,zh)]を生成し、生成した当該第5のリストDを出力する第5のリスト生成手段と、
前記第2のリストA’=[(aj,bj,pj)]及び前記第5のリストD=[(ch,zh)]が入力され、これらを格納するリストメモリと、
m’,m,a,bを示す情報が入力され、前記第5のリストDに要素(a・m’−b・m,z)又は(a・m’+b・m,z’)が存在するか否かを検索し、当該第5のリストDに当該要素(a・m’−b・m,z)が存在した場合、(a+b・i,z)を生成して出力し、当該要素(a・m’+b・m,z’)が存在した場合、(a−b・i,z’)を生成して出力する固有値要素生成手段と、
を有することを特徴とする固有値計算装置。 An eigenvalue calculation device for calculating an eigenvalue of a unitary matrix U, comprising:
A first Hermite matrix that receives the unitary matrix U and calculates and outputs a first Hermite matrix U + U * that is the sum of the unitary matrix U and the first conjugate transpose matrix U * that is the conjugate transpose matrix. A calculation means;
The first is a Hermitian matrix U + U * is input, a first Hermitian matrix eigenvalue calculation means which calculates and outputs the first eigenvalue is the first of a Hermitian matrix U + U * eigenvalues,
The first eigenvalue is input, the real part of the eigenvalue of the unitary matrix U is calculated by multiplying the first eigenvalue by 1/2, and the real part of the eigenvalue of the unitary matrix a j (1 ≦ j ≦ u, 1 ≦ u ≦ n) and the first list generating means for generating and outputting a first list A = [(a j , p j )] consisting of pairs of the duplication degree p j ;
The first list A = [(a j , p j )] is input, and the square root b j = √ (1− (a j ) 2 ) is calculated from the real part a j , and the second list A ′ is calculated. = [(A j , b j , p j )], and the second list generation means for outputting the generated second list A ′;
Complex number setting means for setting and outputting a complex number β = m ′ + m · i (i is an imaginary unit, (m ′) 2 + m 2 = 1);
Third product operation means for inputting the unitary matrix U and the complex number β, and calculating and outputting a product β · U of the unitary matrix U and the complex number β;
The product β · U is input, and a fourth Hermitian matrix β · U + (β · U) which is the sum of the product β · U and its fourth conjugate transpose matrix (β · U) *. ) Fourth Hermite matrix calculating means for calculating and outputting * ,
The fourth Hermitian matrix β · U + (β · U) * is input, and a fourth eigenvalue that is an eigenvalue of the fourth Hermitian matrix β · U + (β · U) * is calculated and output. Hermitian matrix eigenvalue calculating means,
The fourth eigenvalue is input, and a value c h (1 ≦ h ≦ x, 1 ≦ x ≦ n, the unitary matrix is an n × n matrix) is calculated by halving the fourth eigenvalue. A fifth list D = [(c h , z h )] consisting of a pair of the value c h and its redundancy z h is output, and the generated fifth list D is output. Generating means;
The second list A ′ = [(a j , b j , p j )] and the fifth list D = [(c h , z h )] are input, and a list memory for storing them;
Information indicating m ′, m, a, b is input, and the element (a · m′−b · m, z) or (a · m ′ + b · m, z ′) exists in the fifth list D If the element (a · m′−b · m, z) exists in the fifth list D, (a + b · i, z) is generated and output. When (a · m ′ + b · m, z ′) exists, eigenvalue element generation means for generating and outputting (a−b · i, z ′),
An eigenvalue calculation apparatus characterized by comprising:
前記複素数設定手段は、
前記第2のリストA’=[(aj,bj,pj)]の要素をajの大きさ順に並び替えた第6のリストA’’を生成し、当該第6のリストA’’の隣り合う要素(a,b,p)及び(a’,b’,p’)の全ての対に対してa・b’−a’・bを計算し、その最小値の1/2をmとして算出し、m’=√(1−m2)を算出し、前記複素数β=m’+m・iを設定して出力する手段である、
ことを特徴とする固有値計算装置。 The eigenvalue calculation apparatus according to claim 7, wherein
The complex number setting means includes:
A sixth list A ″ is generated by rearranging the elements of the second list A ′ = [(a j , b j , p j )] in the order of the size of a j , and the sixth list A ′ A · b′−a ′ · b is calculated for all pairs of adjacent elements (a, b, p) and (a ′, b ′, p ′) of ′, and ½ of the minimum value Is a means for calculating m ′ = √ (1−m 2 ) and setting and outputting the complex number β = m ′ + m · i.
An eigenvalue calculation device characterized by that.
前記複素数設定手段は、
前記第2のリストA’=[(aj,bj,pj)]が入力され、複素数β=m’+m・iをランダムに生成し、仮リスト[(aj・m’−bj・m,aj・m’+bj・m)]を生成し、当該仮リスト[(aj・m’−bj・m,aj・m’+bj・m)]に要素の重複がないか判断し、要素の重複がなかった場合に、当該ランダムに生成した複素数β=m’+m・iを出力する手段である、
ことを特徴とする固有値計算装置。 The eigenvalue calculation apparatus according to claim 7, wherein
The complex number setting means includes:
The second list A ′ = [(a j , b j , p j )] is input, a complex number β = m ′ + m · i is randomly generated, and a temporary list [(a j · m′−b j M, a j · m ′ + b j · m)], and the temporary list [(a j · m′−b j · m, a j · m ′ + b j · m)] has duplicate elements. A means for outputting the randomly generated complex number β = m ′ + m · i when there is no overlapping of elements.
An eigenvalue calculation device characterized by that.
エルミート行列算出手段が、入力された前記ユニタリ行列とその共役転置行列との和であるエルミート行列を算出して出力する手順と、
エルミート行列固有値算出手段が、前記エルミート行列算出手段から出力されたエルミート行列に対して、当該エルミート行列の固有値を算出して出力する手順と、
リスト生成手段が、前記エルミート行列固有値算出手段から出力された前記エルミート行列の固有値を定数倍し、その演算結果を出力する手順と、
を有することを特徴とする固有値計算方法。 A unitary matrix eigenvalue calculation method for executing a computer by causing a computer to function as an eigenvalue calculation device having Hermitian matrix calculation means, Hermitian matrix eigenvalue calculation means, and list generation means ,
Hermitian matrix calculation means calculates and outputs a Hermitian matrix that is the sum of the input unitary matrix and its conjugate transpose matrix;
Hermite matrix eigenvalue calculating means calculates and outputs eigenvalues of the Hermitian matrix for the Hermitian matrix output from the Hermitian matrix calculating means ;
A list generating means multiplying the eigenvalue of the Hermitian matrix output from the Hermitian matrix eigenvalue calculating means by a constant, and outputting the calculation result;
An eigenvalue calculation method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004329130A JP4260725B2 (en) | 2004-11-12 | 2004-11-12 | Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004329130A JP4260725B2 (en) | 2004-11-12 | 2004-11-12 | Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006139575A JP2006139575A (en) | 2006-06-01 |
JP4260725B2 true JP4260725B2 (en) | 2009-04-30 |
Family
ID=36620359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004329130A Expired - Fee Related JP4260725B2 (en) | 2004-11-12 | 2004-11-12 | Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4260725B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013047394A1 (en) * | 2011-09-26 | 2013-04-04 | 日本電気株式会社 | Device and method for generating linear constraint condition, device for solving positive semidefinite optimization problem, metric learning device, and computer program |
-
2004
- 2004-11-12 JP JP2004329130A patent/JP4260725B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006139575A (en) | 2006-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Abernathey et al. | Cloud-native repositories for big scientific data | |
Saks | JavaScript Frameworks: Angular vs React vs Vue. | |
Wood | Data structures, algorithms, and performance | |
RU2540843C2 (en) | Displaying multiple row and column header areas in summary table | |
CN106164942A (en) | Being effectively synthesized of " repeating until success " circuit on the basis of Clifford+T | |
Sjardin et al. | Large scale machine learning with Python | |
Heydt | Python Web Scraping Cookbook: Over 90 proven recipes to get you scraping with Python, microservices, Docker, and AWS | |
Loginovsky et al. | Supercomputing technologies as drive for development of enterprise information systems and digital economy | |
CN112860777A (en) | Data processing method, device and equipment | |
Gupta et al. | A study of big data analytics using apache spark with Python and Scala | |
AlBar et al. | A journey towards building real-time big data analytics environment for drilling operations: Challenges and lessons learned | |
AU2020472445B2 (en) | Hidden decision tree test device, hidden decision tree test system, hidden decision tree test method, and program | |
Tchoua et al. | Adios visualization schema: A first step towards improving interdisciplinary collaboration in high performance computing | |
Joshi | Analyzing big data tools and deployment platforms | |
JP4260725B2 (en) | Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium | |
US20180196738A1 (en) | Test input information search device and method | |
Weber et al. | Basics in Business Informatics | |
Deepthi et al. | Big data mining using very-large-scale data processing platforms | |
Johnson et al. | Using the provenance from astronomical workflows to increase processing efficiency | |
Khoshbakht et al. | Adoption of big data analytics framework for business intelligence and its effectiveness: an analysis | |
Ordoñez et al. | Clustering business process models based on multimodal search and covering arrays | |
Johnson et al. | EnVision: A web-based tool for scientific visualization | |
Middelburg | The Enterprise Big Data Framework: Building Critical Capabilities to Win in the Data Economy | |
US20230409806A1 (en) | Permutation invariance for representing linearized tabular data | |
Heydt | Learning pandas |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061219 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070126 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080701 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080723 |
|
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: 20090127 |
|
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: 20090204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 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 |