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 PDF

Info

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
Application number
JP2004329130A
Other languages
Japanese (ja)
Other versions
JP2006139575A (en
Inventor
浩 関川
裕美 村上
潔 白柳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004329130A priority Critical patent/JP4260725B2/en
Publication of JP2006139575A publication Critical patent/JP2006139575A/en
Application granted granted Critical
Publication of JP4260725B2 publication Critical patent/JP4260725B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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の転置行列をAで表し、その転置行列の全ての要素を各々共役複素数で置き換えた行列である共役転置行列(随伴行列とも呼ぶ)を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 nonpatent literatures 1 and 2.).

一方、一般的な正方行列Aの固有値の算出には以下の手法が用いられることが一般的である。すなわち、対象の正方行列Aを、有限回の演算によって実現できるユニタリ相似変換によって都合のよい中間形A’=UAU(Uはユニタリ行列)に変形し、その中間形A’にQR法等の反復計算を適用してその固有値を求める手法がとられる(例えば、非特許文献1,2参照。)。この手法は、QR法等の反復計算によって中間形A’が上三角形行列に収束する事実を前提にしたものであり、この前提が保たれる限り正しい固有値の算出が可能である。
森正武,杉原正顕,室田一雄著,「岩波講座応用数学 線形計算」,岩波書店,1994. F. シャトラン著,伊理正夫,伊理由美訳,「行列の固有値」,シュプリンガー・フェアラーク東京,1993.
On the other hand, the following method is generally used to calculate the eigenvalues of a general square matrix A. That is, the target square matrix A is transformed into a convenient intermediate form A ′ = U * AU (U is a unitary matrix) by unitary similarity transformation that can be realized by a finite number of operations, and the QR method or the like is converted to the intermediate form A ′. The eigenvalue is obtained by applying the iterative calculation (see, for example, Non-Patent Documents 1 and 2). This method is based on the fact that the intermediate form A ′ converges to the upper triangular matrix by iterative calculation such as the QR method, and correct eigenvalues can be calculated as long as this premise is maintained.
Masatake Mori, Masaaki Sugihara, Kazuo Murota, "Iwanami Lecture Applied Mathematics Linear Calculation", Iwanami Shoten, 1994. F. Chatlan, Masao Iri, Mitsuyoshi Inori, “Eigenvalues of Matrix”, Springer Fairlake Tokyo, 1993.

しかし、正方行列Aが持つ複数の固有値のうち、相互に絶対値が等しいものが存在していた場合、上述した中間形A’=UAUに反復計算を適用してその固有値を求める手法では、正しい固有値が求まらないことがある。すなわち、前述の通り、この固有値算出方法は、反復計算により中間形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・Uに適用した場合、その出力は、ユニタリ行列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 eigenvalue calculation apparatus 10 of the present embodiment.
As illustrated in FIG. 1, the eigenvalue calculation apparatus 10 of this embodiment includes a Hermitian matrix calculation unit 11, a Hermite matrix eigenvalue calculation unit 12, and a list generation unit 13.

まず、エルミート行列算出部11にユニタリ行列が入力され、エルミート行列算出部11は、当該ユニタリ行列とその共役転置行列との和であるエルミート行列を算出して出力する。次に、エルミート行列固有値算出部12に、このエルミート行列が入力され、エルミート行列固有値算出部12は、当該エルミート行列の固有値を算出して出力する。そして、リスト生成部13にこのエルミート行列の固有値が入力され、リスト生成部13は、当該エルミート行列の固有値を用いて当該エルミート行列の固有値を定数倍し、その演算結果を出力する。   First, a unitary matrix is input to the Hermitian matrix calculator 11, and the Hermitian matrix calculator 11 calculates and outputs a Hermitian matrix that is the sum of the unitary matrix and its conjugate transpose matrix. Next, this Hermite matrix is input to the Hermite matrix eigenvalue calculation unit 12, and the Hermite matrix eigenvalue calculation unit 12 calculates and outputs the eigenvalue of the Hermite matrix. Then, the eigenvalue of the Hermitian matrix is input to the list generation unit 13, and the list generation unit 13 multiplies the eigenvalue of the Hermitian matrix by a constant using the eigenvalue of the Hermite matrix and outputs the calculation result.

次に、この基本構成をユニタリ行列の固有値の算出に適用して説明する。なお、以下では、固有値を求めるユニタリ行列をn行n列のユニタリ行列Uとする。この場合、U+Uはエルミート行列となる。
[Uが実の場合]
まず、ユニタリ行列Uが実の場合について説明する。この場合、Uは直交行列となり、UUとなり、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 Hermitian matrix calculator 11, and the Hermitian matrix calculator 11 calculates a Hermitian matrix V = U + U * that is the sum of the unitary matrix U and its conjugate transpose matrix U *, and outputs it. To do. Next, the Hermitian matrix V = U + U * is input to the Hermitian matrix eigenvalue calculating section 12, and the Hermitian matrix eigenvalue calculating section 12 applies a known routine for obtaining the eigenvalue of the real symmetric matrix to the Hermitian matrix V = U + U *. Eigenvalues of the Hermitian matrix V = U + U * . Here, for the unitary matrix U is the conjugate transpose matrix U * and commutative, the sum of the eigenvalues and the conjugate transpose matrix U * of the eigenvalues of the unitary matrix U is equal to the Hermitian matrix V = U + U * eigenvalues. In addition, the eigenvalue of the unitary matrix U (for example, α = a + i · b) replaced with a conjugate complex number (ai · b) becomes the eigenvalue of the conjugate transpose matrix U * . Therefore, if the real part of the eigenvalue of the unitary matrix U is a γ (γ = 1, 2,..., N), the eigenvalue of the Hermitian matrix V = U + U * is 2a γ . Here, even if the eigenvalues have a degree of overlap, the same eigenvalues are arranged for the degree of overlap.

算出されたエルミート行列V=U+Uの固有値2aγは、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V=U+Uの固有値2aγのうち共通する値をまとめ、固有値2a(1≦j≦u,1≦u≦n)とその重複度pとの対を生成する。さらに、この固有値2aを1/2倍し、ユニタリ行列Uの固有値の実部a(1≦j≦u,1≦u≦n)とその重複度pとの対からなるリストA=[(a,p)]を生成する。
また、ユニタリ行列Uの固有値の絶対値(実部の二乗と虚部の二乗との和の平方根)は1であるという関係を用い、リスト生成部13は、ユニタリ行列Uの固有値の虚部bの絶対値を√(1−a )によって算出する。
The calculated eigenvalue 2a γ of the Hermitian matrix V = U + U * is sent to the list generator 13. First, the list generation unit 13 collects common values among the eigenvalues 2a γ of the transmitted Hermitian matrix V = U + U * , and the eigenvalues 2a j (1 ≦ j ≦ u, 1 ≦ u ≦ n) and their overlapping degree p. Create a pair with j . Further, the eigenvalue 2a j is multiplied by ½, and a list A = a pair consisting of a real part a j (1 ≦ j ≦ u, 1 ≦ u ≦ n) of the eigenvalue of the unitary matrix U and its redundancy p j [(A j , p j )] is generated.
Further, the list generation unit 13 uses the relationship that the absolute value of the eigenvalue of the unitary matrix U (the square root of the sum of the square of the real part and the square of the imaginary part) is 1, and the list generation unit 13 uses the relationship of the imaginary part b of the eigenvalue of the unitary matrix U. the absolute value of j is calculated by √ (1-a j 2) .

次に、ユニタリ行列Uの固有値の絶対値が1であることから、この固有値が虚であるかどうかは、−1<a<1が成り立つかどうかによって判断する。
ここで、−1<a<1を満たす場合、これを実部aとする固有値は虚である。そして、このユニタリ行列Uは実であることから、この固有値は必ず複素共役の対となる。つまり、この実部aをもつ固有値は、a+√(1−a )とa−√(1−a )の対になる。すなわち、この固有値の実部aの重複度pは必ず偶数となる。
一方、−1<a<1を満たさない場合(a=±1と同値)、この固有値は実であり、この実部aをもつ固有値はaとなる。すなわち、実部a=±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)・pとなり、実固有値(固有値が±1の場合)の重複度はpとなる。
[Uが虚の場合]
次に、ユニタリ行列Uが複素の場合を説明する。すなわち、Uはユニタリ行列、V=U+Uはエルミート行列である。
この場合もUが実の場合と同様に、エルミート行列の固有値を求めるルーチンを用いてV=U+Uの固有値を求めることにより、Uの固有値の実部と、虚部の絶対値とがわかる。ただし、Uが虚の場合、Uが実の場合と異なり、実部aをもつ固有値が、a+√(1−a )とa−√(1−a )の対になるとは限らない。そのため、ユニタリ行列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 eigenvalue calculation apparatus 10 of FIG. 1 to obtain respective lists.

