1 特異値と直交変換
補題 1.1.A∈Rm×nとし、p:=min{m,n}、Aの特異値(§D3.18 定理 1.2)をσ1(A)≥⋯≥σp(A)と書く。P∈Rm×mとQ∈Rn×nを直交行列とすると、1≤i≤pについてσi(PAQ)=σi(A)であり、∥PAQ∥2=∥A∥2である。
証明.§D3.18 定理 1.2により、直交行列U∈Rm×m、V∈Rn×nと、(i,i)成分がσi(A)(1≤i≤p)でその他の成分が0のΣ∈Rm×nが存在してA=UΣVTである。PUとQTVは直交行列であり、PAQ=(PU)Σ(QTV)Tは§D3.18 定理 1.2の形のPAQの分解であるから、§D3.18 命題 2.1によりσi(PAQ)=σi(A)である。§E20.6 補題 2.1 (1)により∥PAQ∥2=σ1(PAQ)=σ1(A)=∥A∥2である。▨
例 1.2.0<δ≤1に対して
Aδ:=(1δ1−δ),V:=21(111−1)と置く。Vは対称な直交行列であり、AδV=diag(2,2δ)であるから、Aδ=I2diag(2,2δ)VTは§D3.18 定理 1.2の形の分解であり、σ1(Aδ)=2、σ2(Aδ)=2δである。Aδの列は一次独立であるから、§E20.6 命題 2.3により、列の内積を並べた Gram 行列
G:=AδTAδ=(1+δ21−δ21−δ21+δ2)の固有値は2と2δ2であり、κ2(G)=κ2(Aδ)2=δ−2である。
F=F(2,53,−1022,1023)、flを最近接偶数丸めとし、δ:=2−27とする。Aδの成分はFの元であり、積δ⋅δ=2−54は正確に計算される。1+2−54の最近接点は1であり、1−2−54は1−2−53と1の中点であって、最近接偶数丸めにより仮数が偶数の1に丸められる。したがって浮動小数点算術で作った Gram 行列はG=(1111)であり、その固有値は2と0である。w:=(1,−1)/2と置くとG−G=−2δ2wwTであり、∥wwTh∥2=∣wTh∣≤∥h∥2でh=wのとき等号が成り立つから∥G−G∥2=2δ2であって、§E20.8 定理 4.3の評価∣λ1(G)−λ1(G)∣≤2δ2は等号で成り立つ。κ2(G)=254は1/u=253を超える。
2 二重対角化
定義 2.1.m≥nとし、B=(bij)∈Rm×nとする。j=iかつj=i+1を満たすすべての(i,j)についてbij=0であるとき、Bを 上二重対角行列 (upper bidiagonal matrix) という。
定義 2.2.m≥n≥1を整数とし、A∈Rm×nとする。作業行列W=(wij)∈Rm×nをW:=Aで初期化し、k=1,…,nの順に次の段kを行う計算式を、Aの Householder 二重対角化 (Householder bidiagonalization) という。
- ℓ:=m−k+1、x:=(wkk,…,wmk)∈Rℓと置く。x=0ならば、xから§E20.6 定義 3.4 (2)の計算式でα、s、v、pを定め、wkkを−sαに、wik(k<i≤m)を0に置き換え、j=k+1,…,nの順に、y:=(wkj,…,wmj)に§E20.6 定義 3.4 (4)の計算式を施して(wkj,…,wmj)を(yi−τvi)1≤i≤ℓの値に置き換える。x=0ならば何も行わない。
- k≤n−2ならば、(1)の後のWについてℓ′:=n−k、x′:=(wk,k+1,…,wkn)∈Rℓ′と置く。x′=0ならば、x′から§E20.6 定義 3.4 (2)の計算式でα′、s′、v′、p′を定め、wk,k+1を−s′α′に、wkj(k+1<j≤n)を0に置き換え、i=k+1,…,mの順に、z:=(wi,k+1,…,win)に§E20.6 定義 3.4 (4)の計算式をv′、p′で施して(wi,k+1,…,win)を(zj−τvj′)1≤j≤ℓ′の値に置き換える。k>n−2またはx′=0ならば何も行わない。
段nの後のWをこの計算式の出力という。
定理 2.3.m≥n≥1を整数とし、A∈Rm×nとする。
- Aの Householder 二重対角化を厳密算術で実行し、その出力をBとする。段kの定義 2.2 (1)のxが0ならばLk:=Im、0でないならば段kのvによりLk:=diag(Ik−1,Hv)と置く。k≤n−2であり段kの定義 2.2 (2)でx′=0ならば段kのv′によりRk:=diag(Ik,Hv′)、それ以外のkではRk:=Inと置く。U:=L1⋯LnとV:=R1⋯Rnは直交行列であり、Bは上二重対角行列であってB=UTAVが成り立つ。さらに1≤i≤nについてσi(B)=σi(A)である。
- n≥2とし、
N(m,n):=4mn2−34n3−2mn+2n2−4m+322n−10
と置く。Householder 二重対角化の四則演算と平方根の回数はN(m,n)以下であり、すべての段でx=0であり、k≤n−2のすべての段でx′=0であるときN(m,n)に等しい。sv1の計算の符号の反転は演算に数えない。m≥nであるからN(m,n)≤4mn2−34n3+310nである。
証明.(1)を示す。段kの前の作業行列をW(k−1)、定義 2.2 (1)の後の作業行列をW(k)、段kの後の作業行列をW(k)とする。§E20.6 補題 3.2 (1)によりLkとRkは対称な直交行列である。0≤k≤nについて、次の二条件をZkとする。
(a) j≤k, i>j⇒wij(k)=0,(b) i≤k, j>i+1⇒wij(k)=0.Z0は条件を課さない。1≤k≤nとし、Zk−1を仮定する。
W(k)=LkW(k−1)である。実際、x=0ならばLk=Imである。x=0ならば、Lkを左から掛ける操作は第1行から第k−1行を変えず、各列の第k成分から第m成分を並べたベクトルyをHvyに置き換える。j<kならば (a) によりそのyは0であり、Hv0=0である。第k列のyはxであり、§E20.6 補題 3.2 (2)によりHvx=−sαe1であって、これは定義 2.2 (1)の書き込みに一致する。j>kならば、p=αsv1であるから§E20.6 定義 3.4 (4)の値はy−(vTy/(αsv1))vであり、§E20.6 補題 3.2 (2)によりこれはHvyである。したがってW(k)は (a) をj≤kについて満たし、第1行から第k−1行はW(k−1)と同じであるから (b) をi≤k−1について満たす。
W(k)=W(k)Rkである。実際、Rk=Inの場合は定義 2.2 (2)は何も行わない。Rk=diag(Ik,Hv′)の場合、Hv′は対称であるから、Rkを右から掛ける操作は第1列から第k列を変えず、各行の第k+1成分から第n成分を並べたベクトルzをHv′zに置き換える。i<kならばj≥k+1>i+1であるから、(b) によりそのzは0である。第k行のzはx′であり、§E20.6 補題 3.2 (2)によりHv′x′=−s′α′e1である。i>kならば、上と同じく§E20.6 定義 3.4 (4)の値はHv′zである。したがってW(k)は、第1列から第k列がW(k)と同じであるから (a) を満たし、(b) をi≤k−1について満たす。i=kについては、k≤n−2かつx′=0ならば上の書き込みにより、k≤n−2かつx′=0ならばx′の定義により、k≥n−1ならばj>k+1≥nを満たすj≤nが存在しないことにより、(b) が成り立つ。これでZkが成り立つ。
kに関する帰納法によりZnが成り立つ。i>nならば第i行の成分の列番号j≤nはj<iを満たすので、(a) によりその成分は0である。したがってB=W(n)は上二重対角行列である。LkT=Lkであるから
B=Ln⋯L1AR1⋯Rn=UTAVであり、直交行列の積U、Vは直交行列である。補題 1.1によりσi(B)=σi(A)である。
(2)を示す。段kの定義 2.2 (1)でx=0ならば、ℓ=m−k+1について、§E20.6 定義 3.4 (2)の計算式はℓ回の乗算、ℓ−1回の加算、平方根1回、v1の加算1回、pの乗算1回の2ℓ+2回であり、§E20.6 定義 3.4 (4)の計算式は一つの列についてωに2ℓ−1回、τに1回、更新に2ℓ回の4ℓ回であって、n−k個の列に施す。段k≤n−2の定義 2.2 (2)でx′=0ならば、同じくℓ′=n−kについて2ℓ′+2+4ℓ′(m−k)回である。x=0またはx′=0の段では対応する回数が0になる。すべての段でx=0、x′=0であるときの回数は
k=1∑n(2(m−k+1)+2+4(m−k+1)(n−k))+k=1∑n−2(2(n−k)+2+4(n−k)(m−k))である。j:=n−kと置くとm−k=m−n+jであり、第一の和は2mn−n2+3n+4∑j=0n−1j(m−n+j+1)、第二の和はn2+n−6+4∑j=2n−1j(m−n+j)である。第二の和の∑j=2n−1にj=1の項を加えて4(m−n+1)を差し引くと、二つの4∑の和は
4j=0∑n−1j(2(m−n+j)+1)−4(m−n+1)=4(m−n)n(n−1)+34n(n−1)(2n−1)+2n(n−1)−4(m−n+1)であり、これに2mn−n2+3n+n2+n−6を加えて展開するとN(m,n)を得る。最後にN(m,n)−4mn2+34n3=−2n(m−n)−4m+322n−10であり、m≥nから右辺は−4n+322n−10=310n−10以下である。▨
3 一側 Jacobi 法
定義 3.1.n≥2、1≤p<q≤nとし、c,s∈Rはc2+s2=1を満たすとする。n次単位行列の(p,p)、(p,q)、(q,p)、(q,q)成分をそれぞれc、s、−s、cに置き換えた行列J(p,q;c,s)を 平面回転 (plane rotation) という。J(p,q;c,s)の第p列cep−seqと第q列sep+ceqは直交する単位ベクトルであるから、平面回転は直交行列である。X=(xij)∈Rn×nに対してoff(X):=∑i=jxij2と置く。
補題 3.2.α,β,γ∈Rとする。γ=0ならばc:=1、s:=0と置く。γ=0ならばζ:=(β−α)/(2γ)と置き、ζ≥0のときt:=1/(ζ+1+ζ2)、ζ<0のときt:=−1/(−ζ+1+ζ2)とし、c:=1/1+t2、s:=tcと置く。このときc2+s2=1であり、
γ(c2−s2)+cs(α−β)=0が成り立つ。すなわちR:=(c−ssc)についてRT(αγγβ)Rは対角行列である。
補題 3.3.n≥2、1≤p<q≤nとし、X=(xij)∈Rn×nはXT=Xを満たし、c,s∈Rはc2+s2=1を満たすとする。J:=J(p,q;c,s)、X′=(xij′):=JTXJと置く。
- X′T=X′であり、i,j∈/{p,q}ならばxij′=xijである。xpq′=xpq(c2−s2)+cs(xpp−xqq)である。
- off(X′)=off(X)−2xpq2+2xpq′2が成り立つ。
証明.X′T=JTXTJ=X′である。Jの第j列(j∈/{p,q})はejであり、第p列はcep−seq、第q列はsep+ceqである。i∈/{p,q}ならばJTei=eiであるから、xij′=eiTXJejであり、
xij′=xij (j∈/{p,q}),xip′=cxip−sxiq,xiq′=sxip+cxiqである。xpq′=(cep−seq)TX(sep+ceq)=csxpp+c2xpq−s2xqp−scxqqであり、xqp=xpqから(1)を得る。
c2+s2=1であるから、i∈/{p,q}についてxip′2+xiq′2=xip2+xiq2である。i=jを満たす組(i,j)を、{i,j}∩{p,q}=∅のもの、{i,j}と{p,q}がただ一つの元を共有するもの、{i,j}={p,q}のものに分ける。第一の組の項は変わらない。第二の組の項の和は、XとX′の対称性により2∑i∈/{p,q}(xip2+xiq2)であり、変わらない。第三の組の項の和はXでは2xpq2、X′では2xpq′2である。これで(2)は示された。▨
定義 3.4.m∈N≥1、n≥2を整数とし、A∈Rm×nとする。A0:=A、V0:=Inと置き、k≥0についてAk、Vkから次のようにAk+1、Vk+1を定める。Gk=(gij(k)):=AkTAkと置き、1≤p<q≤nを満たす対(p,q)のうち∣gpq(k)∣が最大のものの中で辞書式順序が最小のものをとる。α:=gpp(k)、β:=gqq(k)、γ:=gpq(k)から補題 3.2のc、sを定め、Jk:=J(p,q;c,s)、Ak+1:=AkJk、Vk+1:=VkJkと置く。AkJkは、Akの第p列apと第q列aqをそれぞれcap−saqとsap+caqに置き換えた行列である。こうして定まる列(Ak,Vk)k≥0を、Aに対する 一側 Jacobi 法 (one-sided Jacobi method) という。
定理 3.5.m∈N≥1、n≥2を整数とし、A∈Rm×n、p:=min{m,n}とする。(Ak,Vk)k≥0をAに対する一側 Jacobi 法とし、Gk:=AkTAk、θn:=1−2/(n(n−1))と置く。
- 任意のk≥0について、Vkは直交行列であり、Ak=AVk、Gk=VkTATAVkが成り立つ。
- 任意のk≥0についてoff(Gk+1)≤θnoff(Gk)であり、off(Gk)≤θnkoff(ATA)である。
- k≥0とし、Akの列の Euclid ノルムを大きい順に並べたものをνk,1≥⋯≥νk,nとする。1≤i≤pならば∣νk,i2−σi(A)2∣≤off(Gk)1/2であり、p<i≤nならばνk,i2≤off(Gk)1/2である。
- (Vk)k≥0は収束する部分列をもつ。収束する部分列の極限をVとすると、Vは直交行列であり、AVの列は互いに直交する。{1,…,n}の置換πを∥AVeπ(1)∥2≥⋯≥∥AVeπ(n)∥2となるようにとり、vi:=Veπ(i)、wi:=∥Avi∥2、r:=#{i∣wi>0}と置く。このときr=rankAであり、1≤i≤pについてσi(A)=wiである。さらに、ui:=wi−1Avi(1≤i≤r)をRmの正規直交基底u1,…,umに延長すると、v1,…,vnはRnの正規直交基底であり、A=∑i=1rwiuiviTは§D3.18 定理 1.2の形のAの特異値分解である。
証明.(1)を示す。V0=In、A0=AV0である。Vkが直交行列でAk=AVkならば、平面回転Jkは直交行列であるからVk+1=VkJkは直交行列であり、Ak+1=AkJk=AVk+1である。kに関する帰納法により前半が従い、Gk=AkTAk=VkTATAVkである。
(2)を示す。k≥0とし、段kで選んだ対を(p,q)、γ:=gpq(k)とする。Gkは対称であり、Gk+1=JkTAkTAkJk=JkTGkJkである。補題 3.3 (1)と補題 3.2によりGk+1の(p,q)成分はγ(c2−s2)+cs(gpp(k)−gqq(k))=0であり、補題 3.3 (2)によりoff(Gk+1)=off(Gk)−2γ2である。off(Gk)はn(n−1)個の項(gij(k))2(i=j)の和であり、Gkの対称性と対の選び方により各項はγ2以下であるから、γ2≥off(Gk)/(n(n−1))である。したがってoff(Gk+1)≤θnoff(Gk)であり、G0=ATAからkに関する帰納法により後半が従う。
(3)を示す。DkをGkの対角成分を並べた対角行列とし、Ek:=Gk−Dkと置く。Dkの対角成分はAkの列のノルムの二乗であり、Ekは対称であって、§E20.6 補題 2.1 (1)により∥Ek∥2≤∥Ek∥F=off(Gk)1/2である。§E20.8 定理 4.3をDkとEkに適用すると、1≤j≤nについて∣λj(Gk)−λj(Dk)∣≤off(Gk)1/2であり、λn+1−i(Dk)=νk,i2である。(1)によりdet(tI−Gk)=det(tI−ATA)である。§D3.18 定理 1.2の分解A=UΣVATをとるとATA=VAΣTΣVATであり、ΣTΣ=diag(σ1(A)2,…,σp(A)2,0,…,0)であるから、λn+1−i(Gk)は1≤i≤pならばσi(A)2、p<i≤nならば0である。j=n+1−iと置いて主張を得る。
(4)を示す。直交行列の各列は単位ベクトルであるから、Vkの各成分の絶対値は1以下である。§D1.8 定理 2.2をn2個の成分に順に適用して部分列をとり直すと、収束する部分列が得られる。収束する任意の部分列を(Vkl)l≥1、その極限をVとする。行列の積の成分は成分の多項式であるから、VTV=limlVklTVkl=Inであり、(1)によりVTATAV=limlGklである。offは成分の多項式であり、n≥2から0≤θn<1であるので、(2)により
off((AV)T(AV))=l→∞limoff(Gkl)=0である。したがって(AV)T(AV)は対角行列であり、AVの列は互いに直交する。
v1,…,vnは直交行列Vの列を並べ替えたものであるから、Rnの正規直交基底である。Av1,…,Avnは互いに直交し、そのうち0でないものはAv1,…,Avrである。互いに直交する0でないベクトルは一次独立であるからr≤mであり、r≤nと合わせてr≤pである。u1,…,urは正規直交系であり、これを延長した正規直交基底u1,…,umが存在する。U:=(u1 ⋯ um)、V′:=(v1 ⋯ vn)と置き、(i,i)成分がwi(1≤i≤p)でその他の成分が0のΣ∈Rm×nをとる。UΣの第i列は、i≤rならばwiui=Avi、r<i≤pならばwiui=0=Avi、i>pならば0=Aviであるから、UΣ=AV′であり、A=UΣV′T=∑i=1rwiuiviTである。U、V′は直交行列であり、w1≥⋯≥wp≥0であるから、この分解は§D3.18 定理 1.2の形であり、§D3.18 命題 2.1によりσi(A)=wi(1≤i≤p)である。§D3.18 定理 1.2により正の特異値の個数はrankAであるから、r=rankAである。▨
例 3.6.
A:=31040101−1,G0=ATA=101211217−11−12とする。off(G0)=2(144+1+1)=292であり、∣gpq(0)∣が最大の対は(1,2)、γ=12、α=10、β=17である。ζ=7/24、1+ζ2=25/24、t=1/(7/24+25/24)=3/4、c=4/5、s=3/5である。第1列(3,1,0)と第2列(4,0,1)は(0,4/5,−3/5)と(5,3/5,4/5)に置き換わり、
A1=04/5−3/553/54/501−1,G1=107/5026−1/57/5−1/52である。off(G1)=2(49/25+1/25)=4=292−2⋅122であり、定理 3.5 (2)の上界θ3off(G0)=584/3より小さい。G0の(1,3)、(2,3)成分の組(1,−1)は(7/5,−1/5)に回り、二乗和2は保たれる。
det(tI−ATA)=t3−29t2+78t−1の根は、有効数字 60 桁の十進演算で求めるとσ1(A)2≈26.00167、σ2(A)2≈2.98545、σ3(A)2≈0.0128822である。A1の列のノルムの二乗は大きい順に26,2,1であり、差の絶対値0.00167、0.98545、0.98712は定理 3.5 (3)の上界off(G1)1/2=2以下である。
例 3.7.F=F(2,53,−1022,1023)、flを最近接偶数丸め、u=2−53、δ:=2−27とし、例 1.2のAδに一側 Jacobi 法の段0を浮動小数点算術で施す。Gram 行列の計算値はG=(1111)であり、α=β=γ=1からζ=0、t=1である。cの計算値はc^:=fl(1/fl(2))であり、sの計算値もc^である。c^δは正確に計算され、第1列の計算値は(fl(c^−c^),fl(c^δ+c^δ))=(0,2−26c^)、第2列の計算値は(2c^,0)である。計算した二列は正確に直交し、ノルムは2−26c^と2c^である。60 桁の十進演算で∣2c^−1∣≈8.87×10−17<uであるから、2−26c^はσ2(Aδ)=2−26/2を、2c^はσ1(Aδ)=2を、いずれも相対誤差u未満で近似する。Gの成分1±δ2の丸めで失われたδ2は回転の角の決定にだけ関わり、第1列の第2成分はδの倍数どうしの和c^δ+c^δとして計算される。
4 特異値の摂動
補題 4.1.m,n∈N≥1、p:=min{m,n}とし、M∈Rm×nに対して
C(M):=(0MTM0)∈R(m+n)×(m+n)と置く。C(M)は対称であり、その固有値を重複度を込めてλ1(C(M))≤⋯≤λm+n(C(M))と並べる。
- det(tI−C(M))=tm+n−2p∏i=1p(t−σi(M))(t+σi(M))であり、1≤k≤pについてλm+n+1−k(C(M))=σk(M)である。
- ∥C(M)∥2=∥M∥2である。
証明.(1)を示す。§D3.18 定理 1.2によりM=UΣVTと書き、Uの列をu1,…,um、Vの列をv1,…,vnとする。MV=UΣとMTU=VΣTから、i≤pについてMvi=σi(M)ui、MTui=σi(M)viであり、p<j≤nについてMvj=0、p<i≤mについてMTui=0である。i≤pについてyi±:=21(ui±vi)と置くと
C(M)yi±=21(±MviMTui)=±σi(M)yi±であり、p<i≤mについてC(M)(ui0)=0、p<j≤nについてC(M)(0vj)=0である。これら2p+(m−p)+(n−p)=m+n個のベクトルは正規直交系をなす。実際、(yi+)Tyi−=(1−1)/2=0であり、その他の対の内積はu1,…,umとv1,…,vnの正規直交性から0である。これらを列とする直交行列をYとすると、YTC(M)Yは対角成分が±σi(M)(i≤p)と0(m+n−2p個)の対角行列であり、特性多項式の等式を得る。σ1(M)≥⋯≥σp(M)≥0であり、その他の根−σi(M)と0はσp(M)以下であるから、大きい方からk番目の根はσk(M)である。
(2)を示す。x∈Rm、y∈Rnについて、§E20.6 補題 2.1 (1)により∥MT∥2=∥M∥2であるから
C(M)(xy)22=∥My∥22+∥MTx∥22≤∥M∥22(∥y∥22+∥x∥22)であり、∥C(M)∥2≤∥M∥2である。x=0、y=v1とすると左辺は∥Mv1∥22=σ1(M)2であり、§E20.6 補題 2.1 (1)によりこれは∥M∥22に等しい。▨
定理 4.2.A,E∈Rm×n、p:=min{m,n}とする。1≤k≤pについて
∣σk(A+E)−σk(A)∣≤∥E∥2が成り立つ。
証明.補題 4.1の記号でC(A+E)=C(A)+C(E)であり、C(A)とC(E)は対称である。§E20.8 定理 4.3を番号m+n+1−kについて適用し、補題 4.1 (1)と補題 4.1 (2)を用いると、∣σk(A+E)−σk(A)∣≤∥C(E)∥2=∥E∥2である。▨
系 4.4.A∈Rm×n、p:=min{m,n}とし、§D3.18 定理 1.2によりA=∑i=1pσi(A)uiviTと書く。0≤r<pとし、Ar:=∑i=1rσi(A)uiviT(A0:=0)と置く。rankAr≤rであり、∥A−Ar∥2=σr+1(A)であって、rankB≤rを満たす任意のB∈Rm×nについて∥A−B∥2≥σr+1(A)である。
証明.rankB≤rならば、§D3.18 定理 1.2によりBの正の特異値は高々r個であり、σr+1(B)=0である。定理 4.2をBとA−Bに適用するとσr+1(A)=∣σr+1(A)−σr+1(B)∣≤∥A−B∥2である。
Arの像はu1,…,urで張られるからrankAr≤rである。§D3.18 定理 1.2の直交行列U=(u1 ⋯ um)、V=(v1 ⋯ vn)についてA−Ar=UΣ′VTであり、Σ′∈Rm×nは(i,i)成分がσi(A)(r<i≤p)でその他の成分が0の行列である。補題 1.1により∥A−Ar∥2=∥Σ′∥2であり、h∈Rnについて∥Σ′h∥22=∑r<i≤pσi(A)2hi2≤σr+1(A)2∥h∥22で、h=er+1のとき等号が成り立つ。▨
系 4.6.Fを浮動小数点数系、uをその単位丸め誤差、flをFの最近接丸めとし、整数m≥n≥1が(2m+6)u<1を満たすとする。ηm,nを§E20.6 定理 4.5のとおりに置く。A∈Fm×n、b∈Fmとし、Aと右辺bの Householder QR 法をFとflの浮動小数点算術で実行すると範囲条件を満たすとし、その出力を(R,c)とする。このとき1≤i≤nについて∣σi(R)−σi(A)∣≤ηm,n∥A∥Fである。
証明.§E20.6 定理 4.5 (1)により、直交行列Qと∥ΔA∥F≤ηm,n∥A∥Fを満たすΔAが存在してA+ΔA=Q(R0)である。§D3.18 定理 1.2によりR=URΣRVRTと書くと、(R0)=diag(UR,Im−n)(ΣR0)VRTは§D3.18 定理 1.2の形の分解であるから、§D3.18 命題 2.1と補題 1.1によりσi(A+ΔA)=σi(R)である。定理 4.2と§E20.6 補題 2.1 (1)により∣σi(R)−σi(A)∣≤∥ΔA∥2≤∥ΔA∥F≤ηm,n∥A∥Fである。▨
5 数値的階数
定義 5.1.A∈Rm×n、p:=min{m,n}とし、τ≥0を実数とする。σi(A)>τを満たす1≤i≤pの個数rτ(A)を、許容量τに関するAの 数値的階数 (numerical rank) という。§D3.18 定理 1.2によりr0(A)=rankAである。
命題 5.2.A∈Rm×n、p:=min{m,n}とし、τ≥0を実数とする。
- rτ(A)=min{rankA∣A∈Rm×n, ∥A−A∥2≤τ}である。
- ε≥0とし、E∈Rm×nは∥E∥2≤εを満たすとする。すべての1≤i≤pについて∣σi(A)−τ∣>εならば、rτ(A+E)=rτ(A)である。
証明.(1)を示す。r:=rτ(A)と置く。特異値は大きい順に並んでいるから、σi(A)>τであることとi≤rであることは同値である。∥A−A∥2≤τならば、定理 4.2によりi≤rについてσi(A)≥σi(A)−τ>0であり、§D3.18 定理 1.2によりrankA≥rである。r<pならば、系 4.4のArはrankAr≤rと∥Ar−A∥2=σr+1(A)≤τを満たす。r=pならばA:=AはrankA≤p=rを満たす。
(2)を示す。σi(A)>τならば仮定によりσi(A)>τ+εであり、定理 4.2によりσi(A+E)≥σi(A)−ε>τである。σi(A)≤τならば仮定によりσi(A)<τ−εであり、σi(A+E)≤σi(A)+ε<τである。▨
系 5.3.A0,A∈Rm×n、p:=min{m,n}とし、ε1,ε2,τ≥0を実数とする。∥A−A0∥2≤ε1であり、実数σ^1,…,σ^pがすべての1≤i≤pについて∣σ^i−σi(A)∣≤ε2を満たすとする。ε:=ε1+ε2と置く。区間(τ−ε,τ+ε]に属するσ^iが無いならば、rτ(A0)=#{i∣1≤i≤p, σ^i>τ}である。
証明.定理 4.2により∣σi(A)−σi(A0)∣≤ε1であり、∣σ^i−σi(A0)∣≤εである。σ^i>τならば仮定によりσ^i>τ+εであり、σi(A0)≥σ^i−ε>τである。σ^i≤τならば仮定によりσ^i≤τ−εであり、σi(A0)≤σ^i+ε≤τである。▨
例 5.4.0<δ≤1に対して例 1.2のAδ=(1δ1−δ)をとる。σ1(Aδ)=2、σ2(Aδ)=2δであり、Aδの階数は2である。0≤τ<2ならば、2δ>τのときrτ(Aδ)=2、2δ≤τのときrτ(Aδ)=1である。系 4.4のA1=2e1(21(1,1))=(1010)は階数1であり、∥Aδ−A1∥2=2δである。
τ:=10−6、δ:=8×10−7、δ′:=6×10−7とすると、2δ≈1.131×10−6>τ、2δ′≈8.49×10−7<τであり、rτ(Aδ)=2、rτ(Aδ′)=1である。Aδ′−Aδ=(δ′−δ)(010−1)であり、E:=Aδ′−Aδについて∥E∥2=2(δ−δ′)≈2.83×10−7=:εである。σ2(Aδ)−τ≈1.31×10−7≤εであり、命題 5.2 (2)の間隔の仮定は成り立たず、rτ(Aδ+E)=rτ(Aδ)である。δとδ′をτ/2の両側から近づけると、判定を変える摂動のノルム2(δ−δ′)はいくらでも小さくなる。
6 最小ノルム最小二乗解
命題 6.1.A∈Rm×n、r:=rankAとし、§D3.18 定理 1.2の正規直交基底u1,…,um、v1,…,vnとσi:=σi(A)をとる。M:=∑i=1rσi−1viuiT∈Rn×m(r=0ならばM:=0)と置く。
- 任意のb∈Rmについて、MbはAx=bの最小二乗解であり、Ax=bのMb以外の任意の最小二乗解xは∥x∥2>∥Mb∥2を満たす。特にMはAだけから定まり、特異値分解の選び方によらない。
- r≥1ならば∥M∥2=1/σr(A)である。
- m≥nでありAの列が一次独立ならば、M=(ATA)−1ATであり、∥M∥2=1/σn(A)である。
証明.(1)を示す。Mb=∑i=1rσi−1(uiTb)viは§D3.18 命題 4.1のx+であり、同じ命題により最小二乗解の全体は{Mb+z∣z∈span{vr+1,…,vn}}である。Mb∈span{v1,…,vr}はzに直交するから∥Mb+z∥22=∥Mb∥22+∥z∥22であり、z=0ならば∥Mb+z∥2>∥Mb∥2である。したがってMbはノルム最小の最小二乗解としてAとbから定まり、b=e1,…,emについての値からMはAだけから定まる。
(2)を示す。S∈Rn×mを(i,i)成分がσi−1(1≤i≤r)でその他の成分が0の行列とすると、M=VSUTであり、補題 1.1により∥M∥2=∥S∥2である。h∈Rmについて∥Sh∥22=∑i=1rσi−2hi2≤σr−2∥h∥22であり、h=erのとき等号が成り立つ。
(3)を示す。§E20.6 命題 1.2 (2)により、任意のbについてAx=bのただ一つの最小二乗解は(ATA)−1ATbであり、(1)によりこれはMbに等しい。r=nであるから、(2)により∥M∥2=1/σn(A)である。▨
定義 6.2.A∈Rm×n、b∈Rmとする。Ax=bの最小二乗解のうちノルムが最小のもの(命題 6.1 (1)によりただ一つ存在する)を、Ax=bの 最小ノルム最小二乗解 (minimum-norm least squares solution) という。命題 6.1 (1)によりAから定まる行列MをAの 擬似逆 (pseudoinverse) といい、A†と書く。
命題 6.3.A∈Rm×n、p:=min{m,n}とし、実数τ≥0についてr:=rτ(A)≥1とする。§D3.18 定理 1.2の正規直交基底u1,…,um、v1,…,vnとσi:=σi(A)をとり、
Aτ:=i=1∑rσiuiviT,xτ:=i=1∑rσi−1viuiTb(b∈Rm)と置く。
- AτはAとτだけから定まり、特異値分解の選び方によらない。rankAτ=r、σr(Aτ)=σr(A)である。r<pならば∥A−Aτ∥2=σr+1(A)≤τであり、r=pならばAτ=Aである。
- 任意のb∈Rmについてxτ=Aτ†bであり、xτはAτx=bの最小ノルム最小二乗解であって、∥xτ∥2≤∥b∥2/σr(A)を満たす。τ>0かつb=0ならば∥xτ∥2<∥b∥2/τである。
証明.(1)を示す。§D3.18 定理 1.2の分解からATAvi=σi2vi(i≤p)、ATAvi=0(i>p)であり、v1,…,vnはATAの正規直交な固有ベクトルからなる基底である。したがってλ>τ2に対する固有空間ker(ATA−λI)はσi2=λを満たすviで張られ、σi,τ≥0からσi>τとσi2>τ2は同値であるので、
span{v1,…,vr}=λ>τ2∑ker(ATA−λI)である。右辺はAとτだけから定まり、その上への直交射影P=∑i=1rviviTもAとτだけから定まる。i≤pについてAvi=σiuiであるからAP=Aτである。Aτ=UΣτVTであり、Στは(i,i)成分がσi(i≤r)でその他の成分が0の行列であるから、この分解は§D3.18 定理 1.2の形であり、§D3.18 命題 2.1によりAτの特異値はσ1,…,σr,0,…,0である。したがってσr(Aτ)=σrであり、§D3.18 定理 1.2によりrankAτ=rである。r<pならばAτは系 4.4のArであり、∥A−Aτ∥2=σr+1≤τである。r=pならばAτ=∑i=1pσiuiviTであり、§D3.18 定理 1.2の表示ではrankA<i≤pについてσi=0であるから、Aτ=Aである。
(2)を示す。命題 6.1をAτと上の分解Aτ=UΣτVTに適用すると、rankAτ=rであるからAτ†=∑i=1rσi−1viuiTであり、xτ=Aτ†bは命題 6.1 (1)によりAτx=bの最小ノルム最小二乗解である。命題 6.1 (2)により∥xτ∥2≤∥Aτ†∥2∥b∥2=∥b∥2/σr(A)であり、τ>0かつb=0ならば、σr(A)>τ>0と∥b∥2>0から∥b∥2/σr(A)<∥b∥2/τである。▨
例 6.4.0<δ≤1に対して例 1.2のAδ=(1δ1−δ)をとり、b:=(1,1)とする。例 1.2の分解Aδ=I2diag(2,2δ)VTによりu1=e1、u2=e2、v1=(1,1)/2、v2=(1,−1)/2、σ1=2、σ2=2δである。
Aδは正則であるから、Aδx=bの最小二乗解はx:=Aδ−1b=σ1−1(u1Tb)v1+σ2−1(u2Tb)v2=((1+δ−1)/2,(1−δ−1)/2)であり、残差はb−Aδx=0、∥x∥22=(1+δ−2)/2である。
2δ≤τ<2を満たすτをとるとrτ(Aδ)=1であり、命題 6.3のxτはxτ=σ1−1(u1Tb)v1=(1/2,1/2)である。Aδxτ=(1,0)であるから残差はb−Aδxτ=(0,1)、そのノルムは1であり、∥xτ∥2=1/2は命題 6.3 (2)の上界∥b∥2/σ1(Aδ)=1以下である。δ:=10−3、τ:=10−2とすると2δ≈1.414×10−3≤τであり、∥x∥2=1000001/2≈707.107、残差のノルム0に対して、∥xτ∥2≈0.7071、残差のノルム1である。
例 6.5.
A:=111333,b:=123とする。a:=(1,1,1)と置くとA=30u1v1T、u1=a/3、v1=(1,3)/10であり、σ1(A)=30、σ2(A)=0、rankA=1である。ATA=(39927)、ATb=(6,18)であり、最小二乗解の全体はx1+3x2=2を満たすxの全体である。命題 6.1 (1)により最小ノルム最小二乗解はA†b=v1(u1Tb)/30=(1/5,3/5)であり、∥A†b∥2=10/5≈0.632、残差は(−1,0,1)である。
F=F(2,53,−1022,1023)、flを最近接偶数丸めとし、内積とノルムを逐次和と正しく丸めた平方根で計算して、CPython の float と math.sqrt で次の値を観察した。
- 正規方程式:ATAとATbは正確に計算される。§E20.5 定理 5.2 (5)の式でc11=fl(3)、c21=fl(9/c11)を計算すると、c22の根号の中の計算値fl(27−fl(c212))は0であり、正でない。厳密算術でも27−(9/3)2=0である。
- Householder QR 法(§E20.6 定義 3.4、右辺b):R=(−1.73205080756887720−5.1961524227066326.280369834735101×10−16)、c≈(−3.4641,−1.2247,0.70711)である。厳密算術で実行すると、§E20.6 命題 3.6のRはAと同じ階数1をもち、その(1,1)成分−3は0でないから、(2,2)成分は0であり、後退代入を行うことができない。浮動小数点算術でのRx=(c1,c2)の後退代入の計算値はx^≈(5.850×1015,−1.950×1015)、∥x^∥2≈6.17×1015である。
- 一側 Jacobi 法の段0:ζ、t、c、sの計算値は1.3333333333333333、0.3333333333333333、0.9486832980505138、0.3162277660168379であり、回転後の第1列は2−53(1,1,1)、第2列w2は3.162277660168379(1,1,1)、列のノルムは1.92×10−16と5.47722557505166である。厳密算術ではζ=4/3、t=1/3、c=3/10、s=1/10であり、回転後の第1列は0、第2列は10aであって、定理 3.5 (4)のr=1の場合になる。τ:=10−8とし、第2列だけを残してxτ=(s,c)(w2Tb)/∥w2∥22を計算すると、計算値は(0.20000000000000004,0.6000000000000002)であり、(1/5,3/5)との差のノルムは、計算値を有理数として厳密に計算すると約2.04×10−16である。
この Householder QR 法の実行は範囲条件を満たす。Rの特異値を有効数字 60 桁の十進演算で計算するとσ1(R)≈5.477225575051661、σ2(R)≈1.986×10−16であり、∥R−1∥2=1/σ2(R)≈5.04×1015である。u=2−53についてη3,2≈7.99×10−15、η3,2∥A∥F≈4.38×10−14であるから、系 4.6により∣σi(R)−σi(A)∣≤4.38×10−14である。系 5.3をA0=A、ε1=0、ε2=4.38×10−14、σ^i=σi(R)、τ=10−8に適用すると、区間(τ−ε2,τ+ε2]に属するσ^iは無いのでrτ(A)=1である。命題 6.3 (2)により、rτ(A)=1で切断した解のノルムは∥b∥2/σ1(A)=14/30≈0.683以下である。
7 演習
解答.
γ=0ならばc=1、s=0であり、c2+s2=1、γ(c2−s2)+cs(α−β)=0である。
γ=0とし、w:=1+ζ2と置く。(w−ζ)(w+ζ)=w2−ζ2=1であり、w>∣ζ∣である。ζ≥0ならばt=1/(w+ζ)=w−ζ、ζ<0ならばt=−1/(w−ζ)=−(w+ζ)であり、いずれの場合も(t+ζ)2=w2、すなわちt2+2ζt−1=0である。c=1/1+t2>0、s=tcからc2+s2=c2(1+t2)=1である。α−β=−2γζであるから
γ(c2−s2)+cs(α−β)=c2(γ(1−t2)−2γζt)=−c2γ(t2+2ζt−1)=0である。Rの第1列は(c,−s)、第2列は(s,c)であるから、RT(αγγβ)Rの(1,2)成分はcsα+c2γ−s2γ−scβ=γ(c2−s2)+cs(α−β)=0であり、この行列は対称であるから(2,1)成分も0である。▨