§E20.9特異値分解の数値計算と数値的階数

最終更新

特異値分解A=UΣVTA=U\Sigma V^{\mathsf T}の特異値は、入力の誤差に対して安定な量である。AAに同じ形の行列EEを加えても、各特異値の変化は∥E∥2\lVert E\rVert_2を超えない。これに対して、正の特異値の個数である階数はわずかな摂動で変わる。たとえば0<δ≤10<\delta\le1に対して行列(11δ−δ)\begin{pmatrix}1&1\\\delta&-\delta\end{pmatrix}は階数22であるが、2 ノルムで2δ\sqrt2\deltaだけ離れたところに階数11の行列(1100)\begin{pmatrix}1&1\\0&0\end{pmatrix}があり、δ\deltaはいくらでも小さくとることができる。したがって、誤差を含む行列の階数は、誤差の大きさを定めずには判定することができない。

そこで許容量τ≥0\tau\ge0を定め、τ\tauを超える特異値の個数を数値的階数という。数値的階数は、AAから 2 ノルムでτ\tau以内にある行列の階数の最小値に等しい。観測した行列AAともとの行列A0A_0の差の 2 ノルムがε1\varepsilon_1以下であり、計算した各特異値とAAの対応する特異値の差がε2\varepsilon_2以下であるとし、ε:=ε1+ε2\varepsilon:=\varepsilon_1+\varepsilon_2と置く。計算した特異値のいずれも区間(τ−ε,τ+ε](\tau-\varepsilon,\tau+\varepsilon]に属さなければ、A0A_0の数値的階数は、計算した特異値のうちτ\tauを超えるものの個数に等しい。この判定には特異値そのものを誤差の上界とともに計算することが要るが、Gram 行列ATAA^{\mathsf T}Aを浮動小数点算術で作ると小さい特異値の情報が失われることがあるので、Householder 二重対角化や一側 Jacobi 法のように、特異値を変えない直交変換をAAに直接施す方法を用いる。

本記事では、特異値分解の計算法と、数値的階数とそれを用いた最小二乗問題の解法について解説する。

1 特異値と直交変換

補題 1.1.A∈Rm×nA\in\R^{m\times n}とし、p:=min⁡{m,n}p:=\min\{m,n\}、AAの特異値(§D3.18 定理 1.2)をσ1(A)≥⋯≥σp(A)\sigma_1(A)\ge\dots\ge\sigma_p(A)と書く。P∈Rm×mP\in\R^{m\times m}とQ∈Rn×nQ\in\R^{n\times n}を直交行列とすると、1≤i≤p1\le i\le pについてσi(PAQ)=σi(A)\sigma_i(PAQ)=\sigma_i(A)であり、∥PAQ∥2=∥A∥2\lVert PAQ\rVert_2=\lVert A\rVert_2である。

証明.§D3.18 定理 1.2により、直交行列U∈Rm×mU\in\R^{m\times m}、V∈Rn×nV\in\R^{n\times n}と、(i,i)(i,i)成分がσi(A)\sigma_i(A)(1≤i≤p1\le i\le p)でその他の成分が00のΣ∈Rm×n\Sigma\in\R^{m\times n}が存在してA=UΣVTA=U\Sigma V^{\mathsf T}である。PUPUとQTVQ^{\mathsf T}Vは直交行列であり、PAQ=(PU)Σ(QTV)TPAQ=(PU)\Sigma(Q^{\mathsf T}V)^{\mathsf T}は§D3.18 定理 1.2の形のPAQPAQの分解であるから、§D3.18 命題 2.1によりσi(PAQ)=σi(A)\sigma_i(PAQ)=\sigma_i(A)である。§E20.6 補題 2.1 (1)により∥PAQ∥2=σ1(PAQ)=σ1(A)=∥A∥2\lVert PAQ\rVert_2=\sigma_1(PAQ)=\sigma_1(A)=\lVert A\rVert_2である。▨

例 1.2.0<δ≤10<\delta\le1に対して

Aδ:=(11δ−δ),V:=12(111−1)A_\delta:=\begin{pmatrix}1&1\\\delta&-\delta\end{pmatrix},\qquad V:=\frac1{\sqrt2}\begin{pmatrix}1&1\\1&-1\end{pmatrix}

と置く。VVは対称な直交行列であり、AδV=diag⁡(2,2δ)A_\delta V=\operatorname{diag}(\sqrt2,\sqrt2\delta)であるから、Aδ=I2diag⁡(2,2δ)VTA_\delta=I_2\operatorname{diag}(\sqrt2,\sqrt2\delta)V^{\mathsf T}は§D3.18 定理 1.2の形の分解であり、σ1(Aδ)=2\sigma_1(A_\delta)=\sqrt2、σ2(Aδ)=2δ\sigma_2(A_\delta)=\sqrt2\deltaである。AδA_\deltaの列は一次独立であるから、§E20.6 命題 2.3により、列の内積を並べた Gram 行列

G:=AδTAδ=(1+δ21−δ21−δ21+δ2)G:=A_\delta^{\mathsf T}A_\delta=\begin{pmatrix}1+\delta^2&1-\delta^2\\1-\delta^2&1+\delta^2\end{pmatrix}

の固有値は22と2δ22\delta^2であり、κ2(G)=κ2(Aδ)2=δ−2\kappa_2(G)=\kappa_2(A_\delta)^2=\delta^{-2}である。

F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)、fl⁡\operatorname{fl}を最近接偶数丸めとし、δ:=2−27\delta:=2^{-27}とする。AδA_\deltaの成分はFFの元であり、積δ⋅δ=2−54\delta\cdot\delta=2^{-54}は正確に計算される。1+2−541+2^{-54}の最近接点は11であり、1−2−541-2^{-54}は1−2−531-2^{-53}と11の中点であって、最近接偶数丸めにより仮数が偶数の11に丸められる。したがって浮動小数点算術で作った Gram 行列はG^=(1111)\widehat G=\begin{pmatrix}1&1\\1&1\end{pmatrix}であり、その固有値は22と00である。w:=(1,−1)/2w:=(1,-1)/\sqrt2と置くとG^−G=−2δ2wwT\widehat G-G=-2\delta^2ww^{\mathsf T}であり、∥wwTh∥2=∣wTh∣≤∥h∥2\lVert ww^{\mathsf T}h\rVert_2=\lvert w^{\mathsf T}h\rvert\le\lVert h\rVert_2でh=wh=wのとき等号が成り立つから∥G^−G∥2=2δ2\lVert\widehat G-G\rVert_2=2\delta^2であって、§E20.8 定理 4.3の評価∣λ1(G^)−λ1(G)∣≤2δ2\lvert\lambda_1(\widehat G)-\lambda_1(G)\rvert\le2\delta^2は等号で成り立つ。κ2(G)=254\kappa_2(G)=2^{54}は1/u=2531/u=2^{53}を超える。

2 二重対角化

定義 2.1.m≥nm\ge nとし、B=(bij)∈Rm×nB=(b_{ij})\in\R^{m\times n}とする。j≠ij\ne iかつj≠i+1j\ne i+1を満たすすべての(i,j)(i,j)についてbij=0b_{ij}=0であるとき、BBを 上二重対角行列 (upper bidiagonal matrix) という。