すなわち、まず、固有値計算装置10にユニタリ行列Uが入力され、Uが実の場合と同様にリストA=[(a,p)]が生成される。また、b=√(1−a )によって虚部の絶対値bを求め、三つ組みのリストA’=[(a,b,p)]を生成する。
次に、エルミート行列算出部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 eigenvalue calculation apparatus 10, and a list A = [(a j , p j )] is generated as in the case where U is real. Further, the absolute value b j of the imaginary part is obtained by b j = √ (1−a j 2 ), and a triple list A ′ = [(a j , b j , p j )] is generated.
Next, the unitary matrix i · U is input to the Hermitian matrix calculation unit 11, and the Hermite matrix calculation unit 11 is a Hermitian matrix V that is the sum of the unitary matrix i · U and its conjugate transpose matrix (i · U) *. '= I · U + (i · U) * is calculated and output. Next, the Hermitian matrix V ′ = i · U + (i · U) * is input to the Hermitian matrix eigenvalue calculating unit 12, and the Hermitian matrix eigenvalue calculating unit 12 performs the Hermitian matrix V ′ = i · U + (i · U) *. On the other hand, a known routine for obtaining the eigenvalue of the Hermitian matrix is applied to obtain the eigenvalue of the Hermitian matrix V ′ = i · U + (i · U) * .

ここで、ユニタリ行列は正規行列なので、ユニタリ行列i・Uの固有値の虚部bγとすると、エルミート行列V’=i・U+(i・U)の固有値は−2bγとなる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
算出されたエルミート行列V’=i・U+(i・U)の固有値−2bγは、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V’=i・U+(i・U)の固有値−2bγのうち共通する値をまとめ、固有値−2b(1≦k≦v,1≦v≦n)とその重複度qとの対を生成する。さらに、この固有値−2bを−(1/2)倍し、ユニタリ行列Uの固有値の虚部bとその重複度qとの対からなるリストB=[(b,q)]を作成する。
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 list generator 13. The list generation unit 13 first collects common values among the eigenvalues −2b γ of the transmitted Hermitian matrix V ′ = i · U + (i · U) * , and the eigenvalues −2b k (1 ≦ k ≦ v, 1 ≦ v ≦ n) and its redundancy q k are generated. Further, the eigenvalue-2b k is multiplied by-(1/2), and a list B = [(b k , q k )] consisting of a pair of the imaginary part b k of the eigenvalue of the unitary matrix U and its redundancy q k is obtained . Create

以上より、ユニタリ行列Uの固有値の実部、虚部及び重複度からなるリストA’=[(a,b,p)]と、虚部及び重複度からなるリストB=[(b,q)]とが生成されたことになる。
次に、リストA’=[(a,b,p)]から要素(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の固有値候補a±b・iを180°回転させたものが、他の固有値候補a±b・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の固有値候補a−b・iを90°回転させたものの実部aは、他の固有値候補−a+b・iを90°回転させたものの実部aと一致する。そのため、i・U+(i・U)の固有値が−2aとして求められたとしても、これが固有値候補a−b・iに対応するものか、他の固有値候補−a+b・iに対応するものかを区別することができず、Uの固有値を特定することもできない。
以上より、このようなときはさらにユニタリ行列W=i・Uを図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 eigenvalue calculation apparatus 10 in FIG. 1, and respective lists are obtained.

すなわち、エルミート行列算出部11に、ユニタリWが入力され、エルミート行列算出部11は、ユニタリWとその共役転置行列Wとの和であるエルミート行列V’’=W+Wを算出し、出力する。次に、エルミート行列固有値算出部12にエルミート行列V’’=W+Wが入力され、エルミート行列固有値算出部12は、エルミート行列V’’=W+Wに対し、エルミート行列の固有値を求める公知のルーチンを適用し、エルミート行列V’’=W+Wの固有値を求める。
ここで、ユニタリ行列は正規行列なので、ユニタリ行列の可換性より、ユニタリ行列Wの固有値の実部をaとし虚部bとすると、エルミート行列V’’=W+Wの固有値は−4aγ・bγとなる。なお、ここでは、固有値に重複度がある場合でも、その同じ固有値を重複度分並べている。
That is, unitary W is input to Hermite matrix calculation unit 11, and Hermite matrix calculation unit 11 calculates Hermite matrix V ″ = W + W * , which is the sum of unitary W and its conjugate transpose matrix W *, and outputs it. . Next, the Hermitian matrix V ″ = W + W * is input to the Hermitian matrix eigenvalue calculating unit 12, and the Hermite matrix eigenvalue calculating unit 12 obtains an eigenvalue of the Hermitian matrix with respect to the Hermitian matrix V ″ = W + W *. To find the eigenvalue of the Hermitian matrix V ″ = W + W * .
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γのうち共通する値をまとめ、固有値−4a・b(1≦g≦w,1≦w≦n)とその重複度rとの対を生成する。さらに、この固有値−4a・bを−(1/4)倍し、a・bとその重複度rとの対からなるリストC=[(a・b,r)]を作成する。
その後、リスト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の重複度をそれぞれm,m,m,mとおくと、(a,b,p)と(−a,b,p’)からm+m=p,m+m=p’となることがわかり、(b,q)からm+m=qとなることがわかり、(ab,r)からm+m=rとなることがわかる。
The calculated Hermitian matrix V ″ = W + W * eigenvalues −4a γ · b γ is sent to the list generation unit 13. First, the list generation unit 13 collects common values among the eigenvalues −4a γ and b γ of the Hermitian matrix V ″ = W + W * that are sent, and the eigenvalues −4 a g and b g (1 ≦ g ≦ w, 1 generating a ≦ w ≦ n) paired with its multiplicity r g. Furthermore, the eigenvalues -4a g · b g - (1/4 ) multiplied, a list consisting of a pair of g · b g and its multiplicity r g C = [(a g · b g, r g) ] Is created.
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とおくと、
=s
=p−s
=q−s
=r−s
と重複度が求まる。これにより、ユニタリ行列Uの固有値として、a+b・iがm個、、a−b・iがm個、−a+b・iがm個、−a−b・iがm個存在することがわかる。
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 eigenvalue calculation apparatus 100 according to this embodiment.
As illustrated in FIG. 3, the eigenvalue calculation apparatus 100 in this example includes a CPU (Central Processing Unit) 110, an input unit 120, an output unit 130, a hard disk device 140, a RAM (Random Access Memory) 150, and a ROM (Read Only Memory). ) 160 and bus 170.

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 CPU 110 is a processor that executes various arithmetic processes in accordance with various input programs, and is connected to a register 111. The input unit 120 is an input port for inputting data, a keyboard, a mouse, and the like, and the output unit 130 is an output port for outputting data, a display, and the like. The hard disk device 140 has an OS program area 141 for storing an OS (Operating System) program such as windows (registered trademark), and an eigenvalue calculation program area 142 for storing an eigenvalue calculation program for executing the eigenvalue calculation of this embodiment. ing. The RAM 150 has an eigenvalue calculation program area 152 for storing an OS program, an eigenvalue calculation program area 152 for storing an eigenvalue calculation program, and a data area 153 for storing a unitary matrix U for obtaining eigenvalues. The bus 170 connects the CPU 110, the input unit 120, the output unit 130, the hard disk device 140, the RAM 150, and the ROM 160 so that they can communicate with each other.

図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 eigenvalue calculation program 200 in this embodiment. As illustrated in this figure, the eigenvalue calculation program 200 includes a Hermitian matrix calculation program 202, a Hermitian matrix eigenvalue calculation program 203, first to third determination programs 211 to 213, first to fourth list generation programs 221 to 224, An eigenvalue element generation program 231 and a product operation program 241 are included. Here, as the Hermitian matrix eigenvalue calculation program 203, for example, a program capable of obtaining the eigenvalues of the Hermitian matrix included in the numerical calculation software MATLAB (registered trademark) can be used. As a routine of the Hermitian matrix eigenvalue calculation program 203, for example, a Hermitian matrix is converted into a tridiagonal matrix (tridiagonal Hermitian matrix) using the Householder transformation or Lanczos method, and QR method or Sturm method is used. Examples of routines that can be applied to find the eigenvalues can be cited (for example, see Non-Patent Documents 1 and 2, Masao Iri, Kazuken Fujino, “Common sense of numerical computation”, Kyoritsu Shuppan, 1985, etc.).

<具体的な処理>
次に、本形態の具体的な処理について例示する。
図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 CPU 110 reads the OS program in the OS program area 141 of the hard disk device 140 and the eigenvalue calculation program 200 in the eigenvalue calculation program area 142 and stores them in the OS program area 151 and the eigenvalue calculation program area 152 of the RAM 150. Next, the CPU 110 sequentially reads OS programs from the OS program area 151 of the RAM 150 and executes them, and then reads and executes the first determination program 211 from the eigenvalue calculation program area 142. The CPU 110 (first determination means) that has read the first determination program 211 reads (inputs) the unitary matrix U from the data area 153 of the RAM 150, and determines whether or not the unitary matrix U is an execution column. (Step S1).