定義 2.2.m≥n≥1m\ge n\ge1を整数とし、A∈Rm×nA\in\R^{m\times n}とする。作業行列W=(wij)∈Rm×nW=(w_{ij})\in\R^{m\times n}をW:=AW:=Aで初期化し、k=1,…,nk=1,\dots,nの順に次の段kkを行う計算式を、AAの Householder 二重対角化 (Householder bidiagonalization) という。

  1. ℓ:=m−k+1\ell:=m-k+1、x:=(wkk,…,wmk)∈Rℓx:=(w_{kk},\dots,w_{mk})\in\R^\ellと置く。x≠0x\ne0ならば、xxから§E20.6 定義 3.4 (2)の計算式でα\alpha、ss、vv、ppを定め、wkkw_{kk}を−sα-s\alphaに、wikw_{ik}(k<i≤mk<i\le m)を00に置き換え、j=k+1,…,nj=k+1,\dots,nの順に、y:=(wkj,…,wmj)y:=(w_{kj},\dots,w_{mj})に§E20.6 定義 3.4 (4)の計算式を施して(wkj,…,wmj)(w_{kj},\dots,w_{mj})を(yi−τvi)1≤i≤ℓ(y_i-\tau v_i)_{1\le i\le\ell}の値に置き換える。x=0x=0ならば何も行わない。
  2. k≤n−2k\le n-2ならば、(1)の後のWWについてℓ′:=n−k\ell':=n-k、x′:=(wk,k+1,…,wkn)∈Rℓ′x':=(w_{k,k+1},\dots,w_{kn})\in\R^{\ell'}と置く。x′≠0x'\ne0ならば、x′x'から§E20.6 定義 3.4 (2)の計算式でα′\alpha'、s′s'、v′v'、p′p'を定め、wk,k+1w_{k,k+1}を−s′α′-s'\alpha'に、wkjw_{kj}(k+1<j≤nk+1<j\le n)を00に置き換え、i=k+1,…,mi=k+1,\dots,mの順に、z:=(wi,k+1,…,win)z:=(w_{i,k+1},\dots,w_{in})に§E20.6 定義 3.4 (4)の計算式をv′v'、p′p'で施して(wi,k+1,…,win)(w_{i,k+1},\dots,w_{in})を(zj−τvj′)1≤j≤ℓ′(z_j-\tau v'_j)_{1\le j\le\ell'}の値に置き換える。k>n−2k>n-2またはx′=0x'=0ならば何も行わない。

段nnの後のWWをこの計算式の出力という。

定理 2.3.m≥n≥1m\ge n\ge1を整数とし、A∈Rm×nA\in\R^{m\times n}とする。

  1. AAの Householder 二重対角化を厳密算術で実行し、その出力をBBとする。段kkの定義 2.2 (1)のxxが00ならばLk:=ImL_k:=I_m、00でないならば段kkのvvによりLk:=diag⁡(Ik−1,Hv)L_k:=\operatorname{diag}(I_{k-1},H_v)と置く。k≤n−2k\le n-2であり段kkの定義 2.2 (2)でx′≠0x'\ne0ならば段kkのv′v'によりRk:=diag⁡(Ik,Hv′)R_k:=\operatorname{diag}(I_k,H_{v'})、それ以外のkkではRk:=InR_k:=I_nと置く。U:=L1⋯LnU:=L_1\cdots L_nとV:=R1⋯RnV:=R_1\cdots R_nは直交行列であり、BBは上二重対角行列であってB=UTAVB=U^{\mathsf T}AVが成り立つ。さらに1≤i≤n1\le i\le nについてσi(B)=σi(A)\sigma_i(B)=\sigma_i(A)である。
  2. n≥2n\ge2とし、 N(m,n):=4mn2−43n3−2mn+2n2−4m+223n−10N(m,n):=4mn^2-\frac43n^3-2mn+2n^2-4m+\frac{22}3n-10 と置く。Householder 二重対角化の四則演算と平方根の回数はN(m,n)N(m,n)以下であり、すべての段でx≠0x\ne0であり、k≤n−2k\le n-2のすべての段でx′≠0x'\ne0であるときN(m,n)N(m,n)に等しい。sv1sv_1の計算の符号の反転は演算に数えない。m≥nm\ge nであるからN(m,n)≤4mn2−43n3+103nN(m,n)\le4mn^2-\frac43n^3+\frac{10}3nである。

証明.(1)を示す。段kkの前の作業行列をW(k−1)W^{(k-1)}、定義 2.2 (1)の後の作業行列をW~(k)\widetilde W^{(k)}、段kkの後の作業行列をW(k)W^{(k)}とする。§E20.6 補題 3.2 (1)によりLkL_kとRkR_kは対称な直交行列である。0≤k≤n0\le k\le nについて、次の二条件をZk\mathrm{Z}_kとする。

(a) j≤k, i>j⇒wij(k)=0,(b) i≤k, j>i+1⇒wij(k)=0.\text{(a)}\ j\le k,\ i>j\Rightarrow w^{(k)}_{ij}=0,\qquad\text{(b)}\ i\le k,\ j>i+1\Rightarrow w^{(k)}_{ij}=0.

Z0\mathrm{Z}_0は条件を課さない。1≤k≤n1\le k\le nとし、Zk−1\mathrm{Z}_{k-1}を仮定する。

W~(k)=LkW(k−1)\widetilde W^{(k)}=L_kW^{(k-1)}である。実際、x=0x=0ならばLk=ImL_k=I_mである。x≠0x\ne0ならば、LkL_kを左から掛ける操作は第11行から第k−1k-1行を変えず、各列の第kk成分から第mm成分を並べたベクトルyyをHvyH_vyに置き換える。j<kj<kならば (a) によりそのyyは00であり、Hv0=0H_v0=0である。第kk列のyyはxxであり、§E20.6 補題 3.2 (2)によりHvx=−sαe1H_vx=-s\alpha e_1であって、これは定義 2.2 (1)の書き込みに一致する。j>kj>kならば、p=αsv1p=\alpha sv_1であるから§E20.6 定義 3.4 (4)の値はy−(vTy/(αsv1))vy-(v^{\mathsf T}y/(\alpha sv_1))vであり、§E20.6 補題 3.2 (2)によりこれはHvyH_vyである。したがってW~(k)\widetilde W^{(k)}は (a) をj≤kj\le kについて満たし、第11行から第k−1k-1行はW(k−1)W^{(k-1)}と同じであるから (b) をi≤k−1i\le k-1について満たす。

W(k)=W~(k)RkW^{(k)}=\widetilde W^{(k)}R_kである。実際、Rk=InR_k=I_nの場合は定義 2.2 (2)は何も行わない。Rk=diag⁡(Ik,Hv′)R_k=\operatorname{diag}(I_k,H_{v'})の場合、Hv′H_{v'}は対称であるから、RkR_kを右から掛ける操作は第11列から第kk列を変えず、各行の第k+1k+1成分から第nn成分を並べたベクトルzzをHv′zH_{v'}zに置き換える。i<ki<kならばj≥k+1>i+1j\ge k+1>i+1であるから、(b) によりそのzzは00である。第kk行のzzはx′x'であり、§E20.6 補題 3.2 (2)によりHv′x′=−s′α′e1H_{v'}x'=-s'\alpha'e_1である。i>ki>kならば、上と同じく§E20.6 定義 3.4 (4)の値はHv′zH_{v'}zである。したがってW(k)W^{(k)}は、第11列から第kk列がW~(k)\widetilde W^{(k)}と同じであるから (a) を満たし、(b) をi≤k−1i\le k-1について満たす。i=ki=kについては、k≤n−2k\le n-2かつx′≠0x'\ne0ならば上の書き込みにより、k≤n−2k\le n-2かつx′=0x'=0ならばx′x'の定義により、k≥n−1k\ge n-1ならばj>k+1≥nj>k+1\ge nを満たすj≤nj\le nが存在しないことにより、(b) が成り立つ。これでZk\mathrm{Z}_kが成り立つ。

kkに関する帰納法によりZn\mathrm{Z}_nが成り立つ。i>ni>nならば第ii行の成分の列番号j≤nj\le nはj<ij<iを満たすので、(a) によりその成分は00である。したがってB=W(n)B=W^{(n)}は上二重対角行列である。LkT=LkL_k^{\mathsf T}=L_kであるから

B=Ln⋯L1AR1⋯Rn=UTAVB=L_n\cdots L_1AR_1\cdots R_n=U^{\mathsf T}AV

であり、直交行列の積UU、VVは直交行列である。補題 1.1によりσi(B)=σi(A)\sigma_i(B)=\sigma_i(A)である。

(2)を示す。段kkの定義 2.2 (1)でx≠0x\ne0ならば、ℓ=m−k+1\ell=m-k+1について、§E20.6 定義 3.4 (2)の計算式はℓ\ell回の乗算、ℓ−1\ell-1回の加算、平方根11回、v1v_1の加算11回、ppの乗算11回の2ℓ+22\ell+2回であり、§E20.6 定義 3.4 (4)の計算式は一つの列についてω\omegaに2ℓ−12\ell-1回、τ\tauに11回、更新に2ℓ2\ell回の4ℓ4\ell回であって、n−kn-k個の列に施す。段k≤n−2k\le n-2の定義 2.2 (2)でx′≠0x'\ne0ならば、同じくℓ′=n−k\ell'=n-kについて2ℓ′+2+4ℓ′(m−k)2\ell'+2+4\ell'(m-k)回である。x=0x=0またはx′=0x'=0の段では対応する回数が00になる。すべての段でx≠0x\ne0、x′≠0x'\ne0であるときの回数は

∑k=1n(2(m−k+1)+2+4(m−k+1)(n−k))+∑k=1n−2(2(n−k)+2+4(n−k)(m−k))\sum_{k=1}^n\bigl(2(m-k+1)+2+4(m-k+1)(n-k)\bigr)+\sum_{k=1}^{n-2}\bigl(2(n-k)+2+4(n-k)(m-k)\bigr)

である。j:=n−kj:=n-kと置くとm−k=m−n+jm-k=m-n+jであり、第一の和は2mn−n2+3n+4∑j=0n−1j(m−n+j+1)2mn-n^2+3n+4\sum_{j=0}^{n-1}j(m-n+j+1)、第二の和はn2+n−6+4∑j=2n−1j(m−n+j)n^2+n-6+4\sum_{j=2}^{n-1}j(m-n+j)である。第二の和の∑j=2n−1\sum_{j=2}^{n-1}にj=1j=1の項を加えて4(m−n+1)4(m-n+1)を差し引くと、二つの4∑4\sumの和は

4∑j=0n−1j(2(m−n+j)+1)−4(m−n+1)=4(m−n)n(n−1)+43n(n−1)(2n−1)+2n(n−1)−4(m−n+1)4\sum_{j=0}^{n-1}j\bigl(2(m-n+j)+1\bigr)-4(m-n+1)=4(m-n)n(n-1)+\frac43n(n-1)(2n-1)+2n(n-1)-4(m-n+1)

であり、これに2mn−n2+3n+n2+n−62mn-n^2+3n+n^2+n-6を加えて展開するとN(m,n)N(m,n)を得る。最後にN(m,n)−4mn2+43n3=−2n(m−n)−4m+223n−10N(m,n)-4mn^2+\frac43n^3=-2n(m-n)-4m+\frac{22}3n-10であり、m≥nm\ge nから右辺は−4n+223n−10=103n−10-4n+\frac{22}3n-10=\frac{10}3n-10以下である。▨

注意 2.4.m≥n≥2m\ge n\ge2とし、B∈Rm×nB\in\R^{m\times n}を上二重対角行列、dj:=bjjd_j:=b_{jj}(1≤j≤n1\le j\le n)、fj:=bj,j+1f_j:=b_{j,j+1}(1≤j≤n−11\le j\le n-1)、f0:=0f_0:=0とする。BBの第jj列の00でない値をとりうる成分は第j−1j-1行のfj−1f_{j-1}と第jj行のdjd_jだけであるから、T:=BTBT:=B^{\mathsf T}Bは対角成分dj2+fj−12d_j^2+f_{j-1}^2、(j,j+1)(j,j+1)成分と(j+1,j)(j+1,j)成分djfjd_jf_jをもち、その他の成分が00の対称三重対角行列である。定理 2.3 (1)のBBについては、§D3.18 命題 2.1によりTTの固有値はσ1(A)2,…,σn(A)2\sigma_1(A)^2,\dots,\sigma_n(A)^2である。TTは対称な上 Hessenberg 行列であるから、§E20.8 命題 1.2 (3)により、TTに対するシフト(σk)(\sigma_k)の QR 法(§E20.8 定義 1.1)の各TkT_kは三重対角行列である。

3 一側 Jacobi 法

定義 3.1.n≥2n\ge2、1≤p<q≤n1\le p<q\le nとし、c,s∈Rc,s\in\Rはc2+s2=1c^2+s^2=1を満たすとする。nn次単位行列の(p,p)(p,p)、(p,q)(p,q)、(q,p)(q,p)、(q,q)(q,q)成分をそれぞれcc、ss、−s-s、ccに置き換えた行列J(p,q;c,s)J(p,q;c,s)を 平面回転 (plane rotation) という。J(p,q;c,s)J(p,q;c,s)の第pp列cep−seqce_p-se_qと第qq列sep+ceqse_p+ce_qは直交する単位ベクトルであるから、平面回転は直交行列である。X=(xij)∈Rn×nX=(x_{ij})\in\R^{n\times n}に対してoff⁡(X):=∑i≠jxij2\operatorname{off}(X):=\sum_{i\ne j}x_{ij}^2と置く。

補題 3.2.α,β,γ∈R\alpha,\beta,\gamma\in\Rとする。γ=0\gamma=0ならばc:=1c:=1、s:=0s:=0と置く。γ≠0\gamma\ne0ならばζ:=(β−α)/(2γ)\zeta:=(\beta-\alpha)/(2\gamma)と置き、ζ≥0\zeta\ge0のときt:=1/(ζ+1+ζ2)t:=1/(\zeta+\sqrt{1+\zeta^2})、ζ<0\zeta<0のときt:=−1/(−ζ+1+ζ2)t:=-1/(-\zeta+\sqrt{1+\zeta^2})とし、c:=1/1+t2c:=1/\sqrt{1+t^2}、s:=tcs:=tcと置く。このときc2+s2=1c^2+s^2=1であり、

γ(c2−s2)+cs(α−β)=0\gamma(c^2-s^2)+cs(\alpha-\beta)=0

が成り立つ。すなわちR:=(cs−sc)R:=\begin{pmatrix}c&s\\-s&c\end{pmatrix}についてRT(αγγβ)RR^{\mathsf T}\begin{pmatrix}\alpha&\gamma\\\gamma&\beta\end{pmatrix}Rは対角行列である。

証明. 演習とする(問題 7.1)。▨

補題 3.3.n≥2n\ge2、1≤p<q≤n1\le p<q\le nとし、X=(xij)∈Rn×nX=(x_{ij})\in\R^{n\times n}はXT=XX^{\mathsf T}=Xを満たし、c,s∈Rc,s\in\Rはc2+s2=1c^2+s^2=1を満たすとする。J:=J(p,q;c,s)J:=J(p,q;c,s)、X′=(xij′):=JTXJX'=(x'_{ij}):=J^{\mathsf T}XJと置く。

  1. X′T=X′X'^{\mathsf T}=X'であり、i,j∉{p,q}i,j\notin\{p,q\}ならばxij′=xijx'_{ij}=x_{ij}である。xpq′=xpq(c2−s2)+cs(xpp−xqq)x'_{pq}=x_{pq}(c^2-s^2)+cs(x_{pp}-x_{qq})である。
  2. off⁡(X′)=off⁡(X)−2xpq2+2xpq′2\operatorname{off}(X')=\operatorname{off}(X)-2x_{pq}^2+2x'^2_{pq}が成り立つ。

証明.X′T=JTXTJ=X′X'^{\mathsf T}=J^{\mathsf T}X^{\mathsf T}J=X'である。JJの第jj列(j∉{p,q}j\notin\{p,q\})はeje_jであり、第pp列はcep−seqce_p-se_q、第qq列はsep+ceqse_p+ce_qである。i∉{p,q}i\notin\{p,q\}ならばJTei=eiJ^{\mathsf T}e_i=e_iであるから、xij′=eiTXJejx'_{ij}=e_i^{\mathsf T}XJe_jであり、

xij′=xij (j∉{p,q}),xip′=cxip−sxiq,xiq′=sxip+cxiqx'_{ij}=x_{ij}\ (j\notin\{p,q\}),\qquad x'_{ip}=cx_{ip}-sx_{iq},\qquad x'_{iq}=sx_{ip}+cx_{iq}

である。xpq′=(cep−seq)TX(sep+ceq)=csxpp+c2xpq−s2xqp−scxqqx'_{pq}=(ce_p-se_q)^{\mathsf T}X(se_p+ce_q)=csx_{pp}+c^2x_{pq}-s^2x_{qp}-scx_{qq}であり、xqp=xpqx_{qp}=x_{pq}から(1)を得る。

c2+s2=1c^2+s^2=1であるから、i∉{p,q}i\notin\{p,q\}についてxip′2+xiq′2=xip2+xiq2x'^2_{ip}+x'^2_{iq}=x_{ip}^2+x_{iq}^2である。i≠ji\ne jを満たす組(i,j)(i,j)を、{i,j}∩{p,q}=∅\{i,j\}\cap\{p,q\}=\emptysetのもの、{i,j}\{i,j\}と{p,q}\{p,q\}がただ一つの元を共有するもの、{i,j}={p,q}\{i,j\}=\{p,q\}のものに分ける。第一の組の項は変わらない。第二の組の項の和は、XXとX′X'の対称性により2∑i∉{p,q}(xip2+xiq2)2\sum_{i\notin\{p,q\}}(x_{ip}^2+x_{iq}^2)であり、変わらない。第三の組の項の和はXXでは2xpq22x_{pq}^2、X′X'では2xpq′22x'^2_{pq}である。これで(2)は示された。▨

定義 3.4.m∈N≥1m\in\NN、n≥2n\ge2を整数とし、A∈Rm×nA\in\R^{m\times n}とする。A0:=AA_0:=A、V0:=InV_0:=I_nと置き、k≥0k\ge0についてAkA_k、VkV_kから次のようにAk+1A_{k+1}、Vk+1V_{k+1}を定める。Gk=(gij(k)):=AkTAkG_k=(g^{(k)}_{ij}):=A_k^{\mathsf T}A_kと置き、1≤p<q≤n1\le p<q\le nを満たす対(p,q)(p,q)のうち∣gpq(k)∣\lvert g^{(k)}_{pq}\rvertが最大のものの中で辞書式順序が最小のものをとる。α:=gpp(k)\alpha:=g^{(k)}_{pp}、β:=gqq(k)\beta:=g^{(k)}_{qq}、γ:=gpq(k)\gamma:=g^{(k)}_{pq}から補題 3.2のcc、ssを定め、Jk:=J(p,q;c,s)J_k:=J(p,q;c,s)、Ak+1:=AkJkA_{k+1}:=A_kJ_k、Vk+1:=VkJkV_{k+1}:=V_kJ_kと置く。AkJkA_kJ_kは、AkA_kの第pp列apa_pと第qq列aqa_qをそれぞれcap−saqca_p-sa_qとsap+caqsa_p+ca_qに置き換えた行列である。こうして定まる列(Ak,Vk)k≥0(A_k,V_k)_{k\ge0}を、AAに対する 一側 Jacobi 法 (one-sided Jacobi method) という。

定理 3.5.m∈N≥1m\in\NN、n≥2n\ge2を整数とし、A∈Rm×nA\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とする。(Ak,Vk)k≥0(A_k,V_k)_{k\ge0}をAAに対する一側 Jacobi 法とし、Gk:=AkTAkG_k:=A_k^{\mathsf T}A_k、θn:=1−2/(n(n−1))\theta_n:=1-2/(n(n-1))と置く。

  1. 任意のk≥0k\ge0について、VkV_kは直交行列であり、Ak=AVkA_k=AV_k、Gk=VkTATAVkG_k=V_k^{\mathsf T}A^{\mathsf T}AV_kが成り立つ。
  2. 任意のk≥0k\ge0についてoff⁡(Gk+1)≤θnoff⁡(Gk)\operatorname{off}(G_{k+1})\le\theta_n\operatorname{off}(G_k)であり、off⁡(Gk)≤θnkoff⁡(ATA)\operatorname{off}(G_k)\le\theta_n^k\operatorname{off}(A^{\mathsf T}A)である。
  3. k≥0k\ge0とし、AkA_kの列の Euclid ノルムを大きい順に並べたものをνk,1≥⋯≥νk,n\nu_{k,1}\ge\dots\ge\nu_{k,n}とする。1≤i≤p1\le i\le pならば∣νk,i2−σi(A)2∣≤off⁡(Gk)1/2\lvert\nu_{k,i}^2-\sigma_i(A)^2\rvert\le\operatorname{off}(G_k)^{1/2}であり、p<i≤np<i\le nならばνk,i2≤off⁡(Gk)1/2\nu_{k,i}^2\le\operatorname{off}(G_k)^{1/2}である。
  4. (Vk)k≥0(V_k)_{k\ge0}は収束する部分列をもつ。収束する部分列の極限をVVとすると、VVは直交行列であり、AVAVの列は互いに直交する。{1,…,n}\{1,\dots,n\}の置換π\piを∥AVeπ(1)∥2≥⋯≥∥AVeπ(n)∥2\lVert AVe_{\pi(1)}\rVert_2\ge\dots\ge\lVert AVe_{\pi(n)}\rVert_2となるようにとり、vi:=Veπ(i)v_i:=Ve_{\pi(i)}、wi:=∥Avi∥2w_i:=\lVert Av_i\rVert_2、r:=#{i∣wi>0}r:=\#\{i\mid w_i>0\}と置く。このときr=rank⁡Ar=\operatorname{rank}Aであり、1≤i≤p1\le i\le pについてσi(A)=wi\sigma_i(A)=w_iである。さらに、ui:=wi−1Aviu_i:=w_i^{-1}Av_i(1≤i≤r1\le i\le r)をRm\R^mの正規直交基底u1,…,umu_1,\dots,u_mに延長すると、v1,…,vnv_1,\dots,v_nはRn\R^nの正規直交基底であり、A=∑i=1rwiuiviTA=\sum_{i=1}^rw_iu_iv_i^{\mathsf T}は§D3.18 定理 1.2の形のAAの特異値分解である。

証明.(1)を示す。V0=InV_0=I_n、A0=AV0A_0=AV_0である。VkV_kが直交行列でAk=AVkA_k=AV_kならば、平面回転JkJ_kは直交行列であるからVk+1=VkJkV_{k+1}=V_kJ_kは直交行列であり、Ak+1=AkJk=AVk+1A_{k+1}=A_kJ_k=AV_{k+1}である。kkに関する帰納法により前半が従い、Gk=AkTAk=VkTATAVkG_k=A_k^{\mathsf T}A_k=V_k^{\mathsf T}A^{\mathsf T}AV_kである。

(2)を示す。k≥0k\ge0とし、段kkで選んだ対を(p,q)(p,q)、γ:=gpq(k)\gamma:=g^{(k)}_{pq}とする。GkG_kは対称であり、Gk+1=JkTAkTAkJk=JkTGkJkG_{k+1}=J_k^{\mathsf T}A_k^{\mathsf T}A_kJ_k=J_k^{\mathsf T}G_kJ_kである。補題 3.3 (1)と補題 3.2によりGk+1G_{k+1}の(p,q)(p,q)成分はγ(c2−s2)+cs(gpp(k)−gqq(k))=0\gamma(c^2-s^2)+cs(g^{(k)}_{pp}-g^{(k)}_{qq})=0であり、補題 3.3 (2)によりoff⁡(Gk+1)=off⁡(Gk)−2γ2\operatorname{off}(G_{k+1})=\operatorname{off}(G_k)-2\gamma^2である。off⁡(Gk)\operatorname{off}(G_k)はn(n−1)n(n-1)個の項(gij(k))2(g^{(k)}_{ij})^2(i≠ji\ne j)の和であり、GkG_kの対称性と対の選び方により各項はγ2\gamma^2以下であるから、γ2≥off⁡(Gk)/(n(n−1))\gamma^2\ge\operatorname{off}(G_k)/(n(n-1))である。したがってoff⁡(Gk+1)≤θnoff⁡(Gk)\operatorname{off}(G_{k+1})\le\theta_n\operatorname{off}(G_k)であり、G0=ATAG_0=A^{\mathsf T}Aからkkに関する帰納法により後半が従う。

(3)を示す。DkD_kをGkG_kの対角成分を並べた対角行列とし、Ek:=Gk−DkE_k:=G_k-D_kと置く。DkD_kの対角成分はAkA_kの列のノルムの二乗であり、EkE_kは対称であって、§E20.6 補題 2.1 (1)により∥Ek∥2≤∥Ek∥F=off⁡(Gk)1/2\lVert E_k\rVert_2\le\lVert E_k\rVert_F=\operatorname{off}(G_k)^{1/2}である。§E20.8 定理 4.3をDkD_kとEkE_kに適用すると、1≤j≤n1\le j\le nについて∣λj(Gk)−λj(Dk)∣≤off⁡(Gk)1/2\lvert\lambda_j(G_k)-\lambda_j(D_k)\rvert\le\operatorname{off}(G_k)^{1/2}であり、λn+1−i(Dk)=νk,i2\lambda_{n+1-i}(D_k)=\nu_{k,i}^2である。(1)によりdet⁡(tI−Gk)=det⁡(tI−ATA)\det(tI-G_k)=\det(tI-A^{\mathsf T}A)である。§D3.18 定理 1.2の分解A=UΣVATA=U\Sigma V_A^{\mathsf T}をとるとATA=VAΣTΣVATA^{\mathsf T}A=V_A\Sigma^{\mathsf T}\Sigma V_A^{\mathsf T}であり、ΣTΣ=diag⁡(σ1(A)2,…,σp(A)2,0,…,0)\Sigma^{\mathsf T}\Sigma=\operatorname{diag}(\sigma_1(A)^2,\dots,\sigma_p(A)^2,0,\dots,0)であるから、λn+1−i(Gk)\lambda_{n+1-i}(G_k)は1≤i≤p1\le i\le pならばσi(A)2\sigma_i(A)^2、p<i≤np<i\le nならば00である。j=n+1−ij=n+1-iと置いて主張を得る。

(4)を示す。直交行列の各列は単位ベクトルであるから、VkV_kの各成分の絶対値は11以下である。§D1.8 定理 2.2をn2n^2個の成分に順に適用して部分列をとり直すと、収束する部分列が得られる。収束する任意の部分列を(Vkl)l≥1(V_{k_l})_{l\ge1}、その極限をVVとする。行列の積の成分は成分の多項式であるから、VTV=lim⁡lVklTVkl=InV^{\mathsf T}V=\lim_lV_{k_l}^{\mathsf T}V_{k_l}=I_nであり、(1)によりVTATAV=lim⁡lGklV^{\mathsf T}A^{\mathsf T}AV=\lim_lG_{k_l}である。off⁡\operatorname{off}は成分の多項式であり、n≥2n\ge2から0≤θn<10\le\theta_n<1であるので、(2)により

off⁡((AV)T(AV))=lim⁡l→∞off⁡(Gkl)=0\operatorname{off}\bigl((AV)^{\mathsf T}(AV)\bigr)=\lim_{l\to\infty}\operatorname{off}(G_{k_l})=0

である。したがって(AV)T(AV)(AV)^{\mathsf T}(AV)は対角行列であり、AVAVの列は互いに直交する。

v1,…,vnv_1,\dots,v_nは直交行列VVの列を並べ替えたものであるから、Rn\R^nの正規直交基底である。Av1,…,AvnAv_1,\dots,Av_nは互いに直交し、そのうち00でないものはAv1,…,AvrAv_1,\dots,Av_rである。互いに直交する00でないベクトルは一次独立であるからr≤mr\le mであり、r≤nr\le nと合わせてr≤pr\le pである。u1,…,uru_1,\dots,u_rは正規直交系であり、これを延長した正規直交基底u1,…,umu_1,\dots,u_mが存在する。U:=(u1 ⋯ um)U:=(u_1\ \cdots\ u_m)、V′:=(v1 ⋯ vn)V':=(v_1\ \cdots\ v_n)と置き、(i,i)(i,i)成分がwiw_i(1≤i≤p1\le i\le p)でその他の成分が00のΣ∈Rm×n\Sigma\in\R^{m\times n}をとる。UΣU\Sigmaの第ii列は、i≤ri\le rならばwiui=Aviw_iu_i=Av_i、r<i≤pr<i\le pならばwiui=0=Aviw_iu_i=0=Av_i、i>pi>pならば0=Avi0=Av_iであるから、UΣ=AV′U\Sigma=AV'であり、A=UΣV′T=∑i=1rwiuiviTA=U\Sigma V'^{\mathsf T}=\sum_{i=1}^rw_iu_iv_i^{\mathsf T}である。UU、V′V'は直交行列であり、w1≥⋯≥wp≥0w_1\ge\dots\ge w_p\ge0であるから、この分解は§D3.18 定理 1.2の形であり、§D3.18 命題 2.1によりσi(A)=wi\sigma_i(A)=w_i(1≤i≤p1\le i\le p)である。§D3.18 定理 1.2により正の特異値の個数はrank⁡A\operatorname{rank}Aであるから、r=rank⁡Ar=\operatorname{rank}Aである。▨

例 3.6.

A:=(34010101−1),G0=ATA=(101211217−11−12)A:=\begin{pmatrix}3&4&0\\1&0&1\\0&1&-1\end{pmatrix},\qquad G_0=A^{\mathsf T}A=\begin{pmatrix}10&12&1\\12&17&-1\\1&-1&2\end{pmatrix}

とする。off⁡(G0)=2(144+1+1)=292\operatorname{off}(G_0)=2(144+1+1)=292であり、∣gpq(0)∣\lvert g^{(0)}_{pq}\rvertが最大の対は(1,2)(1,2)、γ=12\gamma=12、α=10\alpha=10、β=17\beta=17である。ζ=7/24\zeta=7/24、1+ζ2=25/24\sqrt{1+\zeta^2}=25/24、t=1/(7/24+25/24)=3/4t=1/(7/24+25/24)=3/4、c=4/5c=4/5、s=3/5s=3/5である。第11列(3,1,0)(3,1,0)と第22列(4,0,1)(4,0,1)は(0,4/5,−3/5)(0,4/5,-3/5)と(5,3/5,4/5)(5,3/5,4/5)に置き換わり、

A1=(0504/53/51−3/54/5−1),G1=(107/5026−1/57/5−1/52)A_1=\begin{pmatrix}0&5&0\\4/5&3/5&1\\-3/5&4/5&-1\end{pmatrix},\qquad G_1=\begin{pmatrix}1&0&7/5\\0&26&-1/5\\7/5&-1/5&2\end{pmatrix}

である。off⁡(G1)=2(49/25+1/25)=4=292−2⋅122\operatorname{off}(G_1)=2(49/25+1/25)=4=292-2\cdot12^2であり、定理 3.5 (2)の上界θ3off⁡(G0)=584/3\theta_3\operatorname{off}(G_0)=584/3より小さい。G0G_0の(1,3)(1,3)、(2,3)(2,3)成分の組(1,−1)(1,-1)は(7/5,−1/5)(7/5,-1/5)に回り、二乗和22は保たれる。

det⁡(tI−ATA)=t3−29t2+78t−1\det(tI-A^{\mathsf T}A)=t^3-29t^2+78t-1の根は、有効数字 60 桁の十進演算で求めるとσ1(A)2≈26.00167\sigma_1(A)^2\approx26.00167、σ2(A)2≈2.98545\sigma_2(A)^2\approx2.98545、σ3(A)2≈0.0128822\sigma_3(A)^2\approx0.0128822である。A1A_1の列のノルムの二乗は大きい順に26,2,126,2,1であり、差の絶対値0.001670.00167、0.985450.98545、0.987120.98712は定理 3.5 (3)の上界off⁡(G1)1/2=2\operatorname{off}(G_1)^{1/2}=2以下である。

例 3.7.F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)、fl⁡\operatorname{fl}を最近接偶数丸め、u=2−53u=2^{-53}、δ:=2−27\delta:=2^{-27}とし、例 1.2のAδA_\deltaに一側 Jacobi 法の段00を浮動小数点算術で施す。Gram 行列の計算値はG^=(1111)\widehat G=\begin{pmatrix}1&1\\1&1\end{pmatrix}であり、α=β=γ=1\alpha=\beta=\gamma=1からζ=0\zeta=0、t=1t=1である。ccの計算値はc^:=fl⁡(1/fl⁡(2))\hat c:=\operatorname{fl}(1/\operatorname{fl}(\sqrt2))であり、ssの計算値もc^\hat cである。c^δ\hat c\deltaは正確に計算され、第11列の計算値は(fl⁡(c^−c^),fl⁡(c^δ+c^δ))=(0,2−26c^)(\operatorname{fl}(\hat c-\hat c),\operatorname{fl}(\hat c\delta+\hat c\delta))=(0,2^{-26}\hat c)、第22列の計算値は(2c^,0)(2\hat c,0)である。計算した二列は正確に直交し、ノルムは2−26c^2^{-26}\hat cと2c^2\hat cである。60 桁の十進演算で∣2 c^−1∣≈8.87×10−17<u\lvert\sqrt2\,\hat c-1\rvert\approx8.87\times10^{-17}<uであるから、2−26c^2^{-26}\hat cはσ2(Aδ)=2−26/2\sigma_2(A_\delta)=2^{-26}/\sqrt2を、2c^2\hat cはσ1(Aδ)=2\sigma_1(A_\delta)=\sqrt2を、いずれも相対誤差uu未満で近似する。G^\widehat Gの成分1±δ21\pm\delta^2の丸めで失われたδ2\delta^2は回転の角の決定にだけ関わり、第11列の第22成分はδ\deltaの倍数どうしの和c^δ+c^δ\hat c\delta+\hat c\deltaとして計算される。

4 特異値の摂動

補題 4.1.m,n∈N≥1m,n\in\NN、p:=min⁡{m,n}p:=\min\{m,n\}とし、M∈Rm×nM\in\R^{m\times n}に対して

C(M):=(0MMT0)∈R(m+n)×(m+n)C(M):=\begin{pmatrix}0&M\\M^{\mathsf T}&0\end{pmatrix}\in\R^{(m+n)\times(m+n)}

と置く。C(M)C(M)は対称であり、その固有値を重複度を込めてλ1(C(M))≤⋯≤λm+n(C(M))\lambda_1(C(M))\le\dots\le\lambda_{m+n}(C(M))と並べる。

  1. det⁡(tI−C(M))=tm+n−2p∏i=1p(t−σi(M))(t+σi(M))\det(tI-C(M))=t^{m+n-2p}\prod_{i=1}^p\bigl(t-\sigma_i(M)\bigr)\bigl(t+\sigma_i(M)\bigr)であり、1≤k≤p1\le k\le pについてλm+n+1−k(C(M))=σk(M)\lambda_{m+n+1-k}(C(M))=\sigma_k(M)である。
  2. ∥C(M)∥2=∥M∥2\lVert C(M)\rVert_2=\lVert M\rVert_2である。

証明.(1)を示す。§D3.18 定理 1.2によりM=UΣVTM=U\Sigma V^{\mathsf T}と書き、UUの列をu1,…,umu_1,\dots,u_m、VVの列をv1,…,vnv_1,\dots,v_nとする。MV=UΣMV=U\SigmaとMTU=VΣTM^{\mathsf T}U=V\Sigma^{\mathsf T}から、i≤pi\le pについてMvi=σi(M)uiMv_i=\sigma_i(M)u_i、MTui=σi(M)viM^{\mathsf T}u_i=\sigma_i(M)v_iであり、p<j≤np<j\le nについてMvj=0Mv_j=0、p<i≤mp<i\le mについてMTui=0M^{\mathsf T}u_i=0である。i≤pi\le pについてyi±:=12(ui±vi)y_i^{\pm}:=\frac1{\sqrt2}\begin{pmatrix}u_i\\\pm v_i\end{pmatrix}と置くと

C(M)yi±=12(±MviMTui)=±σi(M)yi±C(M)y_i^{\pm}=\frac1{\sqrt2}\begin{pmatrix}\pm Mv_i\\M^{\mathsf T}u_i\end{pmatrix}=\pm\sigma_i(M)y_i^{\pm}

であり、p<i≤mp<i\le mについてC(M)(ui0)=0C(M)\begin{pmatrix}u_i\\0\end{pmatrix}=0、p<j≤np<j\le nについてC(M)(0vj)=0C(M)\begin{pmatrix}0\\v_j\end{pmatrix}=0である。これら2p+(m−p)+(n−p)=m+n2p+(m-p)+(n-p)=m+n個のベクトルは正規直交系をなす。実際、(yi+)Tyi−=(1−1)/2=0(y_i^+)^{\mathsf T}y_i^-=(1-1)/2=0であり、その他の対の内積はu1,…,umu_1,\dots,u_mとv1,…,vnv_1,\dots,v_nの正規直交性から00である。これらを列とする直交行列をYYとすると、YTC(M)YY^{\mathsf T}C(M)Yは対角成分が±σi(M)\pm\sigma_i(M)(i≤pi\le p)と00(m+n−2pm+n-2p個)の対角行列であり、特性多項式の等式を得る。σ1(M)≥⋯≥σp(M)≥0\sigma_1(M)\ge\dots\ge\sigma_p(M)\ge0であり、その他の根−σi(M)-\sigma_i(M)と00はσp(M)\sigma_p(M)以下であるから、大きい方からkk番目の根はσk(M)\sigma_k(M)である。

(2)を示す。x∈Rmx\in\R^m、y∈Rny\in\R^nについて、§E20.6 補題 2.1 (1)により∥MT∥2=∥M∥2\lVert M^{\mathsf T}\rVert_2=\lVert M\rVert_2であるから

∥C(M)(xy)∥22=∥My∥22+∥MTx∥22≤∥M∥22(∥y∥22+∥x∥22)\Bigl\lVert C(M)\begin{pmatrix}x\\y\end{pmatrix}\Bigr\rVert_2^2=\lVert My\rVert_2^2+\lVert M^{\mathsf T}x\rVert_2^2\le\lVert M\rVert_2^2\bigl(\lVert y\rVert_2^2+\lVert x\rVert_2^2\bigr)

であり、∥C(M)∥2≤∥M∥2\lVert C(M)\rVert_2\le\lVert M\rVert_2である。x=0x=0、y=v1y=v_1とすると左辺は∥Mv1∥22=σ1(M)2\lVert Mv_1\rVert_2^2=\sigma_1(M)^2であり、§E20.6 補題 2.1 (1)によりこれは∥M∥22\lVert M\rVert_2^2に等しい。▨

定理 4.2.A,E∈Rm×nA,E\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とする。1≤k≤p1\le k\le pについて

∣σk(A+E)−σk(A)∣≤∥E∥2\lvert\sigma_k(A+E)-\sigma_k(A)\rvert\le\lVert E\rVert_2

が成り立つ。

証明.補題 4.1の記号でC(A+E)=C(A)+C(E)C(A+E)=C(A)+C(E)であり、C(A)C(A)とC(E)C(E)は対称である。§E20.8 定理 4.3を番号m+n+1−km+n+1-kについて適用し、補題 4.1 (1)と補題 4.1 (2)を用いると、∣σk(A+E)−σk(A)∣≤∥C(E)∥2=∥E∥2\lvert\sigma_k(A+E)-\sigma_k(A)\rvert\le\lVert C(E)\rVert_2=\lVert E\rVert_2である。▨

注意 4.3.m≥nm\ge n、k=nk=nのとき、定理 4.2はσn(A+E)≥σn(A)−∥E∥2\sigma_n(A+E)\ge\sigma_n(A)-\lVert E\rVert_2を含む。AAの列が一次独立であり∥E∥2<σn(A)\lVert E\rVert_2<\sigma_n(A)ならば右辺は正であり、§D3.18 定理 1.2によりA+EA+Eの階数はnnである。これは§E20.6 補題 2.1 (3)の主張である。

系 4.4.A∈Rm×nA\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とし、§D3.18 定理 1.2によりA=∑i=1pσi(A)uiviTA=\sum_{i=1}^p\sigma_i(A)u_iv_i^{\mathsf T}と書く。0≤r<p0\le r<pとし、Ar:=∑i=1rσi(A)uiviTA_r:=\sum_{i=1}^r\sigma_i(A)u_iv_i^{\mathsf T}(A0:=0A_0:=0)と置く。rank⁡Ar≤r\operatorname{rank}A_r\le rであり、∥A−Ar∥2=σr+1(A)\lVert A-A_r\rVert_2=\sigma_{r+1}(A)であって、rank⁡B≤r\operatorname{rank}B\le rを満たす任意のB∈Rm×nB\in\R^{m\times n}について∥A−B∥2≥σr+1(A)\lVert A-B\rVert_2\ge\sigma_{r+1}(A)である。

証明.rank⁡B≤r\operatorname{rank}B\le rならば、§D3.18 定理 1.2によりBBの正の特異値は高々rr個であり、σr+1(B)=0\sigma_{r+1}(B)=0である。定理 4.2をBBとA−BA-Bに適用するとσr+1(A)=∣σr+1(A)−σr+1(B)∣≤∥A−B∥2\sigma_{r+1}(A)=\lvert\sigma_{r+1}(A)-\sigma_{r+1}(B)\rvert\le\lVert A-B\rVert_2である。

ArA_rの像はu1,…,uru_1,\dots,u_rで張られるからrank⁡Ar≤r\operatorname{rank}A_r\le rである。§D3.18 定理 1.2の直交行列U=(u1 ⋯ um)U=(u_1\ \cdots\ u_m)、V=(v1 ⋯ vn)V=(v_1\ \cdots\ v_n)についてA−Ar=UΣ′VTA-A_r=U\Sigma'V^{\mathsf T}であり、Σ′∈Rm×n\Sigma'\in\R^{m\times n}は(i,i)(i,i)成分がσi(A)\sigma_i(A)(r<i≤pr<i\le p)でその他の成分が00の行列である。補題 1.1により∥A−Ar∥2=∥Σ′∥2\lVert A-A_r\rVert_2=\lVert\Sigma'\rVert_2であり、h∈Rnh\in\R^nについて∥Σ′h∥22=∑r<i≤pσi(A)2hi2≤σr+1(A)2∥h∥22\lVert\Sigma'h\rVert_2^2=\sum_{r<i\le p}\sigma_i(A)^2h_i^2\le\sigma_{r+1}(A)^2\lVert h\rVert_2^2で、h=er+1h=e_{r+1}のとき等号が成り立つ。▨

注意 4.5.1≤r<p1\le r<pのとき、§D3.18 定理 3.4により、同じArA_rは Frobenius ノルムでrank⁡B≤r\operatorname{rank}B\le rの範囲の最小値∥A−Ar∥F=(∑r<i≤pσi(A)2)1/2\lVert A-A_r\rVert_F=\bigl(\sum_{r<i\le p}\sigma_i(A)^2\bigr)^{1/2}を与える。この値はσr+1(A)\sigma_{r+1}(A)以上であり、σr+2(A)=⋯=σp(A)=0\sigma_{r+2}(A)=\dots=\sigma_p(A)=0のときに限ってσr+1(A)\sigma_{r+1}(A)に等しい。

系 4.6.FFを浮動小数点数系、uuをその単位丸め誤差、fl⁡\operatorname{fl}をFFの最近接丸めとし、整数m≥n≥1m\ge n\ge1が(2m+6)u<1(2m+6)u<1を満たすとする。ηm,n\eta_{m,n}を§E20.6 定理 4.5のとおりに置く。A∈Fm×nA\in F^{m\times n}、b∈Fmb\in F^mとし、AAと右辺bbの Householder QR 法をFFとfl⁡\operatorname{fl}の浮動小数点算術で実行すると範囲条件を満たすとし、その出力を(R^,c^)(\widehat R,\widehat c)とする。このとき1≤i≤n1\le i\le nについて∣σi(R^)−σi(A)∣≤ηm,n∥A∥F\lvert\sigma_i(\widehat R)-\sigma_i(A)\rvert\le\eta_{m,n}\lVert A\rVert_Fである。

証明.§E20.6 定理 4.5 (1)により、直交行列QQと∥ΔA∥F≤ηm,n∥A∥F\lVert\Delta A\rVert_F\le\eta_{m,n}\lVert A\rVert_Fを満たすΔA\Delta Aが存在してA+ΔA=Q(R^0)A+\Delta A=Q\begin{pmatrix}\widehat R\\0\end{pmatrix}である。§D3.18 定理 1.2によりR^=URΣRVRT\widehat R=U_R\Sigma_RV_R^{\mathsf T}と書くと、(R^0)=diag⁡(UR,Im−n)(ΣR0)VRT\begin{pmatrix}\widehat R\\0\end{pmatrix}=\operatorname{diag}(U_R,I_{m-n})\begin{pmatrix}\Sigma_R\\0\end{pmatrix}V_R^{\mathsf T}は§D3.18 定理 1.2の形の分解であるから、§D3.18 命題 2.1と補題 1.1によりσi(A+ΔA)=σi(R^)\sigma_i(A+\Delta A)=\sigma_i(\widehat R)である。定理 4.2と§E20.6 補題 2.1 (1)により∣σi(R^)−σi(A)∣≤∥ΔA∥2≤∥ΔA∥F≤ηm,n∥A∥F\lvert\sigma_i(\widehat R)-\sigma_i(A)\rvert\le\lVert\Delta A\rVert_2\le\lVert\Delta A\rVert_F\le\eta_{m,n}\lVert A\rVert_Fである。▨

5 数値的階数

定義 5.1.A∈Rm×nA\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とし、τ≥0\tau\ge0を実数とする。σi(A)>τ\sigma_i(A)>\tauを満たす1≤i≤p1\le i\le pの個数rτ(A)r_\tau(A)を、許容量τ\tauに関するAAの 数値的階数 (numerical rank) という。§D3.18 定理 1.2によりr0(A)=rank⁡Ar_0(A)=\operatorname{rank}Aである。

命題 5.2.A∈Rm×nA\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とし、τ≥0\tau\ge0を実数とする。

  1. rτ(A)=min⁡{rank⁡A^∣A^∈Rm×n, ∥A^−A∥2≤τ}r_\tau(A)=\min\{\operatorname{rank}\widehat A\mid\widehat A\in\R^{m\times n},\ \lVert\widehat A-A\rVert_2\le\tau\}である。
  2. ε≥0\varepsilon\ge0とし、E∈Rm×nE\in\R^{m\times n}は∥E∥2≤ε\lVert E\rVert_2\le\varepsilonを満たすとする。すべての1≤i≤p1\le i\le pについて∣σi(A)−τ∣>ε\lvert\sigma_i(A)-\tau\rvert>\varepsilonならば、rτ(A+E)=rτ(A)r_\tau(A+E)=r_\tau(A)である。

証明.(1)を示す。r:=rτ(A)r:=r_\tau(A)と置く。特異値は大きい順に並んでいるから、σi(A)>τ\sigma_i(A)>\tauであることとi≤ri\le rであることは同値である。∥A^−A∥2≤τ\lVert\widehat A-A\rVert_2\le\tauならば、定理 4.2によりi≤ri\le rについてσi(A^)≥σi(A)−τ>0\sigma_i(\widehat A)\ge\sigma_i(A)-\tau>0であり、§D3.18 定理 1.2によりrank⁡A^≥r\operatorname{rank}\widehat A\ge rである。r<pr<pならば、系 4.4のArA_rはrank⁡Ar≤r\operatorname{rank}A_r\le rと∥Ar−A∥2=σr+1(A)≤τ\lVert A_r-A\rVert_2=\sigma_{r+1}(A)\le\tauを満たす。r=pr=pならばA^:=A\widehat A:=Aはrank⁡A≤p=r\operatorname{rank}A\le p=rを満たす。

(2)を示す。σi(A)>τ\sigma_i(A)>\tauならば仮定によりσi(A)>τ+ε\sigma_i(A)>\tau+\varepsilonであり、定理 4.2によりσi(A+E)≥σi(A)−ε>τ\sigma_i(A+E)\ge\sigma_i(A)-\varepsilon>\tauである。σi(A)≤τ\sigma_i(A)\le\tauならば仮定によりσi(A)<τ−ε\sigma_i(A)<\tau-\varepsilonであり、σi(A+E)≤σi(A)+ε<τ\sigma_i(A+E)\le\sigma_i(A)+\varepsilon<\tauである。▨

系 5.3.A0,A∈Rm×nA_0,A\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とし、ε1,ε2,τ≥0\varepsilon_1,\varepsilon_2,\tau\ge0を実数とする。∥A−A0∥2≤ε1\lVert A-A_0\rVert_2\le\varepsilon_1であり、実数σ^1,…,σ^p\hat\sigma_1,\dots,\hat\sigma_pがすべての1≤i≤p1\le i\le pについて∣σ^i−σi(A)∣≤ε2\lvert\hat\sigma_i-\sigma_i(A)\rvert\le\varepsilon_2を満たすとする。ε:=ε1+ε2\varepsilon:=\varepsilon_1+\varepsilon_2と置く。区間(τ−ε,τ+ε](\tau-\varepsilon,\tau+\varepsilon]に属するσ^i\hat\sigma_iが無いならば、rτ(A0)=#{i∣1≤i≤p, σ^i>τ}r_\tau(A_0)=\#\{i\mid1\le i\le p,\ \hat\sigma_i>\tau\}である。

証明.定理 4.2により∣σi(A)−σi(A0)∣≤ε1\lvert\sigma_i(A)-\sigma_i(A_0)\rvert\le\varepsilon_1であり、∣σ^i−σi(A0)∣≤ε\lvert\hat\sigma_i-\sigma_i(A_0)\rvert\le\varepsilonである。σ^i>τ\hat\sigma_i>\tauならば仮定によりσ^i>τ+ε\hat\sigma_i>\tau+\varepsilonであり、σi(A0)≥σ^i−ε>τ\sigma_i(A_0)\ge\hat\sigma_i-\varepsilon>\tauである。σ^i≤τ\hat\sigma_i\le\tauならば仮定によりσ^i≤τ−ε\hat\sigma_i\le\tau-\varepsilonであり、σi(A0)≤σ^i+ε≤τ\sigma_i(A_0)\le\hat\sigma_i+\varepsilon\le\tauである。▨

例 5.4.0<δ≤10<\delta\le1に対して例 1.2のAδ=(11δ−δ)A_\delta=\begin{pmatrix}1&1\\\delta&-\delta\end{pmatrix}をとる。σ1(Aδ)=2\sigma_1(A_\delta)=\sqrt2、σ2(Aδ)=2δ\sigma_2(A_\delta)=\sqrt2\deltaであり、AδA_\deltaの階数は22である。0≤τ<20\le\tau<\sqrt2ならば、2δ>τ\sqrt2\delta>\tauのときrτ(Aδ)=2r_\tau(A_\delta)=2、2δ≤τ\sqrt2\delta\le\tauのときrτ(Aδ)=1r_\tau(A_\delta)=1である。系 4.4のA1=2e1(12(1,1))=(1100)A_1=\sqrt2e_1\bigl(\frac1{\sqrt2}(1,1)\bigr)=\begin{pmatrix}1&1\\0&0\end{pmatrix}は階数11であり、∥Aδ−A1∥2=2δ\lVert A_\delta-A_1\rVert_2=\sqrt2\deltaである。

τ:=10−6\tau:=10^{-6}、δ:=8×10−7\delta:=8\times10^{-7}、δ′:=6×10−7\delta':=6\times10^{-7}とすると、2δ≈1.131×10−6>τ\sqrt2\delta\approx1.131\times10^{-6}>\tau、2δ′≈8.49×10−7<τ\sqrt2\delta'\approx8.49\times10^{-7}<\tauであり、rτ(Aδ)=2r_\tau(A_\delta)=2、rτ(Aδ′)=1r_\tau(A_{\delta'})=1である。Aδ′−Aδ=(δ′−δ)(001−1)A_{\delta'}-A_\delta=(\delta'-\delta)\begin{pmatrix}0&0\\1&-1\end{pmatrix}であり、E:=Aδ′−AδE:=A_{\delta'}-A_\deltaについて∥E∥2=2(δ−δ′)≈2.83×10−7=:ε\lVert E\rVert_2=\sqrt2(\delta-\delta')\approx2.83\times10^{-7}=:\varepsilonである。σ2(Aδ)−τ≈1.31×10−7≤ε\sigma_2(A_\delta)-\tau\approx1.31\times10^{-7}\le\varepsilonであり、命題 5.2 (2)の間隔の仮定は成り立たず、rτ(Aδ+E)≠rτ(Aδ)r_\tau(A_\delta+E)\ne r_\tau(A_\delta)である。δ\deltaとδ′\delta'をτ/2\tau/\sqrt2の両側から近づけると、判定を変える摂動のノルム2(δ−δ′)\sqrt2(\delta-\delta')はいくらでも小さくなる。

6 最小ノルム最小二乗解

命題 6.1.A∈Rm×nA\in\R^{m\times n}、r:=rank⁡Ar:=\operatorname{rank}Aとし、§D3.18 定理 1.2の正規直交基底u1,…,umu_1,\dots,u_m、v1,…,vnv_1,\dots,v_nとσi:=σi(A)\sigma_i:=\sigma_i(A)をとる。M:=∑i=1rσi−1viuiT∈Rn×mM:=\sum_{i=1}^r\sigma_i^{-1}v_iu_i^{\mathsf T}\in\R^{n\times m}(r=0r=0ならばM:=0M:=0)と置く。

  1. 任意のb∈Rmb\in\R^mについて、MbMbはAx=bAx=bの最小二乗解であり、Ax=bAx=bのMbMb以外の任意の最小二乗解xxは∥x∥2>∥Mb∥2\lVert x\rVert_2>\lVert Mb\rVert_2を満たす。特にMMはAAだけから定まり、特異値分解の選び方によらない。
  2. r≥1r\ge1ならば∥M∥2=1/σr(A)\lVert M\rVert_2=1/\sigma_r(A)である。
  3. m≥nm\ge nでありAAの列が一次独立ならば、M=(ATA)−1ATM=(A^{\mathsf T}A)^{-1}A^{\mathsf T}であり、∥M∥2=1/σn(A)\lVert M\rVert_2=1/\sigma_n(A)である。

証明.(1)を示す。Mb=∑i=1rσi−1(uiTb)viMb=\sum_{i=1}^r\sigma_i^{-1}(u_i^{\mathsf T}b)v_iは§D3.18 命題 4.1のx+x^+であり、同じ命題により最小二乗解の全体は{Mb+z∣z∈span⁡{vr+1,…,vn}}\{Mb+z\mid z\in\operatorname{span}\{v_{r+1},\dots,v_n\}\}である。Mb∈span⁡{v1,…,vr}Mb\in\operatorname{span}\{v_1,\dots,v_r\}はzzに直交するから∥Mb+z∥22=∥Mb∥22+∥z∥22\lVert Mb+z\rVert_2^2=\lVert Mb\rVert_2^2+\lVert z\rVert_2^2であり、z≠0z\ne0ならば∥Mb+z∥2>∥Mb∥2\lVert Mb+z\rVert_2>\lVert Mb\rVert_2である。したがってMbMbはノルム最小の最小二乗解としてAAとbbから定まり、b=e1,…,emb=e_1,\dots,e_mについての値からMMはAAだけから定まる。

(2)を示す。S∈Rn×mS\in\R^{n\times m}を(i,i)(i,i)成分がσi−1\sigma_i^{-1}(1≤i≤r1\le i\le r)でその他の成分が00の行列とすると、M=VSUTM=VSU^{\mathsf T}であり、補題 1.1により∥M∥2=∥S∥2\lVert M\rVert_2=\lVert S\rVert_2である。h∈Rmh\in\R^mについて∥Sh∥22=∑i=1rσi−2hi2≤σr−2∥h∥22\lVert Sh\rVert_2^2=\sum_{i=1}^r\sigma_i^{-2}h_i^2\le\sigma_r^{-2}\lVert h\rVert_2^2であり、h=erh=e_rのとき等号が成り立つ。

(3)を示す。§E20.6 命題 1.2 (2)により、任意のbbについてAx=bAx=bのただ一つの最小二乗解は(ATA)−1ATb(A^{\mathsf T}A)^{-1}A^{\mathsf T}bであり、(1)によりこれはMbMbに等しい。r=nr=nであるから、(2)により∥M∥2=1/σn(A)\lVert M\rVert_2=1/\sigma_n(A)である。▨

定義 6.2.A∈Rm×nA\in\R^{m\times n}、b∈Rmb\in\R^mとする。Ax=bAx=bの最小二乗解のうちノルムが最小のもの(命題 6.1 (1)によりただ一つ存在する)を、Ax=bAx=bの 最小ノルム最小二乗解 (minimum-norm least squares solution) という。命題 6.1 (1)によりAAから定まる行列MMをAAの 擬似逆 (pseudoinverse) といい、A†A^\daggerと書く。

命題 6.3.A∈Rm×nA\in\R^{m\times n}、p:=min⁡{m,n}p:=\min\{m,n\}とし、実数τ≥0\tau\ge0についてr:=rτ(A)≥1r:=r_\tau(A)\ge1とする。§D3.18 定理 1.2の正規直交基底u1,…,umu_1,\dots,u_m、v1,…,vnv_1,\dots,v_nとσi:=σi(A)\sigma_i:=\sigma_i(A)をとり、

Aτ:=∑i=1rσiuiviT,xτ:=∑i=1rσi−1viuiTb(b∈Rm)A_\tau:=\sum_{i=1}^r\sigma_iu_iv_i^{\mathsf T},\qquad x_\tau:=\sum_{i=1}^r\sigma_i^{-1}v_iu_i^{\mathsf T}b\quad(b\in\R^m)

と置く。

  1. AτA_\tauはAAとτ\tauだけから定まり、特異値分解の選び方によらない。rank⁡Aτ=r\operatorname{rank}A_\tau=r、σr(Aτ)=σr(A)\sigma_r(A_\tau)=\sigma_r(A)である。r<pr<pならば∥A−Aτ∥2=σr+1(A)≤τ\lVert A-A_\tau\rVert_2=\sigma_{r+1}(A)\le\tauであり、r=pr=pならばAτ=AA_\tau=Aである。
  2. 任意のb∈Rmb\in\R^mについてxτ=Aτ†bx_\tau=A_\tau^\dagger bであり、xτx_\tauはAτx=bA_\tau x=bの最小ノルム最小二乗解であって、∥xτ∥2≤∥b∥2/σr(A)\lVert x_\tau\rVert_2\le\lVert b\rVert_2/\sigma_r(A)を満たす。τ>0\tau>0かつb≠0b\ne0ならば∥xτ∥2<∥b∥2/τ\lVert x_\tau\rVert_2<\lVert b\rVert_2/\tauである。

証明.(1)を示す。§D3.18 定理 1.2の分解からATAvi=σi2viA^{\mathsf T}Av_i=\sigma_i^2v_i(i≤pi\le p)、ATAvi=0A^{\mathsf T}Av_i=0(i>pi>p)であり、v1,…,vnv_1,\dots,v_nはATAA^{\mathsf T}Aの正規直交な固有ベクトルからなる基底である。したがってλ>τ2\lambda>\tau^2に対する固有空間ker⁡(ATA−λI)\ker(A^{\mathsf T}A-\lambda I)はσi2=λ\sigma_i^2=\lambdaを満たすviv_iで張られ、σi,τ≥0\sigma_i,\tau\ge0からσi>τ\sigma_i>\tauとσi2>τ2\sigma_i^2>\tau^2は同値であるので、

span⁡{v1,…,vr}=∑λ>τ2ker⁡(ATA−λI)\operatorname{span}\{v_1,\dots,v_r\}=\sum_{\lambda>\tau^2}\ker(A^{\mathsf T}A-\lambda I)

である。右辺はAAとτ\tauだけから定まり、その上への直交射影P=∑i=1rviviTP=\sum_{i=1}^rv_iv_i^{\mathsf T}もAAとτ\tauだけから定まる。i≤pi\le pについてAvi=σiuiAv_i=\sigma_iu_iであるからAP=AτAP=A_\tauである。Aτ=UΣτVTA_\tau=U\Sigma_\tau V^{\mathsf T}であり、Στ\Sigma_\tauは(i,i)(i,i)成分がσi\sigma_i(i≤ri\le r)でその他の成分が00の行列であるから、この分解は§D3.18 定理 1.2の形であり、§D3.18 命題 2.1によりAτA_\tauの特異値はσ1,…,σr,0,…,0\sigma_1,\dots,\sigma_r,0,\dots,0である。したがってσr(Aτ)=σr\sigma_r(A_\tau)=\sigma_rであり、§D3.18 定理 1.2によりrank⁡Aτ=r\operatorname{rank}A_\tau=rである。r<pr<pならばAτA_\tauは系 4.4のArA_rであり、∥A−Aτ∥2=σr+1≤τ\lVert A-A_\tau\rVert_2=\sigma_{r+1}\le\tauである。r=pr=pならばAτ=∑i=1pσiuiviTA_\tau=\sum_{i=1}^p\sigma_iu_iv_i^{\mathsf T}であり、§D3.18 定理 1.2の表示ではrank⁡A<i≤p\operatorname{rank}A<i\le pについてσi=0\sigma_i=0であるから、Aτ=AA_\tau=Aである。

(2)を示す。命題 6.1をAτA_\tauと上の分解Aτ=UΣτVTA_\tau=U\Sigma_\tau V^{\mathsf T}に適用すると、rank⁡Aτ=r\operatorname{rank}A_\tau=rであるからAτ†=∑i=1rσi−1viuiTA_\tau^\dagger=\sum_{i=1}^r\sigma_i^{-1}v_iu_i^{\mathsf T}であり、xτ=Aτ†bx_\tau=A_\tau^\dagger bは命題 6.1 (1)によりAτx=bA_\tau x=bの最小ノルム最小二乗解である。命題 6.1 (2)により∥xτ∥2≤∥Aτ†∥2∥b∥2=∥b∥2/σr(A)\lVert x_\tau\rVert_2\le\lVert A_\tau^\dagger\rVert_2\lVert b\rVert_2=\lVert b\rVert_2/\sigma_r(A)であり、τ>0\tau>0かつb≠0b\ne0ならば、σr(A)>τ>0\sigma_r(A)>\tau>0と∥b∥2>0\lVert b\rVert_2>0から∥b∥2/σr(A)<∥b∥2/τ\lVert b\rVert_2/\sigma_r(A)<\lVert b\rVert_2/\tauである。▨

例 6.4.0<δ≤10<\delta\le1に対して例 1.2のAδ=(11δ−δ)A_\delta=\begin{pmatrix}1&1\\\delta&-\delta\end{pmatrix}をとり、b:=(1,1)b:=(1,1)とする。例 1.2の分解Aδ=I2diag⁡(2,2δ)VTA_\delta=I_2\operatorname{diag}(\sqrt2,\sqrt2\delta)V^{\mathsf T}によりu1=e1u_1=e_1、u2=e2u_2=e_2、v1=(1,1)/2v_1=(1,1)/\sqrt2、v2=(1,−1)/2v_2=(1,-1)/\sqrt2、σ1=2\sigma_1=\sqrt2、σ2=2δ\sigma_2=\sqrt2\deltaである。

AδA_\deltaは正則であるから、Aδx=bA_\delta x=bの最小二乗解はx:=Aδ−1b=σ1−1(u1Tb)v1+σ2−1(u2Tb)v2=((1+δ−1)/2,(1−δ−1)/2)x:=A_\delta^{-1}b=\sigma_1^{-1}(u_1^{\mathsf T}b)v_1+\sigma_2^{-1}(u_2^{\mathsf T}b)v_2=\bigl((1+\delta^{-1})/2,(1-\delta^{-1})/2\bigr)であり、残差はb−Aδx=0b-A_\delta x=0、∥x∥22=(1+δ−2)/2\lVert x\rVert_2^2=(1+\delta^{-2})/2である。

2δ≤τ<2\sqrt2\delta\le\tau<\sqrt2を満たすτ\tauをとるとrτ(Aδ)=1r_\tau(A_\delta)=1であり、命題 6.3のxτx_\tauはxτ=σ1−1(u1Tb)v1=(1/2,1/2)x_\tau=\sigma_1^{-1}(u_1^{\mathsf T}b)v_1=(1/2,1/2)である。Aδxτ=(1,0)A_\delta x_\tau=(1,0)であるから残差はb−Aδxτ=(0,1)b-A_\delta x_\tau=(0,1)、そのノルムは11であり、∥xτ∥2=1/2\lVert x_\tau\rVert_2=1/\sqrt2は命題 6.3 (2)の上界∥b∥2/σ1(Aδ)=1\lVert b\rVert_2/\sigma_1(A_\delta)=1以下である。δ:=10−3\delta:=10^{-3}、τ:=10−2\tau:=10^{-2}とすると2δ≈1.414×10−3≤τ\sqrt2\delta\approx1.414\times10^{-3}\le\tauであり、∥x∥2=1000001/2≈707.107\lVert x\rVert_2=\sqrt{1000001/2}\approx707.107、残差のノルム00に対して、∥xτ∥2≈0.7071\lVert x_\tau\rVert_2\approx0.7071、残差のノルム11である。

例 6.5.

A:=(131313),b:=(123)A:=\begin{pmatrix}1&3\\1&3\\1&3\end{pmatrix},\qquad b:=\begin{pmatrix}1\\2\\3\end{pmatrix}

とする。a:=(1,1,1)a:=(1,1,1)と置くとA=30 u1v1TA=\sqrt{30}\,u_1v_1^{\mathsf T}、u1=a/3u_1=a/\sqrt3、v1=(1,3)/10v_1=(1,3)/\sqrt{10}であり、σ1(A)=30\sigma_1(A)=\sqrt{30}、σ2(A)=0\sigma_2(A)=0、rank⁡A=1\operatorname{rank}A=1である。ATA=(39927)A^{\mathsf T}A=\begin{pmatrix}3&9\\9&27\end{pmatrix}、ATb=(6,18)A^{\mathsf T}b=(6,18)であり、最小二乗解の全体はx1+3x2=2x_1+3x_2=2を満たすxxの全体である。命題 6.1 (1)により最小ノルム最小二乗解はA†b=v1(u1Tb)/30=(1/5,3/5)A^\dagger b=v_1(u_1^{\mathsf T}b)/\sqrt{30}=(1/5,3/5)であり、∥A†b∥2=10/5≈0.632\lVert A^\dagger b\rVert_2=\sqrt{10}/5\approx0.632、残差は(−1,0,1)(-1,0,1)である。

F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)、fl⁡\operatorname{fl}を最近接偶数丸めとし、内積とノルムを逐次和と正しく丸めた平方根で計算して、CPython の float と math.sqrt で次の値を観察した。

  • 正規方程式:ATAA^{\mathsf T}AとATbA^{\mathsf T}bは正確に計算される。§E20.5 定理 5.2 (5)の式でc11=fl⁡(3)c_{11}=\operatorname{fl}(\sqrt3)、c21=fl⁡(9/c11)c_{21}=\operatorname{fl}(9/c_{11})を計算すると、c22c_{22}の根号の中の計算値fl⁡(27−fl⁡(c212))\operatorname{fl}(27-\operatorname{fl}(c_{21}^2))は00であり、正でない。厳密算術でも27−(9/3)2=027-(9/\sqrt3)^2=0である。
  • Householder QR 法(§E20.6 定義 3.4、右辺bb):R^=(−1.7320508075688772−5.19615242270663206.280369834735101×10−16)\widehat R=\begin{pmatrix}-1.7320508075688772&-5.196152422706632\\0&6.280369834735101\times10^{-16}\end{pmatrix}、c^≈(−3.4641,−1.2247,0.70711)\widehat c\approx(-3.4641,-1.2247,0.70711)である。厳密算術で実行すると、§E20.6 命題 3.6のRRはAAと同じ階数11をもち、その(1,1)(1,1)成分−3-\sqrt3は00でないから、(2,2)(2,2)成分は00であり、後退代入を行うことができない。浮動小数点算術でのR^x=(c^1,c^2)\widehat Rx=(\widehat c_1,\widehat c_2)の後退代入の計算値はx^≈(5.850×1015,−1.950×1015)\hat x\approx(5.850\times10^{15},-1.950\times10^{15})、∥x^∥2≈6.17×1015\lVert\hat x\rVert_2\approx6.17\times10^{15}である。
  • 一側 Jacobi 法の段00:ζ\zeta、tt、cc、ssの計算値は1.33333333333333331.3333333333333333、0.33333333333333330.3333333333333333、0.94868329805051380.9486832980505138、0.31622776601683790.3162277660168379であり、回転後の第11列は2−53(1,1,1)2^{-53}(1,1,1)、第22列w2w_2は3.162277660168379 (1,1,1)3.162277660168379\,(1,1,1)、列のノルムは1.92×10−161.92\times10^{-16}と5.477225575051665.47722557505166である。厳密算術ではζ=4/3\zeta=4/3、t=1/3t=1/3、c=3/10c=3/\sqrt{10}、s=1/10s=1/\sqrt{10}であり、回転後の第11列は00、第22列は10 a\sqrt{10}\,aであって、定理 3.5 (4)のr=1r=1の場合になる。τ:=10−8\tau:=10^{-8}とし、第22列だけを残してxτ=(s,c) (w2Tb)/∥w2∥22x_\tau=(s,c)\,(w_2^{\mathsf T}b)/\lVert w_2\rVert_2^2を計算すると、計算値は(0.20000000000000004,0.6000000000000002)(0.20000000000000004,0.6000000000000002)であり、(1/5,3/5)(1/5,3/5)との差のノルムは、計算値を有理数として厳密に計算すると約2.04×10−162.04\times10^{-16}である。

この Householder QR 法の実行は範囲条件を満たす。R^\widehat Rの特異値を有効数字 60 桁の十進演算で計算するとσ1(R^)≈5.477225575051661\sigma_1(\widehat R)\approx5.477225575051661、σ2(R^)≈1.986×10−16\sigma_2(\widehat R)\approx1.986\times10^{-16}であり、∥R^−1∥2=1/σ2(R^)≈5.04×1015\lVert\widehat R^{-1}\rVert_2=1/\sigma_2(\widehat R)\approx5.04\times10^{15}である。u=2−53u=2^{-53}についてη3,2≈7.99×10−15\eta_{3,2}\approx7.99\times10^{-15}、η3,2∥A∥F≈4.38×10−14\eta_{3,2}\lVert A\rVert_F\approx4.38\times10^{-14}であるから、系 4.6により∣σi(R^)−σi(A)∣≤4.38×10−14\lvert\sigma_i(\widehat R)-\sigma_i(A)\rvert\le4.38\times10^{-14}である。系 5.3をA0=AA_0=A、ε1=0\varepsilon_1=0、ε2=4.38×10−14\varepsilon_2=4.38\times10^{-14}、σ^i=σi(R^)\hat\sigma_i=\sigma_i(\widehat R)、τ=10−8\tau=10^{-8}に適用すると、区間(τ−ε2,τ+ε2](\tau-\varepsilon_2,\tau+\varepsilon_2]に属するσ^i\hat\sigma_iは無いのでrτ(A)=1r_\tau(A)=1である。命題 6.3 (2)により、rτ(A)=1r_\tau(A)=1で切断した解のノルムは∥b∥2/σ1(A)=14/30≈0.683\lVert b\rVert_2/\sigma_1(A)=\sqrt{14/30}\approx0.683以下である。

7 演習

問題 7.1.補題 3.2の証明を完成させよ。

解答.

γ=0\gamma=0ならばc=1c=1、s=0s=0であり、c2+s2=1c^2+s^2=1、γ(c2−s2)+cs(α−β)=0\gamma(c^2-s^2)+cs(\alpha-\beta)=0である。

γ≠0\gamma\ne0とし、w:=1+ζ2w:=\sqrt{1+\zeta^2}と置く。(w−ζ)(w+ζ)=w2−ζ2=1(w-\zeta)(w+\zeta)=w^2-\zeta^2=1であり、w>∣ζ∣w>\lvert\zeta\rvertである。ζ≥0\zeta\ge0ならばt=1/(w+ζ)=w−ζt=1/(w+\zeta)=w-\zeta、ζ<0\zeta<0ならばt=−1/(w−ζ)=−(w+ζ)t=-1/(w-\zeta)=-(w+\zeta)であり、いずれの場合も(t+ζ)2=w2(t+\zeta)^2=w^2、すなわちt2+2ζt−1=0t^2+2\zeta t-1=0である。c=1/1+t2>0c=1/\sqrt{1+t^2}>0、s=tcs=tcからc2+s2=c2(1+t2)=1c^2+s^2=c^2(1+t^2)=1である。α−β=−2γζ\alpha-\beta=-2\gamma\zetaであるから

γ(c2−s2)+cs(α−β)=c2(γ(1−t2)−2γζt)=−c2γ(t2+2ζt−1)=0\gamma(c^2-s^2)+cs(\alpha-\beta)=c^2\bigl(\gamma(1-t^2)-2\gamma\zeta t\bigr)=-c^2\gamma(t^2+2\zeta t-1)=0

である。RRの第11列は(c,−s)(c,-s)、第22列は(s,c)(s,c)であるから、RT(αγγβ)RR^{\mathsf T}\begin{pmatrix}\alpha&\gamma\\\gamma&\beta\end{pmatrix}Rの(1,2)(1,2)成分はcsα+c2γ−s2γ−scβ=γ(c2−s2)+cs(α−β)=0cs\alpha+c^2\gamma-s^2\gamma-sc\beta=\gamma(c^2-s^2)+cs(\alpha-\beta)=0であり、この行列は対称であるから(2,1)(2,1)成分も00である。▨

前提記事