ここで、ユニタリ行列Uが実行列であると判定された場合、CPU110は、U+Uの固有値を1/2倍したもののリストA(固有値の1/2倍と重複度の対)を作成する(ステップS2)。すなわち、まずCPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み出して実行する。このエルミート行列算出プログラム202が読み込まれたCPU110(第1のエルミート行列算出手段)には、レジスタ111から読み出されたユニタリ行列Uが入力され、このCPU110は、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列U(=U/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の固有値の実部a(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pとの対からなる第1のリストA=[(a,p)]を生成してレジスタ111に対して出力、格納する。 Here, if the unitary matrix U is determined to be a real matrix, CPU 110 creates a list of those to half the eigenvalues of U + t U A (half a multiplicity of pairs of eigenvalues) (Step S2). That is, first, the CPU 110 reads the Hermite matrix calculation program 202 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The unitary matrix U read from the register 111 is input to the CPU 110 (first Hermite matrix calculation means) into which the Hermitian matrix calculation program 202 has been read. The CPU 110 receives the unitary matrix U and its conjugate transpose matrix. A first Hermitian matrix U + U * which is the sum of the first conjugate transposed matrix U * (= t U / U is real) is calculated and stored in the register 111. Next, the CPU 110 reads the Hermite matrix eigenvalue calculation program 203 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The first Hermite matrix U + U * is input from the register 111 to the CPU 110 (first Hermite matrix eigenvalue calculation means) into which the Hermite matrix eigenvalue calculation program 203 is read, and the CPU 110 receives the first Hermite matrix U + U A first eigenvalue which is an eigenvalue of * is calculated and output to the register 111 and stored. Next, the CPU 110 reads the first list generation program 221 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The first eigenvalue is input from the register 111 to the CPU 110 (first list generation means) from which the first list generation program 221 is read, and the CPU 110 multiplies the first eigenvalue by 1/2. The real part of the eigenvalue of the unitary matrix U is calculated, and the real part a j of the calculated eigenvalue of the unitary matrix U (1 ≦ j ≦ u, 1 ≦ u ≦ n, the unitary matrix U is an n × n matrix) and its A first list A = [(a j , p j )] consisting of a pair with the degree of overlap p j is generated, output to the register 111 and stored.

以上のようにリストAが生成されると、次に、CPU110は、RAM150の固有値計算プログラム領域152から第2のリスト生成プログラム222を読み出して実行する。この第2のリスト生成プログラム222が読み込まれたCPU110(第2のリスト生成手段)には、レジスタ111から第1のリストA=[(a,p)]が入力される。そして、このCPU110は、リストAの実部aが±1でないとき、この実部aから平方根b=√(1−(a)を算出し、第1のリストA=[(a,p)]の要素(a,p)を((a+b・i),p/2)と((a−b・i),p/2)に置き換えた固有値リスト[(a+b・i),p/2],[(a−b・i),p/2](iは虚数単位)を生成し、生成した当該固有値リストをバス170及び出力部130を通じ出力して処理を終了する(ステップS3)。 When the list A is generated as described above, the CPU 110 next reads and executes the second list generation program 222 from the eigenvalue calculation program area 152 of the RAM 150. The first list A = [(a j , p j )] is input from the register 111 to the CPU 110 (second list generation means) into which the second list generation program 222 has been read. When the real part a j of the list A is not ± 1, the CPU 110 calculates a square root b j = √ (1− (a j ) 2 ) from the real part a j , and the first list A = [ The eigenvalue list [(a j , p j )] with the element (a, p) replaced by ((a + b · i), p / 2) and ((a−b · i), p / 2) [(a j + B j · i), p j / 2], [(a j −b j · i), p j / 2] (i is an imaginary unit), and the generated eigenvalue list is generated by the bus 170 and the output unit 130. And the process is terminated (step S3).

一方、ステップ1においてユニタリ行列Uが実行列でないと判定された場合、CPU110は、U+Uの固有値を1/2倍したもののリストA(固有値の1/2倍と重複度の対)を作成し、レジスタ111に格納する(ステップS4)。なお、この詳細はUがUに置き換わる以外は、上述したステップ2の処理と同様である。
次に、CPU110は、RAM150の固有値計算プログラム領域152から第2のリスト生成プログラム222を読み出して実行する。この第2のリスト生成プログラム222が読み込まれたCPU110(第2のリスト生成手段)には、レジスタ111から第1のリストA=[(a,p)]が入力され、このCPU110は、第1のリストAの実部aから平方根b=√(1−(a)を算出し、第2のリストA’=[(a,b,p)]を生成し、生成した当該第2のリストA’をレジスタ111(リストメモリ)に対して出力、格納する(ステップS5)。
On the other hand, when it is determined in step 1 that the unitary matrix U is not an execution column, the CPU 110 creates a list A (a pair of ½ times the eigenvalue and the multiplicity) that is ½ times the eigenvalue of U + U *. And stored in the register 111 (step S4). This detail is the same as the processing in step 2 described above, except that t U is replaced with U * .
Next, the CPU 110 reads the second list generation program 222 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The first list A = [(a j , p j )] is input from the register 111 to the CPU 110 (second list generation means) from which the second list generation program 222 has been read. The square root b j = √ (1− (a j ) 2 ) is calculated from the real part a j of the first list A, and the second list A ′ = [(a j , b j , p j )] is generated. Then, the generated second list A ′ is output to and stored in the register 111 (list memory) (step S5).

次に、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の固有値の虚部b(1≦k≦v,1≦v≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該虚部bとその重複度qとの対からなる第3のリストB=[(b,q)]を生成し、生成した当該第3のリストBをレジスタ111(リストメモリ)に対して出力、格納する。 Next, the CPU 110 creates a list B (a pair of eigenvalues minus -1/2 times and a multiplicity) obtained by multiplying the eigenvalues of i · U + (i · U) * by −½ (step S6). That is, first, the CPU 110 reads the product operation program 241 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (first product operation means) from which the product operation program 241 has been read is supplied with the unitary matrix U and the imaginary unit i (stored in the register 111 in advance) from the register 111. The CPU 110 stores the unitary matrix. The product i · U of U and the imaginary unit i is calculated, and the product i · U is output to the register 111 and stored. Next, the CPU 110 reads the Hermite matrix calculation program 202 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (second Hermite matrix calculation means) into which the Hermitian matrix calculation program 202 has been read is supplied with the product i · U from the register 111, and the CPU 110 is the product i · U and its conjugate transpose matrix. A second Hermitian matrix i · U + (i · U) * , which is the sum of the second conjugate transpose matrix (i · U) * , is calculated and output to the register 111 and stored. Next, the CPU 110 reads and executes the Hermitian matrix eigenvalue calculation program 203 from the eigenvalue calculation program area 152 of the RAM 150. A second Hermite matrix i · U + (i · U) * is input from the register 111 to the CPU 110 (second Hermite matrix eigenvalue calculating means) into which the Hermite matrix eigenvalue calculating program 203 is read. The second eigenvalue, which is the eigenvalue of the second Hermitian matrix i · U + (i · U) * , is calculated and output to the register 111 and stored. Next, the CPU 110 reads the third list generation program 223 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. A second eigenvalue is input from the register 111 to the CPU 110 (third list generation means) into which the third list generation program 223 has been read. Then, the CPU 110 multiplies the second eigenvalue by −½ to obtain an imaginary part b k of the eigenvalue of the unitary matrix U (1 ≦ k ≦ v, 1 ≦ v ≦ n, and the unitary matrix is an n × n matrix) ) To generate a third list B = [(b k , q k )] consisting of the pair of the calculated imaginary part b k and its redundancy q k, and the generated third list B Is output to and stored in the register 111 (list memory).

次に、CPU110は、RAM150の固有値計算プログラム領域152から第2の判定プログラム212を読み出して実行する。この第2の判定プログラム212が読み込まれたCPU110(第2の判定手段)は、レジスタ111(リストメモリ)内の第2のリストA’=[(a,b,p)]からまだ調べていない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=[(b,q)]から、要素(b,q)と要素(−b,q’)とを抽出し、(a+b・i,q)及び(a−b・i,q’)を生成してレジスタ111に対して出力し、これらをレジスタ111の要素(a,b,p)と置き換える。また、第3のリストB=[(b,q)]に要素(b,q)或いは要素(−b,q’)の一方しか存在しなかった場合は、CPU110は、レジスタ111内の第3のリストB=[(b,q)]から、要素(b,q)或いは要素(−b,q’)の一方のみを抽出し、(a+b・i,q)(要素(b,q)が存在した場合)或いは(a−b・i,q’)(要素(−b,q’)が存在した場合)を生成してレジスタ111に対して出力し、これをレジスタ111の要素(a,b,p)と置き換える(ステップS9)。
Next, the CPU 110 reads the second determination program 212 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (second determination means) into which the second determination program 212 has been read is still from the second list A ′ = [(a j , b j , p j )] in the register 111 (list memory). One element (a, b, p) that has not been examined is extracted and stored in the register 111 (step S7), and whether or not a = 0 and the element (-a, b) is included in the second list A ′. , P ′) exists (step S8).
If it is determined that a = 0 or the element (−a, b, p ′) does not exist in the second list A ′, the CPU 110 loads the eigenvalue element generation program 231 from the eigenvalue calculation program area 152 of the RAM 150. Read and execute. Elements (a, b, p) are input from the register 111 to the CPU 110 (eigenvalue element generation means) from which the eigenvalue calculation program area 152 has been read. Further, the CPU 110 extracts the element (b, q) and the element (−b, q ′) from the third list B = [(b k , q k )] in the register 111, and (a + b · i, q) and (a−b · i, q ′) are generated and output to the register 111, and these are replaced with the element (a, b, p) of the register 111. When only one of the element (b, q) or the element (−b, q ′) exists in the third list B = [(b k , q k )], the CPU 110 stores the contents in the register 111. From the third list B = [(b k , q k )], only one of the element (b, q) or the element (−b, q ′) is extracted, and (a + b · i, q) (element (b , Q)) or (ab-i, q ′) (when element (−b, q ′) exists) is generated and output to the register 111. Replace with element (a, b, p) (step S9).

一方、ステップ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=[(b,q)]に要素(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 CPU 110 reads the third value from the eigenvalue calculation program area 152 of the RAM 150. The determination program 213 is read and executed. The CPU 110 (third determination means) that has read the third determination program 213 reads the element (a, b, p) extracted in step S8 from the register 111, and whether or not b = 0. In addition, it is determined 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 register 111 (step S10). ).

ここで、第3のリストB=[(b,q)]に要素(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=[(b,q)]に要素(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 CPU 110 reads the eigenvalue element generation program 231 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. Elements (a, b, p) and (−a, b, p ′) are input to the CPU 110 (eigenvalue element generation means) from which the eigenvalue calculation program area 152 has been read. ) And (−a, p ′) are generated and output to the register 111, and these are replaced with the elements (a, b, p) and (−a, b, p ′) and stored. If it is determined in step S10 that only one of the element (b, q) or the element (−b, q ′) exists in the third list B = [(b k , q k )], the eigenvalue The CPU 110 (eigenvalue element generation means) from which the calculation program area 152 has been read includes b ′ which is b or −b determined to exist, and elements (a, b, p) and (−a, b, p ′) is input, and the CPU 110 generates (a + b ′ · i, p) and (−a + b ′ · i, p ′) and outputs them to the register 111, and outputs them to the element (a, b, p). And (-a, b, p ') are replaced and stored (step S11). And after this step S11 processes, it progresses to step S12.

ステップS12では、第2の判定プログラム212が読み込まれたCPU110が、レジスタ111の第2のリストA’=[(a,b,p)]に、まだ調べていない要素が存在するか否かを判断する。これは、例えば、ステップS7で要素を抽出するたびにその要素にフラグをたてておき、そのフラグの有無を検索することによって行われる。また、ステップS7において、リストA’=[(a,b,p)]の先頭から順番に要素を抽出することとし、リスト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 CPU 110 into which the second determination program 212 has been read. Judge whether or not. This is performed, for example, by setting a flag for the element every time the element is extracted in step S7 and searching for the presence or absence of the flag. In step S7, elements are extracted in order from the top of the list A ′ = [(a j , b j , p j )], and depending on whether or not the last element of the list A ′ has been extracted. This determination may be made.

ここで、まだ調べていない要素が存在する場合にはステップS7に戻り、まだ調べていない要素が存在しない場合には、第2の判定プログラム212が読み込まれたCPU110が、リストA’=[(a,b,p)]に置き換えが行われていない要素が存在するか否かを判断する。この判断は、例えば、要素の置き換えを行うたびに、その要素にフラグをたてておき、そのフラグの有無を検索することによって行われる。
ここで、置き換えられていない要素が存在しないと判断された場合、CPU110は、各要素が置き換えられたレジスタ111のリストA’=[(a,b,p)]をバス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 CPU 110 into which the second determination program 212 has been read indicates that the list A ′ = [(( a.sub.j , b.sub.j , p.sub.j )] determines whether there is an element that has not been replaced. This determination is performed, for example, by setting a flag for each element and searching for the presence or absence of the flag every time the element is replaced.
Here, if it is determined that there is no element that has not been replaced, the CPU 110 outputs the list A ′ = [(a j , b j , p j )] of the register 111 in which each element is replaced with the bus 170 and the output. The data is output through the unit 130, and the process ends.

一方、まだ置き換えられていない要素が存在すると判断された場合、CPU110は以下の処理を実行する。なお、以下の処理は、ステップS10において、第3のリストB=[(b,q)]に要素(b,q)(b≠0)と要素(−b,q’)とが共に存在すると判定された場合の処理に相当する。
まず、W=i・Uとし、W+Wの固有値を−1/4倍したもののリストC(固有値の−1/4倍と重複度の対)を作成する(ステップS14)。すなわち、まず、CPU110は、RAM150の固有値計算プログラム領域152から積演算プログラム241を読み出して実行する。この積演算プログラム241が読み込まれたCPU110(第2の積演算手段)には、レジスタ111から積i・Uとユニタリ行列Uとが入力され、このCPU110は、当該ユニタリ行列Uと当該積i・Uとの積i・Uを算出して、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列算出プログラム202を読み込んで実行する。このエルミート行列算出プログラム202が読み込まれたCPU110(第3のエルミート行列算出手段)には、レジスタ111から積i・Uが入力され、このCPU110は、当該積i・Uとその共役転置行列である第3の共役転置行列(i・Uとの和である第3のエルミート行列i・U+(i・Uを算出して、レジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152からエルミート行列固有値算出プログラム203を読み込んで実行する。このエルミート行列固有値算出プログラム203が読み込まれたCPU110(第3のエルミート行列固有値算出手段)には、レジスタ111から第3のエルミート行列i・U+(i・Uが入力され、このCPU110は、当該第3のエルミート行列i・U+(i・Uの固有値である第3の固有値を算出してレジスタ111に出力、格納する。次に、CPU110は、RAM150の固有値計算プログラム領域152から第4のリスト生成プログラム223を読み込んで実行する。この第4のリスト生成プログラム223が読み込まれたCPU110(第4のリスト生成手段)には、レジスタ111から第3の固有値が入力される。そして、このCPU110は、当該第3の固有値を−1/4倍してユニタリ行列Uの固有値の実部a(1≦g≦w,1≦w≦n)と虚部bとの積a・bを算出し、算出した当該積a・bとその重複度rとの対からなる第4のリストC=[(a・b,r)]を生成し、生成した当該第4のリストCをレジスタ111(リストメモリ)に出力、格納する。
On the other hand, when it is determined that there is an element that has not been replaced yet, the CPU 110 executes the following processing. In the following processing, in step S10, the element (b, q) (b ≠ 0) and the element (−b, q ′) are both included in the third list B = [(b k , q k )]. This corresponds to the processing when it is determined that it exists.
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 CPU 110 reads the product operation program 241 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (second product operation means) into which the product operation program 241 has been read is supplied with the product i · U and the unitary matrix U from the register 111, and the CPU 110 receives the unitary matrix U and the product i · The product i · U 2 with U is calculated and stored in the register 111. Next, the CPU 110 reads the Hermite matrix calculation program 202 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (third Hermitian matrix calculation means) into which the Hermitian matrix calculation program 202 has been read is supplied with the product i · U 2 from the register 111, and the CPU 110 receives the product i · U 2 and its conjugate transpose matrix. The third Hermitian matrix i · U 2 + (i · U 2 ) * which is the sum of the third conjugate transpose matrix (i · U 2 ) * is calculated and output to the register 111 and stored. Next, the CPU 110 reads and executes the Hermitian matrix eigenvalue calculation program 203 from the eigenvalue calculation program area 152 of the RAM 150. A third Hermite matrix i · U 2 + (i · U 2 ) * is input from the register 111 to the CPU 110 (third Hermite matrix eigenvalue calculating means) into which the Hermite matrix eigenvalue calculating program 203 is read. The CPU 110 calculates a third eigenvalue that is an eigenvalue of the third Hermite matrix i · U 2 + (i · U 2 ) * , and outputs and stores it in the register 111. Next, the CPU 110 reads the fourth list generation program 223 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. A third eigenvalue is input from the register 111 to the CPU 110 (fourth list generation means) into which the fourth list generation program 223 has been read. Then, the CPU 110 multiplies the third eigenvalue by −1/4 and multiplies the real part a g (1 ≦ g ≦ w, 1 ≦ w ≦ n) of the eigenvalue of the unitary matrix U by the imaginary part b g. calculates a g · b g, a list of the fourth consisting of a pair of the calculated with the product a g · b g and its multiplicity r g C = [(a g · b g, r g)] to generate the The generated fourth list C is output and stored in the register 111 (list memory).

次に、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み取り実行する。ここで固有値要素生成プログラム231が読み込まれたCPU110(固有値要素生成手段)は、まず、レジスタ111から、まだ置き換えられていない第2のリストA’=[(a,b,p)]から要素(a,b,p)と(−a,b,p’)との対を1つ抽出し(ステップS15)、第3のリストB=[(b,q)]から要素(b,q)を抽出し(ステップS16)、第4のリストC=[(a・b,r)]から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’=[(a,b,p)]の(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 CPU 110 reads the eigenvalue element generation program 231 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. Here, the CPU 110 (eigenvalue element generation means) from which the eigenvalue element generation program 231 has been read is first, from the register 111, the second list A ′ = [(a j , b j , p j )] that has not been replaced yet. One pair of elements (a, b, p) and (−a, b, p ′) is extracted from (step S15), and an element (from the third list B = [(b k , q k )] ( b, extracts q) (step S16), and a list of the 4 C = [(a g · b g, r g)] corresponding to a · b from element (a · b, r) is extracted (step S17). Note that r = 0 if there is no element (a · b, r) corresponding to a · b. The CPU 110 calculates s = (− p ′ + q + r) / 2, and (a + bi, s), (a−bi, p−s), (−a + bi, q−s), and (−a−bi). , R−s), and the generated (a + bi, s), (a−bi, p−s), (−a + bi, q−s) and (−a−bi, rs) are stored in the register 111. Output, and replace (a, b, p) in the second list A ′ = [(a j , b j , p j )] with (a + bi, s) and (a−bi, p−s), (−a, b, p ′) is replaced with (−a + bi, q−s) and (−a−bi, r−s) and stored in the register 111 (step S18). It should be noted that here, those whose degree of overlap is 0 are excluded from the second list A ′.

次にCPU110は、レジスタ111を参照し、まだ置き換えられていない第2のリストA’=[(a,b,p)]の要素があるか否かを判断する(ステップS19)。ここで、まだ置き換えられていない要素があると判断された場合にはステップS15に戻り、置き換えられていない要素がないと判断された場合には、置き換えられた第2のリストA’=[(a,b,p)]をバス170及び出力部130を介して出力して処理を終了する。
次に、本形態の実施例を説明する。
Next, the CPU 110 refers to the register 111 and determines whether there is an element of the second list A ′ = [(a j , b j , p j )] that has not been replaced yet (step S19). If it is determined that there is an element that has not been replaced yet, the process returns to step S15. If it is determined that there is no element that has not been replaced, the second list A ′ = [(( a j , b j , p j )] are output via the bus 170 and the output unit 130, and the process is terminated.
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

Figure 0004260725
なお、実際には、U+Uを計算するためにUを計算したり、16個の成分をすべての計算したりする必要はなく、δ1≦δ2を満たすUの(δ1,δ2)成分と(δ2,δ1)成分の和を、ε1≦ε2を満たすU+Uの(ε1,ε2)成分(右上部分)として求め、それを転置したものをU+Uの左下成分(ε1≧ε2)とすればよい。もちろん、Uを計算し、U+Uの成分をすべての計算してもよい。
Figure 0004260725
Actually, it is not necessary to calculate t U or calculate all 16 components in order to calculate U + t U, and (δ1, δ2) components of U satisfying δ1 ≦ δ2 The sum of the (δ2, δ1) components is obtained as the (ε1, ε2) component (upper right part) of U + t U satisfying ε1 ≦ ε2, and the transposed one is the lower left component of U + t U (ε1 ≧ ε2) do it. Of course, t U may be calculated, and all components of U + t U may be calculated.

このU+Uをエルミート行列の固有値を求めるルーチン(あるいは、実対称行列の固有値を求めるルーチン) にかけると、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

Figure 0004260725
なお、実際には、U+Uを計算するためにUを計算したり、9個の成分をすべての計算したりする必要はなく、δ1≦δ2を満たすUの(δ1,δ2)成分と(δ2,δ1)成分の複素共役との和を、ε1≦ε2を満たすU+Uの(ε1,ε2)成分(右上部分)として求め、それを複素共役転置したものをU+Uの左下成分(ε1≧ε2)とすればよい。もちろん、Uを計算し、U+Uの成分をすべての計算してもよい(以下同様)。
Figure 0004260725
Actually, it is not necessary to calculate U * or calculate all nine components in order to calculate U + U *, and (δ1, δ2) components of U that satisfy δ1 ≦ δ2 and ( The sum of the (δ2, δ1) component and the complex conjugate is obtained as the (ε1, ε2) component (upper right part) of U + U * satisfying ε1 ≦ ε2, and the result obtained by transposing the complex conjugate transpose is the lower left component of U + U * (ε1 ≧ ε2). Of course, U * may be calculated, and all components of U + U * may be calculated (the same applies hereinafter).

この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に対して同様な計算を行うと以下のようになる。

Figure 0004260725
ここでも前と同様に、Vを計算したり、V+Vの全ての成分を計算したりする必要はない。
この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.
Figure 0004260725
As before, even here, you can calculate the V *, there is no need or to calculate all of the components of the V + V *.
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

Figure 0004260725
なお、実際には、U+Uを計算するためにUを計算したり、9個の成分をすべての計算したりする必要はなく、δ1≦δ2を満たすUの(δ1,δ2)成分と(δ2,δ1)成分の複素共役との和を、ε1≦ε2を満たすU+Uの(ε1,ε2)成分(右上部分)として求め、それを複素共役転置したものをU+Uの左下成分(ε1≧ε2)とすればよい。
Figure 0004260725
Actually, it is not necessary to calculate U * or calculate all nine components in order to calculate U + U *, and (δ1, δ2) components of U that satisfy δ1 ≦ δ2 and ( The sum of the (δ2, δ1) component and the complex conjugate is obtained as the (ε1, ε2) component (upper right part) of U + U * satisfying ε1 ≦ ε2, and the result obtained by transposing the complex conjugate transpose is the lower left component of U + U * (ε1 ≧ ε2).

この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.

Figure 0004260725
ここでも前と同様に、Vを計算したり、V+Vの全ての成分を計算したりする必要はない。
このV+Vエルミート行列の固有値を求めるルーチンにかけると、1.6000000,−1.9200000,−1.6000000という単根が返ってくる。
Figure 0004260725
As before, even here, you can calculate the V *, there is no need or to calculate all of the components of the V + V *.
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.

Figure 0004260725
ここでも前と同様、Wを計算したり、W+Wのすべての成分を計算したりする必要はない。
このW+Wをエルミート行列の固有値を求めるルーチンにかけると、単根−1.0752000と、二重根−1.9200000が返ってくる。これから、ステップS14で求まるリストCは、
[(0.26880000,1),(0.48000000,2)]
となる。
Figure 0004260725
As before Again, W to or calculation *, W + W * of it is not necessary or to calculate all the components.
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 eigenvalue calculation apparatus 10 of FIG.

[Uが実の場合]
ユニタリ行列Uが実の場合の処理は、第1の実施の形態と全く同じである。
[Uが複素の場合]
ユニタリ行列Uが複素の場合、まず、第1の実施の形態と同じくU+Uの固有値を求める。
まず、第1の実施の形態と同様、固有値計算装置10にユニタリ行列Uが入力され、Uが実の場合と同様にリストA=[(a,p)]が生成される。また、b=√(1−a )によって虚部bを求め、三つ組みのリストA’=[(a,b,p)]を生成する。
[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 eigenvalue calculation apparatus 10, and the list A = [(a j , p j )] is generated as in the case where U is real. Further, an imaginary part b j is obtained by b j = √ (1-a j 2 ), and a triple list A ′ = [(a j , b j , p j )] is generated.

ここで、もしリストA’=[(a,b,p)]に、(a,b,p),(−a,b,p’)(a≠0,±1)という対がなければ、第1の実施の形態で述べた通り、i・Uに対し、i・U+(i・U)の固有値を求めることにより、Uのすべての固有値の虚部が決まる。この処理は第1の実施の形態と同様であるため説明を省略する。
以下では、第1の実施の形態との相違点である、リストA’=[(a,b,p)]に(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の固有値候補a±b・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 eigenvalue calculation apparatus 10 to obtain a new list. However, in this case, the eigenvalue candidates a j ± b j · i (possible eigenvalue values) of the unitary matrix U taken arbitrarily are rotated by 2θ so that they do not overlap with other eigenvalue candidates. θ must be selected. Hereinafter, the reason will be described.
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の固有値候補a±b・iを2θ回転させたものが、他の固有値候補a±b・iと一致する場合を示している。この場合、ユニタリ行列Uの固有値候補a−b・iをθ回転させたものの実部aは、他の固有値候補a+b・iをθ回転させたものの実部aと一致する。そのため、β・U+(β・U)の固有値が2aとして求められたとしても、これが固有値候補a−b・iに対応するものか、他の固有値候補a+b・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−m)とおき、β=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 matrix calculation unit 11 of the eigenvalue calculation apparatus 10 (FIG. 1), and the Hermitian matrix calculation unit 11 receives the unitary matrix β · U. And a Hermitian matrix V ′ = β · U + (β · U) * , which is the sum of γ and its conjugate transpose matrix (β · U) * , are output. Next, the Hermitian matrix V ′ = β · U + (β · U) * is input to the Hermitian matrix eigenvalue calculating unit 12, and the Hermitian matrix eigenvalue calculating unit 12 receives the Hermite matrix V ′ = β · U + (β · U) *. On the other hand, a known routine for obtaining the eigenvalue of the Hermitian matrix is applied to obtain the eigenvalue of the Hermitian matrix V ′ ″ = β · U + (β · U) * . Here, since the real parts of the eigenvalue candidates a + b · i and a−b · i rotated by θ are a · m′−b · m and a · m ′ + b · m, respectively, the Hermitian matrix V ′ ″ The real part of the eigenvalue is 2 (a · m′−b · m) and 2 (a · m ′ + b · m) with respect to the real part a and the imaginary part b of the unitary matrix U. Here, even if the eigenvalues have a degree of overlap, the same eigenvalues are arranged for the degree of overlap.

算出されたエルミート行列V’’’は、リスト生成部13に送られる。リスト生成部13は、まず、送られたエルミート行列V’’’の固有値のうち共通する値をまとめ、さらに、その固有値を1/2倍した値c(1≦h≦x,1≦x≦n)とその重複度zとの対を生成し、それらからなるリストD=[(c,z)]を生成する。
そして、前述のリストA’=[(a,b,p)]と、リストD=[(c,z)]とを用い、ユニタリ行列の固有値の虚部を決定する。
<具体的な構成>
次に、本形態の具体的な構成について例示する。
The calculated Hermitian matrix V ′ ″ is sent to the list generator 13. First, the list generation unit 13 summarizes common values among the eigenvalues of the transmitted Hermite matrix V ′ ″, and further, a value c h (1 ≦ h ≦ x, 1 ≦ x) obtained by multiplying the eigenvalue by ½. ≦ n) and the duplication degree z h are generated, and a list D = [(c h , z h )] is generated.
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 eigenvalue calculation program 300 in this embodiment. As illustrated in this figure, the eigenvalue calculation program 300 includes a Hermitian matrix calculation program 202, a Hermitian matrix eigenvalue calculation program 203, first and second determination programs 211 and 212, first and fifth list generation programs 221, 321, An eigenvalue element generation program 231 and a product operation program 241 are included. In the eigenvalue calculation program 300, items that are the same as those in the first embodiment are denoted by the same reference numerals as in FIG.

<具体的な処理>
次に、本形態の具体的な処理について例示する。
図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=[(a,p)](固有値の1/2倍と重複度の対)を作成し、レジスタ111に格納する(ステップS20)。なお、この処理は、前述したステップ4の処理と同じである。
次に、CPU110は、第1のリストの各要素(a,p)に対し、平方根b=√(1−(a))を計算し、(a,p)を(a,b,p)で置き換えた第2のリストA’=[(a,b,p)]を作成し、レジスタ111(リストメモリ)に格納する(ステップS21)。なお、この処理は、前述したステップ5の処理と同じである。
First, the CPU 110 creates a first list A = [(a j , p j )] (a pair of eigenvalue ½ times multiplicity) related to the eigenvalue of U + U * multiplied by ½, Store in the register 111 (step S20). This process is the same as the process in step 4 described above.
Next, the CPU 110 calculates a square root b = √ (1− (a) 2 ) for each element (a, p) in the first list, and sets (a, p) to (a, b, p). The second list A ′ = [(a j , b j , p j )] replaced with is created and stored in the register 111 (list memory) (step S21). This process is the same as the process in step 5 described above.

次に、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=[(b,q)](固有値の−1/2倍と重複度の対)を作成し、生成した当該第3のリストBをレジスタ111(リストメモリ)に対して出力、格納する(ステップS23)。なお、この処理は前述したステップS6と同様である。
Next, the CPU 110 reads the second determination program 212 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 into which the second determination program 212 has been read includes elements (a, b, p) and (−a, b, −p ′) (a ≠ 0, ± 1) in the second list A ′ of the register 111. It is determined whether there is a pair (step S22).
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 CPU 110 Create a third list B = [(b k , q k )] (a pair of eigenvalues -1/2 times and multiplicity) of e · U + (i · U) * eigenvalues multiplied by −½ Then, the generated third list B is output to and stored in the register 111 (list memory) (step S23). This process is the same as step S6 described above.

次に、CPU110は、RAM150の固有値計算プログラム領域152から第2の判定プログラム212を読み出して実行する。この第2の判定プログラム212が読み込まれたCPU110(第2の判定手段)は、レジスタ111(リストメモリ)内の第2のリストA’=[(a,b,p)]からまだ調べていない1つの要素(a,b,p)を抽出してレジスタ111に格納する(ステップS24)。
次に、CPU110は、RAM150の固有値計算プログラム領域152から固有値要素生成プログラム231を読み出して実行する。この固有値計算プログラム領域152が読み込まれたCPU110(固有値要素生成手段)には、レジスタ111から要素(a,b,p)が入力される。また、このCPU110は、レジスタ111内の第3のリストB=[(b,q)]から、要素(b,q)と要素(−b,q’)とを抽出し、(a+b・i,q)及び(a−b・i,q’)を生成してレジスタ111に対して出力し、これらをレジスタ111の要素(a,b,p)と置き換える。また、第3のリストB=[(b,q)]に要素(b,q)或いは要素(−b,q’)の一方しか存在しなかった場合は、CPU110は、レジスタ111内の第3のリストB=[(b,q)]から、要素(b,q)或いは要素(−b,q’)の一方のみを抽出し、(a+b・i,q)(要素(b,q)が存在した場合)或いは(a−b・i,q’)(要素(−b,q’)が存在した場合)を生成してレジスタ111に対して出力し、これをレジスタ111の要素(a,b,p)と置き換える(ステップS25)。
Next, the CPU 110 reads the second determination program 212 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (second determination means) into which the second determination program 212 has been read is still from the second list A ′ = [(a j , b j , p j )] in the register 111 (list memory). One element (a, b, p) that has not been examined is extracted and stored in the register 111 (step S24).
Next, the CPU 110 reads the eigenvalue element generation program 231 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. Elements (a, b, p) are input from the register 111 to the CPU 110 (eigenvalue element generation means) from which the eigenvalue calculation program area 152 has been read. Further, the CPU 110 extracts the element (b, q) and the element (−b, q ′) from the third list B = [(b k , q k )] in the register 111, and (a + b · i, q) and (a−b · i, q ′) are generated and output to the register 111, and these are replaced with the element (a, b, p) of the register 111. If only one of the element (b, q) or the element (−b, q ′) is present in the third list B = [(b k , q k )], the CPU 110 stores the contents in the register 111. From the third list B = [(b k , q k )], only one of the element (b, q) or the element (−b, q ′) is extracted, and (a + b · i, q) (element (b , Q)) or (ab-i, q ′) (when element (−b, q ′) exists) is generated and output to the register 111. Replace with element (a, b, p) (step S25).

次に、第2の判定プログラム212が読み込まれたCPU110が、レジスタ111の第2のリストA’=[(a,b,p)]に、まだ調べていない要素が存在するか否かを判断する。ここで、まだ調べていない要素が存在すると判断された場合にはステップS24に戻り、調べていない要素が存在しないと判断された場合には、上述のように置き換えられた第2のリストA’=[(a,b,p)]がバス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’)+m=1)を設定し、これをレジスタ111に出力して格納する。つまり、まず、このCPU110は、レジスタ111の第2のリストA’=[(a,b,p)]の要素(a,b,p)をaの大きさ順に並び替えた第6のリストA’’を生成し、これをレジスタ111に格納する(ステップS27)。また、このCPU110は、レジスタ111内の第6のリストA’’の隣り合う要素(a,b,p)及び(a’,b’,p’)の全ての対に対してa・b’−a’・bを計算し、その最小値の1/2をmとして算出し、m’=√(1−m)を算出し、複素数β=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 CPU 110 into which the second determination program 212 has been read. Determine whether. If it is determined that there is an element that has not been checked yet, the process returns to step S24. If it is determined that there is no element that has not been checked, the second list A ′ replaced as described above. = [(A j , b j , p j )] is output through the bus 170 and the output unit 130, and the process is terminated.
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 CPU 110 reads the complex number setting program 362 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The complex number setting program 362 in this example is a program for generating a suitable complex number β by the above-described “method of setting 2θ smaller than the minimum angle between eigenvalue candidates”. The CPU 110 (complex number setting means) into which the complex number setting program 362 has been read follows the above-mentioned “method of setting 2θ smaller than the minimum angle between eigenvalue candidates” and complex numbers β = m ′ + m · i (i is an imaginary unit, (M ′) 2 + m 2 = 1) is set, and this is output to the register 111 and stored. That is, first, the CPU 110 sorts the elements (a, b, p) of the second list A ′ = [(a j , b j , p j )] in the register 111 in the order of a j . 6 list A ″ is generated and stored in the register 111 (step S27). In addition, the CPU 110 applies a · b ′ to all pairs of adjacent elements (a, b, p) and (a ′, b ′, p ′) of the sixth list A ″ in the register 111. -A ′ · b is calculated, 1/2 of the minimum value is calculated as m, m ′ = √ (1−m 2 ) is calculated, and complex number β = m ′ + m · i is set. The data is output to and stored in the register 111 (step S28).

次に、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 CPU 110 deletes the elements (a, b, p) (except for a = 1, −1) of the sixth list A ″ in the register 111 (a, b, p, a · m′−b). (M, a · m ′ + b · m) and this sixth list A ″ is stored in the register 111 (step S29).
Next, the CPU 110 creates a list D (a pair of ½ times the eigenvalue and the degree of overlap) obtained by halving the eigenvalue of β · U + (β · U) * (step S30). That is, first, the CPU 110 reads the product operation program 241 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The unit 110 and the complex number β are input from the register 111 to the CPU 110 (third product calculation means) into which the product calculation program 241 has been read. The CPU 110 calculates the product β of the unitary matrix U and the complex number β. Calculate U and output to register 111 for storage.

次に、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倍した値c(1≦h≦x,1≦x≦n)を算出し、算出した当該値cとその重複度zとの対からなる第5のリストD=[(c,z)]を生成し、生成した当該第5のリストDをレジスタ111(リストメモリ)に出力、格納する。 Next, the CPU 110 reads the Hermite matrix calculation program 202 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The product β · U is input from the register 111 to the CPU 110 (fourth Hermitian matrix calculation means) into which the Hermitian matrix calculation program 202 has been read. The fourth Hermitian matrix β · U + (β · U) *, which is the sum of the four conjugate transpose matrices (β · U) *, is calculated and output to the register 111 and stored. Next, the CPU 110 reads the Hermite matrix eigenvalue calculation program 203 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (fourth Hermitian matrix eigenvalue calculating means) into which the Hermitian matrix eigenvalue calculating program 203 has been read is inputted with the fourth Hermitian matrix β · U + (β · U) * from the register 111. The fourth eigenvalue, which is the eigenvalue of the fourth Hermitian matrix β · U + (β · U) *, is calculated and output to the register 111 and stored. Next, the CPU 110 reads the fifth list generation program 321 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The fourth eigenvalue is input from the register 111 to the CPU 110 (fifth list generation means) into which the fifth list generation program 321 has been read. Then, the CPU 110 calculates a value c h (1 ≦ h ≦ x, 1 ≦ x ≦ n) obtained by halving the fourth eigenvalue, and calculates the calculated value c h and the degree of overlap z h . A fifth list D = [(c h , z h )] is generated, and the generated fifth list D is output and stored in the register 111 (list memory).

次に、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=[(c,z)]に、要素(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 CPU 110 reads the eigenvalue element generation program 231 from the eigenvalue calculation program area 152 of the RAM 150 and executes it. The CPU 110 (eigenvalue element generation means) into which the eigenvalue element generation program 231 has been read first starts with the elements (a, b, p, a · m′−b ·) of the sixth list A ″ not yet checked from the register 111. m, a · m ′ + b · m) is read (step S31). Next, the CPU 110 determines whether or not a of the read element (a, b, p, a · m′−b · m, a · m ′ + b · m) is 1 or −1 ( Step S32a). If a is 1 or −1, the read element (a, b, p, a · m′−b · m, a · m ′ + b · m) is replaced with (a, p). Is stored in the register 111 and the process proceeds to step S33. On the other hand, if a is not 1 or −1, the CPU 110 adds the element (a · m′−b · m, z) or the fifth list D = [(c h , z h )] of the register 111 or Whether or not (a · m ′ + b · m, z ′) exists is searched (step S32c). If it is determined that it does not exist, the process proceeds to step S33, and if it is determined that it exists, it further specifies which one is present (step S32d). If it is determined that the elements (a · m′−b · m, z) and (a · m ′ + b · m, z ′) exist, the elements (a + b · i, z) and (a− b · i, z ′) and the element (a, b, p, a · m′−b · m, a · m ′ + b · m) is replaced with these two and output to the register 111, Store (step S32e). If it is determined that only the element (a · m′−b · m, z) exists, the element (a + b · i, z) is generated and the element (a, b, p, a · m ′) is generated. (−b · m, a · m ′ + b · m) is replaced with this and output to and stored in the register 111 (step S32f). If it is determined that only the element (a · m ′ + b · m, z ′) exists, the element (a−b · i, z ′) is generated and the element (a, b, p, a) is generated. (M′−b · m, a · m ′ + b · m) is replaced with this and output and stored in the register 111 (step S32g). Then, the process proceeds to step S33.

ステップS33では、CPU110が、レジスタ111からまだ調べていない第6のリストA’’の要素があるか否かを判断する(ステップS33)。ここで、まだ調べていない要素があると判断された場合には、ステップS31に戻り、調べていない要素がないと判断された場合には、レジスタ111の要素が置き換えられた第6のリストA’’をバス170及び出力部130を通じて出力し、処理を終了する。
図13は、複素数設定プログラム362が、前述の「ランダムに選択する方法」により好適な複素数βを生成するためのプログラムである場合の処理を示したフローチャートである。なお、この場合、前述のステップS27〜S33の代わりにステップS41〜S48の処理が実行される。
In step S33, the CPU 110 determines whether there is an element of the sixth list A ″ that has not been checked from the register 111 (step S33). Here, if it is determined that there is an element that has not been checked yet, the process returns to step S31. If it is determined that there is no element that has not been checked, the sixth list A in which the element of the register 111 is replaced. '' Is output through the bus 170 and the output unit 130, and the process ends.
FIG. 13 is a flowchart showing processing when the complex number setting program 362 is a program for generating a suitable complex number β by the above-described “random selection method”. In this case, steps S41 to S48 are executed instead of the above-described steps S27 to S33.

ステップS41では、複素数設定プログラム362が読み込まれたCPU110(複素数設定手段)には、レジスタ111から第2のリストA’=[(a,b,p)]が入力され、このCPU110は、複素数β=m’+m・iをランダムに生成して(ステップS41)、仮リスト[(a・m’−b・m,a・m’+b・m)]を生成し、レジスタ111に格納する(ステップS42)。次に、このCPU110は、レジスタ111の仮リスト[(a・m’−b・m,a・m’+b・m)]を検索し、当該仮リスト[(a・m’−b・m,a・m’+b・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 number setting program 362 has been read. Then, a complex number β = m ′ + m · i is randomly generated (step S41), and a temporary list [(a j · m′−b j · m, a j · m ′ + b j · m)] is generated, Store in the register 111 (step S42). Then, the CPU110, the temporary list of register 111 [(a j · m'- b j · m, a j · m '+ b j · m)] searching, the temporary list [(a j · m' -b j · m, a j · m '+ b j · m)] duplicate element is not or is determined (step S43). If it is determined that there is an overlapping element, the process returns to step S41. On the other hand, if it is determined that there is no overlapping of elements, the complex number β = m ′ + m · i randomly generated in step S41 is output to the register 111 and stored.

次に、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 CPU 110 deletes the elements (a, b, p) (except for a = 1, −1) of the second list A ′ in the register 111 (a, b, p, a · m′−b · m, a · m ′ + b · m), and this sixth list A ″ is stored in the register 111 (step S44).
Next, the CPU 110 creates a list D (a pair of ½ times the unique value and the degree of overlap) obtained by halving the unique value of β · U + (β · U) * (step S45). This process is the same as step S30.
Next, the CPU 110 (eigenvalue element generation means) into which the eigenvalue element generation program 231 has been read is not yet checked from the register 111, but the elements (a, b, p, a · m′−b ·) of the second list A ′. m, a · m ′ + b · m) is read (step S46), and the element (a, b, p, a · m′−b · m, a · m ′ + b · m) is obtained by the same processing as in step S32. Is replaced (step S47). Then, the CPU 110 determines whether there is an element of the second list A ′ that has not been checked from the register 111 (step S48). If it is determined that there is an element that has not been checked yet, the process returns to step S46, and if it is determined that there is no element that has not been checked, the second list A in which the element of the register 111 is replaced. 'Is output through the bus 170 and the output unit 130, and the process ends.

<実施例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−m)=√(1−0.17600000)=√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に対し、前と同じように計算すると以下のようになる。

Figure 0004260725
ここでも前と同様、Vを計算したり、V+Vのすべての成分を計算したりする必要はない。
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.
Figure 0004260725
As before, even here, you can calculate the V *, there is no need or to calculate all of the components of the V + V *.
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 hard disk device 140, and processing according to this program is described above. It is executed as follows. However, each time the program is transferred from the server computer to the eigenvalue calculation apparatus, the processing according to the received program may be executed sequentially. In addition, the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes processing functions only by the execution instruction and result acquisition without transferring the program from the server computer to the eigenvalue calculation apparatus. It is good also as composition to do. Note that the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).

また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。   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.)

本形態における固有値計算装置の基本的な構成を示したブロック図である。It is the block diagram which showed the basic composition of the eigenvalue calculation apparatus in this form. 第1の実施の形態において、リストA’に(a,b,p),(−a,b,p’)(a≠0)という対があり、しかも、リストBに(b,q),(−b,q’)(b≠0)という対がある場合に固有値が特定できない理由を説明するための図である。In the first embodiment, there is a pair (a, b, p), (−a, b, p ′) (a ≠ 0) in the list A ′, and (b, q), It is a figure for demonstrating the reason an eigenvalue cannot be specified when there exists a pair of (-b, q ') (b ≠ 0). 第1の実施の形態における固有値計算装置の構成を例示したブロック図である。It is the block diagram which illustrated the composition of the eigenvalue calculation device in a 1st embodiment. 第1の実施の形態における固有値計算プログラムの構成を例示した概念図である。It is the conceptual diagram which illustrated the structure of the eigenvalue calculation program in 1st Embodiment. 第1の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 1st Embodiment. 第1の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 1st Embodiment. 第1の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 1st Embodiment. 第2の実施の形態において回転各θが不適切である場合を示す図である。It is a figure which shows the case where rotation each (theta) is inappropriate in 2nd Embodiment. 第2の実施の形態における固有値計算プログラム300の構成を例示した概念図である。It is the conceptual diagram which illustrated the structure of the eigenvalue calculation program 300 in 2nd Embodiment. 第2の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 2nd Embodiment. 第2の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 2nd Embodiment. 図11におけるステップS32の処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process of step S32 in FIG. 第2の実施の形態における固有値要素生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating the eigenvalue element production | generation process in 2nd Embodiment.

符号の説明Explanation of symbols

10,100 固有値計算装置
11 エルミート行列算出部
12 エルミート行列固有値算出部
13 リスト生成部
10,100 eigenvalue calculation device 11 Hermitian matrix calculation unit 12 Hermitian matrix eigenvalue calculation unit 13 list generation unit

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が入力され、当該ユニタリ行列Uが実行列であるか否かを判定する第1の判定手段と、
前記ユニタリ行列Uが入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列Uとの和である第1のエルミート行列U+Uを算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+Uが入力され、当該第1のエルミート行列U+Uの固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出した前記ユニタリ行列Uの固有値の実部a(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pとの対からなる第1のリストA=[(a,p)]を生成して出力する第1のリスト生成手段と、
前記ユニタリ行列Uが実行列であると判定された場合に、前記第1のリストA=[(a,p)]が入力され、その実部aから平方根b=√(1−(a)を算出し、固有値リスト[(a+b・i),p/2],[(a−b・i),p/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が入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列Uとの和である第1のエルミート行列U+Uを算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+Uが入力され、当該第1のエルミート行列U+Uの固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出した前記ユニタリ行列Uの固有値の実部a(1≦j≦u,1≦u≦n,当該ユニタリ行列Uはn×n行列)とその重複度pとの対からなる第1のリストA=[(a,p)]を生成して出力する第1のリスト生成手段と、
前記第1のリストA=[(a,p)]が入力され、この実部aから平方根b=√(1−(a)を算出し、第2のリストA’=[(a,b,p)]を生成し、生成した当該第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の固有値の虚部b(1≦k≦v,1≦v≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該虚部bとその重複度qとの対からなる第3のリストB=[(b,q)]を生成し、生成した当該第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:
請求項3記載の固有値計算装置であって、
前記第2のリストA’=[(a,b,p)]及び前記第3のリストB=[(b,q)]が入力され、これらを格納するリストメモリと、
前記リストメモリ内の前記第2のリストA’=[(a,b,p)]から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=[(b,q)]から、要素(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:
請求項4記載の固有値計算装置であって、
前記第2の判定手段において、前記要素(−a,b,p’)(a≠0)が前記第2のリストA’に存在すると判定された場合、b=0であるか否か、及び前記リストメモリ内の前記第3のリストB=[(b,q)]に要素(b,q)と要素(−b,q’)とが共に存在するか否かを判定する第3の判定手段を有し、
前記固有値要素生成手段は、
前記第3の判定手段においてb=0であると判定された場合、前記要素(a,b,p)及び(−a,b,p’)が入力され、(a,p)及び(−a,p’)を生成して出力し、
前記第3の判定手段において前記第3のリストB=[(b,q)]に前記要素(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.
請求項5記載の固有値計算装置であって、
前記積i・Uと前記ユニタリ行列Uとが入力され、当該ユニタリ行列Uと当該積i・Uとの積i・Uを算出して出力する第2の積演算手段と、
前記積i・Uが入力され、当該積i・Uとその共役転置行列である第3の共役転置行列(i・Uとの和である第3のエルミート行列i・U+(i・Uを算出して出力する第3のエルミート行列算出手段と、
前記第3のエルミート行列i・U+(i・Uが入力され、当該第3のエルミート行列i・U+(i・Uの固有値である第3の固有値を算出して出力する第3のエルミート行列固有値算出手段と、
前記第3の固有値が入力され、当該第3の固有値を−1/4倍して前記ユニタリ行列Uの固有値の実部a(1≦g≦w,1≦w≦n)と虚部bとの積a・bを算出し、算出した当該積a・bとその重複度rとの対からなる第4のリストC=[(a・b,r)]を生成し、生成した当該第4のリストCを出力する第4のリスト生成手段と、
を有し、
前記リストメモリは、
さらに前記第4のリストCを格納し、
前記固有値要素生成手段は、
前記第3の判定手段において、前記リストメモリ内の前記第3のリストB=[(b,q)]に要素(b,q)(b≠0)と要素(−b,q’)とが共に存在すると判定された場合に、
前記リストメモリ内の前記第2のリストA’=[(a,b,p)]から前記要素(a,b,p)と(−a,b,p’)との対を抽出し、前記第3のリストB=[(b,q)]から前記要素(b,q)を抽出し、前記第4のリストC=[(a・b,r)]から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が入力され、当該ユニタリ行列Uとその共役転置行列である第1の共役転置行列Uとの和である第1のエルミート行列U+Uを算出して出力する第1のエルミート行列算出手段と、
前記第1のエルミート行列U+Uが入力され、当該第1のエルミート行列U+Uの固有値である第1の固有値を算出して出力する第1のエルミート行列固有値算出手段と、
前記第1の固有値が入力され、当該第1の固有値を1/2倍して前記ユニタリ行列Uの固有値の実部を算出し、算出したユニタリ行列の固有値の実部a(1≦j≦u,1≦u≦n)とその重複度pとの対からなる第1のリストA=[(a,p)]を生成して出力する前記第1のリスト生成手段と、
前記第1のリストA=[(a,p)]が入力され、この実部aから平方根b=√(1−(a)を算出し、第2のリストA’=[(a,b,p)]を生成し、生成した当該第2のリストA’を出力する前記第2のリスト生成手段と、
複素数β=m’+m・i(iは虚数単位、(m’)+m=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倍した値c(1≦h≦x,1≦x≦n,当該ユニタリ行列はn×n行列)を算出し、算出した当該値cとその重複度zとの対からなる第5のリストD=[(c,z)]を生成し、生成した当該第5のリストDを出力する第5のリスト生成手段と、
前記第2のリストA’=[(a,b,p)]及び前記第5のリストD=[(c,z)]が入力され、これらを格納するリストメモリと、
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:
請求項7記載の固有値計算装置であって、
前記複素数設定手段は、
前記第2のリストA’=[(a,b,p)]の要素をaの大きさ順に並び替えた第6のリストA’’を生成し、当該第6のリストA’’の隣り合う要素(a,b,p)及び(a’,b’,p’)の全ての対に対してa・b’−a’・bを計算し、その最小値の1/2をmとして算出し、m’=√(1−m)を算出し、前記複素数β=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.
請求項7記載の固有値計算装置であって、
前記複素数設定手段は、
前記第2のリストA’=[(a,b,p)]が入力され、複素数β=m’+m・iをランダムに生成し、仮リスト[(a・m’−b・m,a・m’+b・m)]を生成し、当該仮リスト[(a・m’−b・m,a・m’+b・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:
請求項1から9の何れかに記載の固有値計算装置としてコンピュータを機能させるための固有値計算プログラム。   An eigenvalue calculation program for causing a computer to function as the eigenvalue calculation apparatus according to claim 1. 請求項11記載の固有値計算プログラムを格納したコンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing the eigenvalue calculation program according to claim 11.
JP2004329130A 2004-11-12 2004-11-12 Eigenvalue calculation device, eigenvalue calculation method, eigenvalue calculation program, and recording medium Expired - Fee Related JP4260725B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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 &#34; repeating until success &#34; 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