§E20.44数値計算の実装と検証

最終更新

非線形最小二乗の反復算法は、勾配の計算値が許容差を下回るなどの停止条件を満たした点を、当てはめの結果として返す。指数関数的に減衰する項と定数項の和をデータへ当てはめると、観測時刻を区間[0,4][0,4]に広くとった場合には、数回の反復で生成値の近くに止まる。ところが観測時刻を区間[0,1/10][0,1/10]に集め、大きさ1/1001/100以下の摂動をデータに加えると、二つの初期値から計算を進めて止まった二つの点は、目的関数の値の差が約6.4×10−106.4\times10^{-10}でありながら、時刻55における予測値が約0.0180.018異なり、どちらの予測値も生成値による予測値から離れる。停止条件が満たされたことは、その点が停留点であることも最小点であることも述べず、目的関数の Hessian の最小固有値の計算値が正であることは Hessian の正定値性を証明しない。したがって計算結果について述べるには、計算結果を数学モデルと算法について証明された性質に照らして調べる検証と、数学モデルを観測と比べる妥当性確認とを区別し、さらに証明された命題が保証することと記録した実行の観測が示すこととを分ける必要がある。本記事では、減衰モデルの当てはめを主な課題として、微分、最小二乗、正則化、感度の方法を組み合わせる。

1 検証と妥当性確認

定義 1.1.DDを集合、q,k∈N≥1q,k\in\NNとし、Rq\R^qとRk\R^kにノルム∥⋅∥\lVert\cdot\rVertを入れる。写像S ⁣:D→RqS\colon D\to\R^qを、数学モデルが入力d∈Dd\in Dに対応させる量とし、部分集合D0⊆DD_0\subseteq D上の写像S~ ⁣:D0→Rq\tilde S\colon D_0\to\R^qを、算法とその実装が入力ddに対して返す計算結果とする。

  1. 入力の集合D1⊆D0D_1\subseteq D_0と許容差τ≥0\tau\ge0を指定して、すべてのd∈D1d\in D_1で∥S~(d)−S(d)∥≤τ\lVert\tilde S(d)-S(d)\rVert\le\tauが成り立つかを調べること、又は算法と離散化について証明された性質(停止条件が述べる量、離散化誤差の収束次数など)がS~\tilde Sについて成り立つかを調べることを、数学モデルに対する 検証 (verification) という。離散解の誤差が理論上の次数で減少するかを調べることは検証の一つである。
  2. 入力d∈Dd\in D、比較する量を与える写像c ⁣:Rq→Rkc\colon\R^q\to\R^k、その量の観測値z∈Rkz\in\R^k、測定の不確かさの上界η≥0\eta\ge0(観測値と測定対象の量の差のノルムがη\eta以下であることを測定が保証する数)、目的が許す許容差τ≥0\tau\ge0を指定して、∥c(S(d))−z∥≤τ+η\lVert c(S(d))-z\rVert\le\tau+\etaが成り立つかを調べることを、観測と目的に対するモデルの 妥当性確認 (validation) という。

2 減衰モデルの当てはめ

定義 2.1.n∈N≥1n\in\NNとし、実数t0,…,tnt_0,\dots,t_n、正の実数w0,…,wnw_0,\dots,w_n、整数p≥1p\ge1、L∈Rp×3L\in\R^{p\times3}、θref∈R3\theta_{\mathrm{ref}}\in\R^3、実数λ≥0\lambda\ge0をとる。θ=(a,κ,b)∈R3\theta=(a,\kappa,b)\in\R^3とt∈Rt\in\Rに対して

m(t;θ):=eaexp⁡(−eκt)+bm(t;\theta):=e^{a}\exp(-e^{\kappa}t)+b

と置き、mi(θ):=m(ti;θ)m_i(\theta):=m(t_i;\theta)、m(θ):=(m0(θ),…,mn(θ))T∈Rn+1m(\theta):=(m_0(\theta),\dots,m_n(\theta))^{\mathsf T}\in\R^{n+1}、J(θ):=Dm(θ)∈R(n+1)×3J(\theta):=Dm(\theta)\in\R^{(n+1)\times3}、W:=diag⁡(w0,…,wn)W:=\operatorname{diag}(w_0,\dots,w_n)、W1/2:=diag⁡(w0,…,wn)W^{1/2}:=\operatorname{diag}(\sqrt{w_0},\dots,\sqrt{w_n})とする。A:=eaA:=e^aを振幅、k:=eκk:=e^\kappaを減衰率という。y∈Rn+1y\in\R^{n+1}に対して

φλ(θ;y):=12(m(θ)−y)TW(m(θ)−y)+λ2∥L(θ−θref)∥22\varphi_\lambda(\theta;y):=\frac12\bigl(m(\theta)-y\bigr)^{\mathsf T}W\bigl(m(\theta)-y\bigr)+\frac\lambda2\bigl\lVert L(\theta-\theta_{\mathrm{ref}})\bigr\rVert_2^2

と置き、θ↦φλ(θ;y)\theta\mapsto\varphi_\lambda(\theta;y)の局所最小点を求める問題を、データ(ti,yi)i=0n(t_i,y_i)_{i=0}^nへの重みWW、罰則(λ,L,θref)(\lambda,L,\theta_{\mathrm{ref}})の 減衰モデルの当てはめ (exponential decay fit) という。

rλ(θ;y):=(W1/2(m(θ)−y)λ L(θ−θref))∈Rn+1+pr_\lambda(\theta;y):=\begin{pmatrix}W^{1/2}\bigl(m(\theta)-y\bigr)\\\sqrt\lambda\,L(\theta-\theta_{\mathrm{ref}})\end{pmatrix}\in\R^{n+1+p}

を 拡大残差 (augmented residual) という。φλ(θ;y)=12∥rλ(θ;y)∥22\varphi_\lambda(\theta;y)=\frac12\lVert r_\lambda(\theta;y)\rVert_2^2である。さらに

Gλ(θ,y):=J(θ)TW(m(θ)−y)+λLTL(θ−θref),G_\lambda(\theta,y):=J(\theta)^{\mathsf T}W\bigl(m(\theta)-y\bigr)+\lambda L^{\mathsf T}L(\theta-\theta_{\mathrm{ref}}),Hλ(θ,y):=J(θ)TWJ(θ)+∑i=0nwi(mi(θ)−yi)∇2mi(θ)+λLTLH_\lambda(\theta,y):=J(\theta)^{\mathsf T}WJ(\theta)+\sum_{i=0}^nw_i\bigl(m_i(\theta)-y_i\bigr)\nabla^2m_i(\theta)+\lambda L^{\mathsf T}L

と置く。

補題 2.2.定義 2.1の設定で、θ=(a,κ,b)∈R3\theta=(a,\kappa,b)\in\R^3、y∈Rn+1y\in\R^{n+1}とし、k:=eκk:=e^\kappa、si:=ea−ktis_i:=e^{a-kt_i}(0≤i≤n0\le i\le n)と置く。

  1. mmはC∞C^\infty級であり、J(θ)J(\theta)の第ii行は(si, −ktisi, 1)(s_i,\,-kt_is_i,\,1)である。∇2mi(θ)\nabla^2m_i(\theta)の(a,a)(a,a)成分はsis_i、(a,κ)(a,\kappa)成分と(κ,a)(\kappa,a)成分は−ktisi-kt_is_i、(κ,κ)(\kappa,\kappa)成分は(k2ti2−kti)si(k^2t_i^2-kt_i)s_iであり、その他の成分は00である。
  2. θ\thetaに関するrλ(⋅;y)r_\lambda(\cdot;y)の全微分は(W1/2J(θ)λ L)\begin{pmatrix}W^{1/2}J(\theta)\\\sqrt\lambda\,L\end{pmatrix}であり、∇θφλ(θ;y)=Gλ(θ,y)\nabla_\theta\varphi_\lambda(\theta;y)=G_\lambda(\theta,y)、∇θ2φλ(θ;y)=Hλ(θ,y)\nabla^2_\theta\varphi_\lambda(\theta;y)=H_\lambda(\theta,y)が成り立つ。GλG_\lambdaはR3×Rn+1\R^3\times\R^{n+1}上でC∞C^\infty級であり、DθGλ(θ,y)=Hλ(θ,y)D_\theta G_\lambda(\theta,y)=H_\lambda(\theta,y)、DyGλ(θ,y)=−J(θ)TWD_yG_\lambda(\theta,y)=-J(\theta)^{\mathsf T}Wである。

証明.(1)を示す。mi(θ)=exp⁡(a−eκti)+bm_i(\theta)=\exp(a-e^\kappa t_i)+bは指数関数と多項式の合成であるからC∞C^\infty級である。∂κk=k\partial_\kappa k=kであるから∂asi=si\partial_as_i=s_i、∂κsi=−ktisi\partial_\kappa s_i=-kt_is_iであり、∂ami=si\partial_am_i=s_i、∂κmi=−ktisi\partial_\kappa m_i=-kt_is_i、∂bmi=1\partial_bm_i=1である。さらに∂a∂ami=si\partial_a\partial_am_i=s_i、∂κ∂ami=−ktisi\partial_\kappa\partial_am_i=-kt_is_i、∂κ∂κmi=−ktisi−kti(−ktisi)=(k2ti2−kti)si\partial_\kappa\partial_\kappa m_i=-kt_is_i-kt_i(-kt_is_i)=(k^2t_i^2-kt_i)s_iである。∂bmi\partial_bm_iは定数であり、∂ami\partial_am_iと∂κmi\partial_\kappa m_iはbbを含まないので、bbを含む二階偏導関数は00である。

(2)を示す。rλ(⋅;y)r_\lambda(\cdot;y)の第ii成分(0≤i≤n0\le i\le n)はwi(mi−yi)\sqrt{w_i}(m_i-y_i)であり、その全微分はwiDmi\sqrt{w_i}Dm_i、Hessian はwi∇2mi\sqrt{w_i}\nabla^2m_iである。残りのpp成分はθ\thetaのアフィン関数λ L(θ−θref)\sqrt\lambda\,L(\theta-\theta_{\mathrm{ref}})の成分であり、全微分はλ L\sqrt\lambda\,Lの行、Hessian は00である。φλ(⋅;y)=12∥rλ(⋅;y)∥22\varphi_\lambda(\cdot;y)=\frac12\lVert r_\lambda(\cdot;y)\rVert_2^2に§E20.26 補題 1.2 (1)と§E20.26 補題 1.2 (2)を適用すると

∇θφλ=JTW1/2W1/2(m−y)+λLTL(θ−θref)=Gλ,\nabla_\theta\varphi_\lambda=J^{\mathsf T}W^{1/2}W^{1/2}(m-y)+\lambda L^{\mathsf T}L(\theta-\theta_{\mathrm{ref}})=G_\lambda,∇θ2φλ=JTWJ+λLTL+∑i=0nwi(mi−yi)wi∇2mi=Hλ\nabla^2_\theta\varphi_\lambda=J^{\mathsf T}WJ+\lambda L^{\mathsf T}L+\sum_{i=0}^n\sqrt{w_i}(m_i-y_i)\sqrt{w_i}\nabla^2m_i=H_\lambda

である。mmはC∞C^\infty級であるからGλG_\lambdaはC∞C^\infty級であり、θ\thetaに関する微分は∇θ2φλ=Hλ\nabla^2_\theta\varphi_\lambda=H_\lambdaである。GλG_\lambdaはyyのアフィン関数であり、その線形部分はy↦−J(θ)TWyy\mapsto-J(\theta)^{\mathsf T}Wyである。▨

補題 2.3.定義 2.1の設定で、t0,…,tnt_0,\dots,t_nのうち少なくとも三つが相異なるとする。

  1. 任意のθ∈R3\theta\in\R^3について、J(θ)J(\theta)の列は一次独立である。
  2. θ,θ′∈R3\theta,\theta'\in\R^3がm(θ)=m(θ′)m(\theta)=m(\theta')を満たすならば、θ=θ′\theta=\theta'である。

証明.(1)を示す。θ=(a,κ,b)\theta=(a,\kappa,b)、k=eκk=e^\kappaとし、v=(v1,v2,v3)∈R3v=(v_1,v_2,v_3)\in\R^3がJ(θ)v=0J(\theta)v=0を満たすとする。補題 2.2 (1)により、f(t):=eae−kt(v1−ktv2)+v3f(t):=e^ae^{-kt}(v_1-ktv_2)+v_3は相異なる三点τ1<τ2<τ3\tau_1<\tau_2<\tau_3で00である。Rolle の定理を[τ1,τ2][\tau_1,\tau_2]と[τ2,τ3][\tau_2,\tau_3]に適用すると、f′(t)=keae−kt(kv2t−v1−v2)f'(t)=ke^ae^{-kt}(kv_2t-v_1-v_2)は相異なる二点で00である。keae−kt>0ke^ae^{-kt}>0であるから、一次以下の多項式kv2t−v1−v2kv_2t-v_1-v_2は相異なる二点で00であり、kv2=0kv_2=0かつv1+v2=0v_1+v_2=0である。k>0k>0からv2=0v_2=0、v1=0v_1=0であり、ffは定数v3v_3であってf(τ1)=0f(\tau_1)=0からv3=0v_3=0である。

(2)を示す。θ=(a,κ,b)\theta=(a,\kappa,b)、θ′=(a′,κ′,b′)\theta'=(a',\kappa',b')、A=eaA=e^a、A′=ea′A'=e^{a'}、k=eκk=e^\kappa、k′=eκ′k'=e^{\kappa'}とすると、f(t):=Ae−kt−A′e−k′t+(b−b′)f(t):=Ae^{-kt}-A'e^{-k't}+(b-b')は相異なる三点τ1<τ2<τ3\tau_1<\tau_2<\tau_3で00である。k≠k′k\ne k'と仮定する。g(t):=ek′tf(t)=Ae(k′−k)t−A′+(b−b′)ek′tg(t):=e^{k't}f(t)=Ae^{(k'-k)t}-A'+(b-b')e^{k't}も三点で00であり、Rolle の定理によりg′(t)=e(k′−k)t(A(k′−k)+(b−b′)k′ekt)g'(t)=e^{(k'-k)t}\bigl(A(k'-k)+(b-b')k'e^{kt}\bigr)は相異なる二点で00である。したがってψ(t):=A(k′−k)+(b−b′)k′ekt\psi(t):=A(k'-k)+(b-b')k'e^{kt}は相異なる二点で00である。b≠b′b\ne b'ならば、k>0k>0、k′>0k'>0からψ\psiは狭義単調であり、相異なる二点で00であることと両立しない。b=b′b=b'ならばψ\psiは定数A(k′−k)≠0A(k'-k)\ne0であり、零点をもたないことと両立しない。したがってk=k′k=k'であり、f(t)=(A−A′)e−kt+(b−b′)f(t)=(A-A')e^{-kt}+(b-b')である。f(τ1)−f(τ2)=(A−A′)(e−kτ1−e−kτ2)=0f(\tau_1)-f(\tau_2)=(A-A')(e^{-k\tau_1}-e^{-k\tau_2})=0とe−kτ1≠e−kτ2e^{-k\tau_1}\ne e^{-k\tau_2}からA=A′A=A'であり、f(τ1)=0f(\tau_1)=0からb=b′b=b'である。指数関数は単射であるからθ=θ′\theta=\theta'である。▨

例 2.4. 以下の固定例ではn=40n=40、W=I41W=I_{41}、p=3p=3、L=diag⁡(1,1,0)L=\operatorname{diag}(1,1,0)、θref=0\theta_{\mathrm{ref}}=0、λ∈{0,10−3}\lambda\in\{0,10^{-3}\}とする。生成値を(A,k,b)=(2,3/5,1/10)(A,k,b)=(2,3/5,1/10)、すなわちθ0:=(log⁡2,log⁡(3/5),1/10)\theta_0:=(\log2,\log(3/5),1/10)とし、εi:=sin⁡(17i)/100\varepsilon_i:=\sin(17i)/100(0≤i≤400\le i\le40)と置く。時刻は、広区間ti=i/10∈[0,4]t_i=i/10\in[0,4]と狭区間ti=i/400∈[0,1/10]t_i=i/400\in[0,1/10]の二通りである。それぞれの時刻について、無雑音データy0:=m(θ0)y^0:=m(\theta_0)と雑音入りデータyε:=m(θ0)+εy^\varepsilon:=m(\theta_0)+\varepsilonを置く。ε\varepsilonは決定論的な数列であり、確率変数の実現値として扱わない。予測の対象はq(θ):=m(5;θ)q(\theta):=m(5;\theta)であり、q(θ0)=2e−3+1/10≈0.1995741367357q(\theta_0)=2e^{-3}+1/10\approx0.1995741367357である。どちらの時刻も相異なる4141点であるから、補題 2.3 (1)により任意のθ\thetaでJ(θ)J(\theta)の列は一次独立であり、補題 2.3 (2)によりm(θ)=y0m(\theta)=y^0を満たすθ\thetaはθ0\theta_0だけである。

広区間のデータの一部の binary64 の値は次のとおりである。

ii tit_i εi\varepsilon_i yi0y^0_i yiεy^\varepsilon_i
0 0 0 2.1 2.1
1 0.1 −9.613974918795568×10−3-9.613974918795568\times10^{-3} 1.9835290671684975 1.973915092249702
2 0.2 5.290826861200238×10−35.290826861200238\times10^{-3} 1.873840873434315 1.8791317002955152
40 4 9.880409219176677×10−39.880409219176677\times10^{-3} 0.281435906578825 0.29131631579800166

例 2.5.0≤i≤n0\le i\le nを固定し、mim_iを、入力(v1,v2,v3)=(a,κ,b)(v_1,v_2,v_3)=(a,\kappa,b)と

v4=exp⁡(v1),v5=exp⁡(v2),v6=−tiv5,v7=exp⁡(v6),v8=v4v7,v9=v8+v3v_4=\exp(v_1),\quad v_5=\exp(v_2),\quad v_6=-t_iv_5,\quad v_7=\exp(v_6),\quad v_8=v_4v_7,\quad v_9=v_8+v_3

からなる33入力99節点の計算グラフ(出力o1=9o_1=9)で表す。零でない局所偏導関数はc41=v4c_{41}=v_4、c52=v5c_{52}=v_5、c65=−tic_{65}=-t_i、c76=v7c_{76}=v_7、c84=v7c_{84}=v_7、c87=v4c_{87}=v_4、c98=c93=1c_{98}=c_{93}=1であり、v4=Av_4=A、v5=kv_5=k、v7=e−ktiv_7=e^{-kt_i}、v4v7=siv_4v_7=s_iである。方向e2e_2の前進モードはv˙5=k\dot v_5=k、v˙6=−tik\dot v_6=-t_ik、v˙7=−tike−kti\dot v_7=-t_ike^{-kt_i}、v˙8=−ktisi\dot v_8=-kt_is_i、v˙9=−ktisi\dot v_9=-kt_is_iを与え、方向e1e_1の前進モードはv˙4=A\dot v_4=A、v˙8=si\dot v_8=s_i、v˙9=si\dot v_9=s_iを、方向e3e_3の前進モードはv˙9=1\dot v_9=1を与える。§E20.22 定理 2.2によりこれらはJ(θ)J(\theta)の第ii行の成分であり、補題 2.2 (1)の式に一致する。

記録した実行(Python 3.12.1、NumPy 2.2.6、numpy.float64)では、三方向の接ベクトルを同時に伝播した前進モードの値と解析式の値の成分ごとの差の最大値は2−53≈1.11×10−162^{-53}\approx1.11\times10^{-16}、差の Frobenius ノルムの相対値は約4.04×10−174.04\times10^{-17}であった。§E20.22 定理 2.2の等式は厳密算術の値についてのものであり、浮動小数点の実行値の一致を述べない。

3 修正量と停止

命題 3.1.定義 2.1の設定で、θ∈R3\theta\in\R^3、y∈Rn+1y\in\R^{n+1}、実数μ>0\mu>0をとり、g:=Gλ(θ,y)g:=G_\lambda(\theta,y)と置く。

Mμ:=(W1/2J(θ)λ Lμ I3),d:=−(W1/2(m(θ)−y)λ L(θ−θref)0)M_\mu:=\begin{pmatrix}W^{1/2}J(\theta)\\\sqrt\lambda\,L\\\sqrt\mu\,I_3\end{pmatrix},\qquad d:=-\begin{pmatrix}W^{1/2}\bigl(m(\theta)-y\bigr)\\\sqrt\lambda\,L(\theta-\theta_{\mathrm{ref}})\\0\end{pmatrix}

とする。

  1. MμM_\muの列は一次独立であり、Mμδ=dM_\mu\delta=dの最小二乗解δμ\delta_\muはただ一つ存在して、(J(θ)TWJ(θ)+λLTL+μI3)δ=−g\bigl(J(\theta)^{\mathsf T}WJ(\theta)+\lambda L^{\mathsf T}L+\mu I_3\bigr)\delta=-gのただ一つの解に等しい。MμM_\muと右辺ddの Householder QR 法を厳密算術で実行した出力(R,c)(R,c)について、δμ\delta_\muはRδ=(c1,c2,c3)R\delta=(c_1,c_2,c_3)のただ一つの解である。
  2. g≠0g\ne0ならばgTδμ<0g^{\mathsf T}\delta_\mu<0である。

証明.補題 2.2 (2)により、rλ(⋅;y)r_\lambda(\cdot;y)はC1C^1級の残差写像であり、その全微分JλJ_\lambdaはMμM_\muの上のn+1+pn+1+p行であって、JλTJλ=JTWJ+λLTLJ_\lambda^{\mathsf T}J_\lambda=J^{\mathsf T}WJ+\lambda L^{\mathsf T}L、JλTrλ=gJ_\lambda^{\mathsf T}r_\lambda=gである。§E20.26 定義 4.1をこの残差写像と減衰係数μ\muに適用すると、δμ\delta_\muは Levenberg–Marquardt 修正量であり、(1)の前半を得る。MμM_\muの列は下の33行μ I3\sqrt\mu\,I_3により一次独立であるから、§E20.6 命題 3.6により後半を得る。§E20.26 命題 4.2 (1)により(2)を得る。▨

定義 3.2.定義 2.1の設定で、y∈Rn+1y\in\R^{n+1}と初期値θ(0)∈R3\theta^{(0)}\in\R^3をとる。μ:=10−3\mu:=10^{-3}、j:=0j:=0と置き、m(θ(0))m(\theta^{(0)})とJ(θ(0))J(\theta^{(0)})を評価して、次を行う計算式を、減衰 Gauss–Newton 算法 (damped Gauss-Newton algorithm) という。

  1. 試行。θ(j)\theta^{(j)}におけるδμ\delta_\muを命題 3.1 (1)の Householder QR 法と後退代入で計算し、θnew:=θ(j)+δμ\theta_{\mathrm{new}}:=\theta^{(j)}+\delta_\muと置いてm(θnew)m(\theta_{\mathrm{new}})を評価する。 φλ(θnew;y)≤φλ(θ(j);y)+10−4 Gλ(θ(j),y)Tδμ\varphi_\lambda(\theta_{\mathrm{new}};y)\le\varphi_\lambda(\theta^{(j)};y)+10^{-4}\,G_\lambda(\theta^{(j)},y)^{\mathsf T}\delta_\mu が成り立つならば試行を受け入れ、θ(j+1):=θnew\theta^{(j+1)}:=\theta_{\mathrm{new}}、μ:=max⁡{μ/3,10−15}\mu:=\max\{\mu/3,10^{-15}\}、j:=j+1j:=j+1とする。成り立たないならば試行を棄却し、μ:=10μ\mu:=10\muとして同じθ(j)\theta^{(j)}で試行を繰り返す。
  2. 停止。受入れの後にj=300j=300ならば停止し、この停止を反復上限という。j<300j<300ならば更新点θ(j)=θnew\theta^{(j)}=\theta_{\mathrm{new}}でJ(θ(j))J(\theta^{(j)})を評価し、∥Gλ(θ(j),y)∥∞≤10−10\lVert G_\lambda(\theta^{(j)},y)\rVert_\infty\le10^{-10}であるか、受け入れたδμ\delta_\muが∥δμ∥∞≤10−12(1+∥θ(j)∥∞)\lVert\delta_\mu\rVert_\infty\le10^{-12}(1+\lVert\theta^{(j)}\rVert_\infty)を満たすならば停止する。前者による停止を勾配停止、後者による停止を step 停止という。どちらも満たさないならば試行へ戻る。同じθ(j)\theta^{(j)}で3030回続けて試行が棄却されたときの停止を試行上限という。浮動小数点で実行した計算では、これらのほかに、無限大又は NaN の出現による停止を区別する。

費用として、算法の中で行うmmの評価の回数を残差評価、JJの評価の回数を Jacobi 評価、試行で行った最小二乗問題の求解の回数を線形求解、受け入れた試行の回数を受入れの回数として数える。停止の後に結果を調べるために行う評価は数えない。各試行は一回の線形求解を行い、受入れか棄却で終わるので、棄却の回数は線形求解の回数から受入れの回数を引いた値である。この算法では残差評価の回数は線形求解の回数に11を加えた値であり、Jacobi 評価の回数は、反復上限で停止しない場合は受入れの回数に11を加えた値、反復上限で停止した場合は受入れの回数に等しい。

補題 3.3.d∈N≥1d\in\NN、U⊆RdU\subseteq\R^dを開集合、f ⁣:U→Rf\colon U\to\RをC2C^2級関数、C⊆UC\subseteq Uを凸集合とし、x∗∈Cx_*\in Cが∇f(x∗)=0\nabla f(x_*)=0を満たし、任意のx∈Cx\in Cで∇2f(x)\nabla^2f(x)が正定値であるとする。

  1. 任意のx∈C∖{x∗}x\in C\setminus\{x_*\}に対してf(x)>f(x∗)f(x)>f(x_*)である。特に、CCに属するffの停留点はx∗x_*だけである。
  2. 実数c>0c>0が、任意のx∈Cx\in Cとv∈Rdv\in\R^dについてvT∇2f(x)v≥c∥v∥22v^{\mathsf T}\nabla^2f(x)v\ge c\lVert v\rVert_2^2を満たすならば、任意のx∈Cx\in Cに対して∥x−x∗∥2≤∥∇f(x)∥2/c\lVert x-x_*\rVert_2\le\lVert\nabla f(x)\rVert_2/cである。

証明.x∈C∖{x∗}x\in C\setminus\{x_*\}をとり、h:=x−x∗h:=x-x_*、g(s):=f(x∗+sh)g(s):=f(x_*+sh)(s∈[0,1]s\in[0,1])と置く。CCは凸であるからx∗+sh∈Cx_*+sh\in Cであり、§E4.3 定理 1.1によりggはC2C^2級であってg′(s)=∇f(x∗+sh)Thg'(s)=\nabla f(x_*+sh)^{\mathsf T}h、g′′(s)=hT∇2f(x∗+sh)h>0g''(s)=h^{\mathsf T}\nabla^2f(x_*+sh)h>0である。g′(0)=0g'(0)=0であるから、§D1.19 定理 2.1によりs∈(0,1]s\in(0,1]についてg′(s)=∫0sg′′(σ) dσ>0g'(s)=\int_0^sg''(\sigma)\,d\sigma>0であり、g(1)−g(0)=∫01g′(s) ds>0g(1)-g(0)=\int_0^1g'(s)\,ds>0である。したがってf(x)>f(x∗)f(x)>f(x_*)である。x′∈Cx'\in Cがx′≠x∗x'\ne x_*かつ∇f(x′)=0\nabla f(x')=0を満たすならば、x′x'に同じ議論を適用してf(x∗)>f(x′)f(x_*)>f(x')となり、f(x′)>f(x∗)f(x')>f(x_*)と両立しない。これで(1)は示された。

(2)を示す。x=x∗x=x_*ならば主張は成り立つ。x≠x∗x\ne x_*ならば、上のggについてg′(1)=∫01g′′(s) ds≥c∥h∥22g'(1)=\int_0^1g''(s)\,ds\ge c\lVert h\rVert_2^2であり、Cauchy–Schwarz の不等式によりg′(1)=∇f(x)Th≤∥∇f(x)∥2∥h∥2g'(1)=\nabla f(x)^{\mathsf T}h\le\lVert\nabla f(x)\rVert_2\lVert h\rVert_2である。両辺をc∥h∥2>0c\lVert h\rVert_2>0で割って主張を得る。▨

例 3.4. 固定例に定義 3.2の算法を適用した記録を示す。実行環境は Python 3.12.1、NumPy 2.2.6、macOS-26.6.2-arm64、numpy.float64、OPENBLAS_NUM_THREADS=1 であり、JJを解析式で評価し、λ=0\lambda=0でもMμM_\muの零の33行λ L\sqrt\lambda\,Lを残した。初期値はϑ1:=(0,0,0)\vartheta_1:=(0,0,0)((A,k,b)=(1,1,0)(A,k,b)=(1,1,0))とϑ2:=(log⁡3,log⁡0.3,0.2)\vartheta_2:=(\log3,\log0.3,0.2)((A,k,b)=(3,0.3,0.2)(A,k,b)=(3,0.3,0.2))である。

時刻 データ 初期値 λ\lambda 停止理由 残差評価 Jacobi 評価 線形求解 受入れ
1 広区間 y0y^0 ϑ1\vartheta_1 0 勾配停止 6 6 5 5
2 広区間 y0y^0 ϑ2\vartheta_2 0 勾配停止 6 6 5 5
3 広区間 yεy^\varepsilon ϑ1\vartheta_1 0 勾配停止 7 7 6 6
4 広区間 yεy^\varepsilon ϑ2\vartheta_2 0 勾配停止 6 6 5 5
5 広区間 yεy^\varepsilon ϑ1\vartheta_1 10−310^{-3} 勾配停止 7 7 6 6
6 狭区間 y0y^0 ϑ1\vartheta_1 0 勾配停止 403 277 402 276
7 狭区間 y0y^0 ϑ2\vartheta_2 0 勾配停止 230 160 229 159
8 狭区間 yεy^\varepsilon ϑ1\vartheta_1 0 勾配停止 85 56 84 55
9 狭区間 yεy^\varepsilon ϑ2\vartheta_2 0 反復上限 442 300 441 300

表の回数は、定義 3.2の後半に述べた残差評価・Jacobi 評価と線形求解・受入れの関係を満たす。9 の Jacobi 評価300300回と受入れ300300回は、反復上限で停止した場合の関係である。

停止した点での値は次のとおりである。これらは停止の後に、停止した点でmm、JJ、HλH_\lambda、特異値、固有値、qqを評価した診断の値であり、上の表の回数に含まれない。σ3\sigma_3はW1/2JW^{1/2}Jの最小特異値の計算値、最小固有値はHλH_\lambdaの最小固有値の計算値である。

(A,k,b)(A,k,b) φλ\varphi_\lambda ∥Gλ∥∞\lVert G_\lambda\rVert_\infty σ3\sigma_3 最小固有値 qq
1 (2.000000000, 0.6000000000, 0.1000000000)(2.000000000,\,0.6000000000,\,0.1000000000) 1.187×10−251.187\times10^{-25} 1.244×10−121.244\times10^{-12} 0.7410034 0.5490860 0.1995741367
2 (2.000000000, 0.6000000000, 0.1000000000)(2.000000000,\,0.6000000000,\,0.1000000000) 8.807×10−288.807\times10^{-28} 2.278×10−142.278\times10^{-14} 0.7410034 0.5490860 0.1995741367
3 (1.998548308, 0.6000347865, 0.1006316450)(1.998548308,\,0.6000347865,\,0.1006316450) 1.020445455×10−31.020445455\times10^{-3} 9.114×10−139.114\times10^{-13} 0.7407056 0.5494110 0.2001162012
4 (1.998548308, 0.6000347865, 0.1006316450)(1.998548308,\,0.6000347865,\,0.1006316450) 1.020445455×10−31.020445455\times10^{-3} 2.173×10−112.173\times10^{-11} 0.7407056 0.5494110 0.2001162012
5 (1.998166298, 0.6004773062, 0.1011957425)(1.998166298,\,0.6004773062,\,0.1011957425) 1.390356160×10−31.390356160\times10^{-3} 3.964×10−123.964\times10^{-12} 0.7413138 0.5514912 0.2004414488
6 (1.999999992, 0.6000000024, 0.1000000077)(1.999999992,\,0.6000000024,\,0.1000000077) 2.457×10−232.457\times10^{-23} 8.919×10−128.919\times10^{-12} 7.320666×10−47.320666\times10^{-4} 5.359×10−75.359\times10^{-7} 0.1995741429
7 (2.000000001, 0.5999999996, 0.09999999867)(2.000000001,\,0.5999999996,\,0.09999999867) 7.168×10−257.168\times10^{-25} 5.905×10−135.905\times10^{-13} 7.320666×10−47.320666\times10^{-4} 5.359×10−75.359\times10^{-7} 0.1995741357
8 (1.407961127, 0.8532798900, 0.6916544518)(1.407961127,\,0.8532798900,\,0.6916544518) 1.019886093×10−31.019886093\times10^{-3} 7.573×10−117.573\times10^{-11} 1.271880×10−31.271880\times10^{-3} 1.654×10−61.654\times10^{-6} 0.7114112665
9 (1.427460095, 0.8411197874, 0.6721448232)(1.427460095,\,0.8411197874,\,0.6721448232) 1.019886732×10−31.019886732\times10^{-3} 4.026×10−54.026\times10^{-5} 1.244775×10−31.244775\times10^{-3} 1.172×10−51.172\times10^{-5} 0.6934308971

9 の点は反復上限で止まった最後の更新点であり、その∥Gλ∥∞≈4.0×10−5\lVert G_\lambda\rVert_\infty\approx4.0\times10^{-5}は停止後の診断で得た値である。この点を停留点の近似として扱わない。1 から 8 の勾配停止は、浮動小数点の計算値∥Gλ∥∞\lVert G_\lambda\rVert_\inftyが10−1010^{-10}以下になったことを述べ、Gλ=0G_\lambda=0を述べない。最小固有値の計算値が正であることはHλH_\lambdaの正定値性を証明せず、二つの初期値から近い点で停止したこと(1 と 2、3 と 4)はφλ\varphi_\lambdaのR3\R^3上の最小点であることを示さない。

仮に、停止点と停留点x∗x_*を含む凸集合CC上で補題 3.3 (2)のccが証明されれば、勾配停止の条件と∥v∥2≤3∥v∥∞\lVert v\rVert_2\le\sqrt3\lVert v\rVert_\inftyから、停止点とx∗x_*の距離は3⋅10−10/c\sqrt3\cdot10^{-10}/c以下である。最小固有値の計算値をccに代入した値は、表の 1 で約3.15×10−103.15\times10^{-10}、表の 6 で約3.23×10−43.23\times10^{-4}であるが、固有値の計算値は証明された下界ではないので、これらは保証ではない。

狭区間では、補題 2.3 (1)によりJJの列は一次独立であってσ3>0\sigma_3>0であるが、表の 6 の点で最大特異値の計算値は約13.9913.99であり、κ2(J)\kappa_2(J)は約1.91×1041.91\times10^4である。§E20.6 命題 2.3によりJTJJ^{\mathsf T}Jの条件数は約3.65×1083.65\times10^8であり、命題 3.1 (1)の QR 法はこの行列を作らない。狭区間の無雑音データでは受入れの回数が276276回と159159回であり、広区間の55回より多い。表の 8 と 9 は同じデータと目的関数から計算され、φλ\varphi_\lambdaの値の差は約6.4×10−106.4\times10^{-10}、qqの値の差は約0.0180.018であって、どちらのqqもq(θ0)≈0.1996q(\theta_0)\approx0.1996から離れる。表の 5 ではλ=10−3\lambda=10^{-3}の罰則がθ\thetaをθref=0\theta_{\mathrm{ref}}=0の方向へ変え、qqは表の 3 の値と小数第 4 位で異なる。

4 局所解枝と感度

命題 4.1.定義 2.1の設定で、(θ^,y0)∈R3×Rn+1(\hat\theta,y_0)\in\R^3\times\R^{n+1}がGλ(θ^,y0)=0G_\lambda(\hat\theta,y_0)=0を満たし、H∗:=Hλ(θ^,y0)H_*:=H_\lambda(\hat\theta,y_0)が正定値であるとする。t∗∈Rt_*\in\Rを固定する。

  1. y0y_0の開近傍VV、θ^\hat\thetaの開近傍BB、C1C^1級写像ξ ⁣:V→B\xi\colon V\to Bが存在して、ξ(y0)=θ^\xi(y_0)=\hat\thetaであり、任意のy∈Vy\in VでGλ(ξ(y),y)=0G_\lambda(\xi(y),y)=0が成り立ち、θ∈B\theta\in B、y∈Vy\in V、Gλ(θ,y)=0G_\lambda(\theta,y)=0ならばθ=ξ(y)\theta=\xi(y)である。
  2. (1)のVV、ξ\xiについて、y0y_0の開近傍V′⊆VV'\subseteq Vと実数ρ>0\rho>0が存在して、任意のy∈V′y\in V'についてHλ(ξ(y),y)H_\lambda(\xi(y),y)は正定値であり、0<∥θ−ξ(y)∥2<ρ0<\lVert\theta-\xi(y)\rVert_2<\rhoを満たす任意のθ\thetaでφλ(θ;y)>φλ(ξ(y);y)\varphi_\lambda(\theta;y)>\varphi_\lambda(\xi(y);y)が成り立つ。特にξ(y)\xi(y)はφλ(⋅;y)\varphi_\lambda(\cdot;y)の狭義局所最小点である。
  3. Dξ(y0)=H∗−1J(θ^)TWD\xi(y_0)=H_*^{-1}J(\hat\theta)^{\mathsf T}Wである。ψ(y):=m(t∗;ξ(y))\psi(y):=m(t_*;\xi(y))(y∈Vy\in V)はC1C^1級であり、Dψ(y0)=Dθm(t∗;θ^) Dξ(y0)D\psi(y_0)=D_\theta m(t_*;\hat\theta)\,D\xi(y_0)である。
  4. λ=0\lambda=0かつm(θ^)=y0m(\hat\theta)=y_0ならば、J(θ^)J(\hat\theta)の列は一次独立であり、Dξ(y0)=(J(θ^)TWJ(θ^))−1J(θ^)TWD\xi(y_0)=\bigl(J(\hat\theta)^{\mathsf T}WJ(\hat\theta)\bigr)^{-1}J(\hat\theta)^{\mathsf T}Wである。任意のy˙∈Rn+1\dot y\in\R^{n+1}について、Dξ(y0)y˙D\xi(y_0)\dot yはJ(θ^)x=y˙J(\hat\theta)x=\dot yの重みWWに関するただ一つの重み付き最小二乗解である。
  5. J(θ^)J(\hat\theta)の列が一次独立であるとし、HGN:=J(θ^)TWJ(θ^)+λLTLH_{\mathrm{GN}}:=J(\hat\theta)^{\mathsf T}WJ(\hat\theta)+\lambda L^{\mathsf T}L、R∗:=∑i=0nwi(mi(θ^)−y0,i)∇2mi(θ^)R_*:=\sum_{i=0}^nw_i\bigl(m_i(\hat\theta)-y_{0,i}\bigr)\nabla^2m_i(\hat\theta)と置く。HGNH_{\mathrm{GN}}は正定値であり、HGN−1J(θ^)TW=Dξ(y0)H_{\mathrm{GN}}^{-1}J(\hat\theta)^{\mathsf T}W=D\xi(y_0)であることはR∗=0R_*=0と同値である。

証明.(1)を示す。補題 2.2 (2)によりGλG_\lambdaはR3×Rn+1\R^3\times\R^{n+1}上でC1C^1級であり、DθGλ=HλD_\theta G_\lambda=H_\lambda、DyGλ=−JTWD_yG_\lambda=-J^{\mathsf T}Wである。H∗H_*は正定値であるから正則である。§E20.22 命題 5.1をG=GλG=G_\lambda、(u0,p0)=(θ^,y0)(u_0,p_0)=(\hat\theta,y_0)に適用し、§E20.22 命題 5.1 (1)のVV、BB、uuをそれぞれVV、BB、ξ\xiとする。

(2)を示す。§D3.15 定理 3.1により直交行列PPと実対角行列diag⁡(c1,c2,c3)\operatorname{diag}(c_1,c_2,c_3)が存在してH∗=Pdiag⁡(c1,c2,c3)PTH_*=P\operatorname{diag}(c_1,c_2,c_3)P^{\mathsf T}であり、PPの第ll列vlv_lについてcl=vlTH∗vl>0c_l=v_l^{\mathsf T}H_*v_l>0である。c:=min⁡lclc:=\min_lc_lと置くと、任意のv∈R3v\in\R^3でvTH∗v≥c∥v∥22v^{\mathsf T}H_*v\ge c\lVert v\rVert_2^2である。HλH_\lambdaは連続であるから、実数ρ>0\rho>0、ρ′>0\rho'>0が存在して、{θ∣∥θ−θ^∥2<2ρ}⊆B\{\theta\mid\lVert\theta-\hat\theta\rVert_2<2\rho\}\subseteq Bであり、∥θ−θ^∥2<2ρ\lVert\theta-\hat\theta\rVert_2<2\rho、∥y−y0∥2<ρ′\lVert y-y_0\rVert_2<\rho'ならば∥Hλ(θ,y)−H∗∥F<c\lVert H_\lambda(\theta,y)-H_*\rVert_F<cである。このような(θ,y)(\theta,y)とv≠0v\ne0について、§E20.6 補題 2.1 (1)により

vTHλ(θ,y)v≥vTH∗v−∥Hλ(θ,y)−H∗∥2∥v∥22≥(c−∥Hλ(θ,y)−H∗∥F)∥v∥22>0v^{\mathsf T}H_\lambda(\theta,y)v\ge v^{\mathsf T}H_*v-\lVert H_\lambda(\theta,y)-H_*\rVert_2\lVert v\rVert_2^2\ge\bigl(c-\lVert H_\lambda(\theta,y)-H_*\rVert_F\bigr)\lVert v\rVert_2^2>0

であり、Hλ(θ,y)H_\lambda(\theta,y)は正定値である。V′:={y∈V∣∥y−y0∥2<ρ′, ∥ξ(y)−θ^∥2<ρ}V':=\{y\in V\mid\lVert y-y_0\rVert_2<\rho',\ \lVert\xi(y)-\hat\theta\rVert_2<\rho\}と置くと、ξ\xiは連続であるからV′V'はy0y_0を含む開集合である。y∈V′y\in V'とする。∥ξ(y)−θ^∥2<ρ\lVert\xi(y)-\hat\theta\rVert_2<\rhoであるからHλ(ξ(y),y)H_\lambda(\xi(y),y)は正定値である。凸集合C:={θ∣∥θ−ξ(y)∥2<ρ}C:=\{\theta\mid\lVert\theta-\xi(y)\rVert_2<\rho\}は{θ∣∥θ−θ^∥2<2ρ}\{\theta\mid\lVert\theta-\hat\theta\rVert_2<2\rho\}に含まれるので、CC上で∇θ2φλ(⋅;y)=Hλ(⋅,y)\nabla^2_\theta\varphi_\lambda(\cdot;y)=H_\lambda(\cdot,y)は正定値であり、∇θφλ(ξ(y);y)=Gλ(ξ(y),y)=0\nabla_\theta\varphi_\lambda(\xi(y);y)=G_\lambda(\xi(y),y)=0である。補題 3.3 (1)をf=φλ(⋅;y)f=\varphi_\lambda(\cdot;y)、x∗=ξ(y)x_*=\xi(y)に適用して主張を得る。

(3)を示す。§E20.22 命題 5.1 (2)をp=y0p=y_0に適用すると、任意のy˙\dot yについてH∗Dξ(y0)y˙=J(θ^)TWy˙H_*D\xi(y_0)\dot y=J(\hat\theta)^{\mathsf T}W\dot yであり、H∗H_*は正則であるから第一の等式を得る。ψ\psiはC∞C^\infty級写像m(t∗;⋅)m(t_*;\cdot)とξ\xiの合成であり、§E4.3 定理 1.1により第二の等式を得る。

(4)を示す。m(θ^)=y0m(\hat\theta)=y_0かつλ=0\lambda=0であるからH∗=J(θ^)TWJ(θ^)H_*=J(\hat\theta)^{\mathsf T}WJ(\hat\theta)である。J(θ^)h=0J(\hat\theta)h=0ならばhTH∗h=0h^{\mathsf T}H_*h=0であり、H∗H_*の正定値性からh=0h=0である。等式は(3)から従う。§E20.6 命題 5.2 (3)をA=J(θ^)A=J(\hat\theta)、b=y˙b=\dot yに適用すると、重み付き最小二乗解はただ一つであって(JTWJ)−1JTWy˙(J^{\mathsf T}WJ)^{-1}J^{\mathsf T}W\dot yに等しい。

(5)を示す。J:=J(θ^)J:=J(\hat\theta)と置く。v≠0v\ne0ならばJv≠0Jv\ne0であり、W1/2W^{1/2}は正則であるからvTHGNv=∥W1/2Jv∥22+λ∥Lv∥22>0v^{\mathsf T}H_{\mathrm{GN}}v=\lVert W^{1/2}Jv\rVert_2^2+\lambda\lVert Lv\rVert_2^2>0である。H∗=HGN+R∗H_*=H_{\mathrm{GN}}+R_*であるから

HGN−1JTW−H∗−1JTW=HGN−1(H∗−HGN)H∗−1JTW=HGN−1R∗H∗−1JTWH_{\mathrm{GN}}^{-1}J^{\mathsf T}W-H_*^{-1}J^{\mathsf T}W=H_{\mathrm{GN}}^{-1}(H_*-H_{\mathrm{GN}})H_*^{-1}J^{\mathsf T}W=H_{\mathrm{GN}}^{-1}R_*H_*^{-1}J^{\mathsf T}W

である。JTJ^{\mathsf T}の階数は33でありWWは正則であるから、JTW ⁣:Rn+1→R3J^{\mathsf T}W\colon\R^{n+1}\to\R^3は全射である。したがって右辺が00であることはHGN−1R∗H∗−1=0H_{\mathrm{GN}}^{-1}R_*H_*^{-1}=0、すなわちR∗=0R_*=0と同値である。▨

例 4.2. 固定例の無雑音データy0=m(θ0)y^0=m(\theta_0)とλ=0\lambda=0について、G0(θ0,y0)=0G_0(\theta_0,y^0)=0であり、補題 2.3 (1)によりJ(θ0)J(\theta_0)の列は一次独立であるから、H0(θ0,y0)=J(θ0)TJ(θ0)H_0(\theta_0,y^0)=J(\theta_0)^{\mathsf T}J(\theta_0)は正定値である。命題 4.1は(θ^,y0)=(θ0,y0)(\hat\theta,y_0)=(\theta_0,y^0)に適用され、命題 4.1 (4)と§E20.6 補題 2.1 (2)により∥Dξ(y0)∥2=1/σ3(J(θ0))\lVert D\xi(y^0)\rVert_2=1/\sigma_3(J(\theta_0))である。さらにφ0(θ;y0)≥0=φ0(θ0;y0)\varphi_0(\theta;y^0)\ge0=\varphi_0(\theta_0;y^0)であり、補題 2.3 (2)により等号はθ=θ0\theta=\theta_0のときに限るので、θ0\theta_0はφ0(⋅;y0)\varphi_0(\cdot;y^0)のR3\R^3上のただ一つの最小点である。

例 3.4の表の 1 と 6 の点(θ0\theta_0に近い計算値)でのσ3\sigma_3の計算値の逆数は、広区間で約1.3501.350、狭区間で約13661366である。∥Dξ(y0)∥2\lVert D\xi(y^0)\rVert_2は厳密なJ(θ0)J(\theta_0)、すなわち時刻とθ0\theta_0で定まる量であり、浮動小数点演算の精度を上げても変わらない。狭区間でε\varepsilonを加えたときのθ\thetaの変化について、線形化は∥Dξ(y0)ε∥2≤∥Dξ(y0)∥2∥ε∥2\lVert D\xi(y^0)\varepsilon\rVert_2\le\lVert D\xi(y^0)\rVert_2\lVert\varepsilon\rVert_2を与えるが、y0+εy^0+\varepsilonが命題 4.1 (1)のVVに属することは命題から従わず、線形化はこの大きさの変化を評価しない。

広区間の雑音入りデータについて、表の 3 の点θ^\hat\thetaにおけるDξD\xiの計算値BBとδyi:=10−6cos⁡(3i)\delta y_i:=10^{-6}\cos(3i)(0≤i≤400\le i\le40)による線形予測と、yε+δyy^\varepsilon+\delta yをθ^\hat\thetaから同じ算法で当てはめ直した変化(勾配停止)は

B δy≈(−2.6325138×10−83.5597185×10−72.4456352×10−7),θrefit−θ^≈(−2.6324920×10−83.5597083×10−72.4456276×10−7)B\,\delta y\approx\begin{pmatrix}-2.6325138\times10^{-8}\\3.5597185\times10^{-7}\\2.4456352\times10^{-7}\end{pmatrix},\qquad\theta_{\mathrm{refit}}-\hat\theta\approx\begin{pmatrix}-2.6324920\times10^{-8}\\3.5597083\times10^{-7}\\2.4456276\times10^{-7}\end{pmatrix}

であり、差のノルムは約1.29×10−121.29\times10^{-12}であった。命題 4.1 (3)から従うのは、厳密な停留解の枝についてξ(y0+δy)−ξ(y0)−Dξ(y0)δy\xi(y_0+\delta y)-\xi(y_0)-D\xi(y_0)\delta yが∥δy∥\lVert\delta y\rVertより速く00に近づくことだけであり、この観測は表の 3 の点が厳密な停留点であることも、二次の誤差評価も与えない。同じ点で、BBと Gauss–Newton 近似HGN−1JTH_{\mathrm{GN}}^{-1}J^{\mathsf T}の計算値の差は、作用素22ノルムでも Frobenius ノルムでも約1.907×10−31.907\times10^{-3}であった。厳密な値については、命題 4.1 (5)によりこの差が零であることとR∗=0R_*=0は同値である。

5 入力分布の伝播

命題 5.1.d,e∈N≥1d,e\in\NN、M∈Re×dM\in\R^{e\times d}とし、ΔY\Delta YをE∥ΔY∥22<∞E\lVert\Delta Y\rVert_2^2<\infty、E[ΔY]=0E[\Delta Y]=0を満たすRd\R^d値確率変数、Σ:=E[ΔYΔYT]\Sigma:=E[\Delta Y\Delta Y^{\mathsf T}]とする。このときE∥MΔY∥22<∞E\lVert M\Delta Y\rVert_2^2<\infty、E[MΔY]=0E[M\Delta Y]=0であり、MΔYM\Delta Yの共分散行列はMΣMTM\Sigma M^{\mathsf T}である。特にc∈Rec\in\R^eについてVar⁡(cTMΔY)=cTMΣMTc\operatorname{Var}(c^{\mathsf T}M\Delta Y)=c^{\mathsf T}M\Sigma M^{\mathsf T}cである。

証明.∥MΔY∥2≤∥M∥2∥ΔY∥2\lVert M\Delta Y\rVert_2\le\lVert M\rVert_2\lVert\Delta Y\rVert_2から第一の主張を得る。∣ΔYlΔYl′∣≤∥ΔY∥22|\Delta Y_l\Delta Y_{l'}|\le\lVert\Delta Y\rVert_2^2であるから各積は可積分であり、期待値の線形性によりE[(MΔY)j]=∑lMjlE[ΔYl]=0E[(M\Delta Y)_j]=\sum_lM_{jl}E[\Delta Y_l]=0、

E[(MΔY)j(MΔY)j′]=∑l,l′MjlE[ΔYlΔYl′]Mj′l′=(MΣMT)jj′E\bigl[(M\Delta Y)_j(M\Delta Y)_{j'}\bigr]=\sum_{l,l'}M_{jl}E[\Delta Y_l\Delta Y_{l'}]M_{j'l'}=(M\Sigma M^{\mathsf T})_{jj'}

である。cTMΔYc^{\mathsf T}M\Delta Yは平均00であり、その分散はcT(MΣMT)cc^{\mathsf T}(M\Sigma M^{\mathsf T})cである。▨

例 5.2. 広区間の雑音入りデータyεy^\varepsilonと例 3.4の表の 3 の点θ^\hat\thetaをとる。生成器 PCG64、seed 20261001 で互いに独立な400400個のΔY(j)∼N41(0,10−8I41)\Delta Y^{(j)}\sim N_{41}(0,10^{-8}I_{41})を生成し、各yε+ΔY(j)y^\varepsilon+\Delta Y^{(j)}にθ^\hat\thetaを初期値としてλ=0\lambda=0の定義 3.2の算法を適用した。この実行では零の33行を除いた拡大行列(JμI3)\bigl(\begin{smallmatrix}J\\\sqrt\mu I_3\end{smallmatrix}\bigr)を用いた。停止は勾配停止399399件、step 停止11件、反復上限00件であり、費用の合計は残差評価12221222、Jacobi 評価12101210、線形求解822822、受入れ810810であった。

比較するのは、θ^\hat\thetaにおけるDξD\xiの計算値BBとΣ=10−8I41\Sigma=10^{-8}I_{41}によるBΣBTB\Sigma B^{\mathsf T}と、当てはめ直したθ\thetaの400400個の値の標本共分散(分母399399)Σ^refit\hat\Sigma_{\mathrm{refit}}である。

BΣBT≈10−9(1.2613−2.0377−2.1206−2.037711.6858.1837−2.12068.18376.5062),Σ^refit≈10−9(1.2403−2.0199−2.1270−2.019911.4698.0253−2.12708.02536.4193)B\Sigma B^{\mathsf T}\approx10^{-9}\begin{pmatrix}1.2613&-2.0377&-2.1206\\-2.0377&11.685&8.1837\\-2.1206&8.1837&6.5062\end{pmatrix},\qquad\hat\Sigma_{\mathrm{refit}}\approx10^{-9}\begin{pmatrix}1.2403&-2.0199&-2.1270\\-2.0199&11.469&8.0253\\-2.1270&8.0253&6.4193\end{pmatrix}

であり、差の Frobenius ノルムのBΣBTB\Sigma B^{\mathsf T}の Frobenius ノルムに対する比は約1.78×10−21.78\times10^{-2}であった。同じ400400個のBΔY(j)B\Delta Y^{(j)}の標本共分散はΣ^refit\hat\Sigma_{\mathrm{refit}}と各成分の上位44桁が一致し、当てはめ直した変化とBΔY(j)B\Delta Y^{(j)}の差のノルムの最大値は約1.04×10−71.04\times10^{-7}、二乗平均平方根は約1.81×10−81.81\times10^{-8}であった。θ\thetaの各成分の標準偏差はBΣBTB\Sigma B^{\mathsf T}から約(3.552,10.81,8.066)×10−5(3.552,10.81,8.066)\times10^{-5}、標本から約(3.522,10.71,8.012)×10−5(3.522,10.71,8.012)\times10^{-5}であり、予測qqの標準偏差は線形化で約4.872×10−54.872\times10^{-5}、標本で約4.857×10−54.857\times10^{-5}であった。実行時には行列積について除算・桁あふれ・無効値の警告が各一回出力され、その原因は特定されていない。記録した集計値はすべて有限であるが、このことは途中の計算に非有限値が現れなかったことを示さない。

(θ^,y0)(\hat\theta,y_0)が命題 4.1の仮定を満たすとき、命題 5.1が厳密に与えるのは、線形写像の像Dξ(y0)ΔYD\xi(y_0)\Delta Yの共分散Dξ(y0)ΣDξ(y0)TD\xi(y_0)\Sigma D\xi(y_0)^{\mathsf T}である。命題 4.1 (1)のVVがR41\R^{41}全体であることは従わず、ΔY\Delta YがV−y0V-y_0の外の値をとる確率が00であることも従わないので、この命題は当てはめ直した値の共分散を与えない。線形化の出力cTBΔY(j)c^{\mathsf T}B\Delta Y^{(j)}は正規分布に従い二乗可積分であるから、その標本平均には§E20.35 定理 2.4 (2)が適用されるが、当てはめ直した値については同定理の仮定Y1∈L2(P)Y_1\in L^2(P)が示されていない。step 停止の11件について停留点であることを示す記録はなく、各標本の当てはめ直しが解枝ξ\xiの値であることもこの観測からは定まらない。

6 母数推測との比較

命題 6.1.N≥3N\ge3を整数、k>0k>0とし、実数τ1,…,τN\tau_1,\dots,\tau_Nのうち少なくとも二つが相異なるとする。X∈RN×2X\in\R^{N\times2}の第ii行を(e−kτi,1)(e^{-k\tau_i},1)とし、β∈R2\beta\in\R^2、σ2>0\sigma^2>0、Y=Xβ+εY=X\beta+\varepsilon、ε∼NN(0,σ2IN)\varepsilon\sim N_N(0,\sigma^2I_N)とする。β^\widehat\beta、ssを§E14.20 定理 3.1のとおりとし、P:=(XTX)−1XTP:=(X^{\mathsf T}X)^{-1}X^{\mathsf T}、t∗∈Rt_*\in\R、x0:=(e−kt∗,1)Tx_0:=(e^{-kt_*},1)^{\mathsf T}、0<α<10<\alpha<1、qα:=qtN−2(1−α/2)q_\alpha:=q_{t_{N-2}}(1-\alpha/2)とする。

  1. XXの列は一次独立であり、β^=PY\widehat\beta=PYである。β^\widehat\betaの共分散行列は、命題 5.1をM=PM=P、ΔY=ε\Delta Y=\varepsilonに適用したP(σ2IN)PT=σ2(XTX)−1P(\sigma^2I_N)P^{\mathsf T}=\sigma^2(X^{\mathsf T}X)^{-1}に等しい。
  2. x0Tβ^±qαsx0T(XTX)−1x0x_0^{\mathsf T}\widehat\beta\pm q_\alpha s\sqrt{x_0^{\mathsf T}(X^{\mathsf T}X)^{-1}x_0}は、t∗t_*における平均応答x0Tβ=β1e−kt∗+β2x_0^{\mathsf T}\beta=\beta_1e^{-kt_*}+\beta_2の水準1−α1-\alphaの正確な信頼区間である。

証明.v∈R2v\in\R^2がXv=0Xv=0を満たすとし、τi≠τj\tau_i\ne\tau_jとする。v1(e−kτi−e−kτj)=0v_1(e^{-k\tau_i}-e^{-k\tau_j})=0であり、k>0k>0からe−kτi≠e−kτje^{-k\tau_i}\ne e^{-k\tau_j}であるのでv1=0v_1=0、v2=0v_2=0である。2<N2<Nであるから§E14.20 定理 3.1の仮定が成り立ち、β^=PY\widehat\beta=PYはその定義である。β^−β=Pε\widehat\beta-\beta=P\varepsilonであり、PPT=(XTX)−1PP^{\mathsf T}=(X^{\mathsf T}X)^{-1}であるから、命題 5.1により共分散はσ2(XTX)−1\sigma^2(X^{\mathsf T}X)^{-1}であって、§E14.20 定理 3.1 (1)の共分散に一致する。x0x_0の第22成分は11であるからx0≠0x_0\ne0であり、§E14.20 命題 3.2 (2)により(2)を得る。▨

注意 6.2.命題 6.1 (2)の被覆確率は、固定した(β,σ2)(\beta,\sigma^2)ごとのYYの分布に関する確率である。固定例のyεy^\varepsilonは決定論的に定めたデータであり、この模型の実現値であるとは仮定していないので、yεy^\varepsilonから計算した区間に被覆確率は付随しない。命題 5.1は与えた入力の共分散Σ\Sigmaに対する出力の共分散を述べ、未知のσ2\sigma^2をs2s^2で推定してβ\betaを被覆する区間を述べない。

命題 6.3.定義 2.1のmmと時刻t0,…,tnt_0,\dots,t_nをとり、t0,…,tnt_0,\dots,t_nのうち少なくとも三つが相異なるとする。σ>0\sigma>0を既知の定数とし、θ∈Θ:=R3\theta\in\Theta:=\R^3に対してRn+1\R^{n+1}上の Lebesgue 測度に関するNn+1(m(θ),σ2I)N_{n+1}(m(\theta),\sigma^2I)の密度

pθ(y):=(2πσ2)−(n+1)/2exp⁡(−∥y−m(θ)∥222σ2)p_\theta(y):=(2\pi\sigma^2)^{-(n+1)/2}\exp\Bigl(-\frac{\lVert y-m(\theta)\rVert_2^2}{2\sigma^2}\Bigr)

をとる。θ0∈R3\theta_0\in\R^3、J0:=J(θ0)J_0:=J(\theta_0)、ρ0>0\rho_0>0とする。

  1. (pθ)θ∈Θ(p_\theta)_{\theta\in\Theta}はρ0\rho_0についてθ0\theta_0において局所 Cramér 条件を満たし、I0=σ−2J0TJ0I_0=\sigma^{-2}J_0^{\mathsf T}J_0は正定値である。
  2. r∈N≥1r\in\NNとY(1),…,Y(r)∈Rn+1Y^{(1)},\dots,Y^{(r)}\in\R^{n+1}について、Yˉr:=r−1∑j=1rY(j)\bar Y_r:=r^{-1}\sum_{j=1}^rY^{(j)}と置くと、対数尤度ℓr(θ)=∑j=1rlog⁡pθ(Y(j))\ell_r(\theta)=\sum_{j=1}^r\log p_\theta(Y^{(j)})の score はUr(θ)=rσ−2J(θ)T(Yˉr−m(θ))U_r(\theta)=r\sigma^{-2}J(\theta)^{\mathsf T}\bigl(\bar Y_r-m(\theta)\bigr)である。W=In+1W=I_{n+1}、λ=0\lambda=0のG0G_0について、尤度方程式Ur(θ)=0U_r(\theta)=0はG0(θ,Yˉr)=0G_0(\theta,\bar Y_r)=0と同値である。
  3. Y(1),Y(2),…Y^{(1)},Y^{(2)},\dotsをNn+1(m(θ0),σ2I)N_{n+1}(m(\theta_0),\sigma^2I)に従う独立同分布列とする。R3\R^3値の可測推定量列(θ^r)(\hat\theta_r)が一致し、確率が11へ収束する事象上でB‾(θ0,ρ0)\overline B(\theta_0,\rho_0)に属してUr(θ^r)=0U_r(\hat\theta_r)=0を満たすならば、r(θ^r−θ0)⇒N3(0,σ2(J0TJ0)−1)\sqrt r(\hat\theta_r-\theta_0)\Rightarrow N_3\bigl(0,\sigma^2(J_0^{\mathsf T}J_0)^{-1}\bigr)である。

証明.(1)を示す。ℓ(y,θ)=log⁡pθ(y)=−n+12log⁡(2πσ2)−∥y−m(θ)∥22/(2σ2)\ell(y,\theta)=\log p_\theta(y)=-\frac{n+1}2\log(2\pi\sigma^2)-\lVert y-m(\theta)\rVert_2^2/(2\sigma^2)は正の値の密度の対数であり、共通の台はRn+1\R^{n+1}である。mmはC∞C^\infty級であるから、各yyについてℓ(y,⋅)\ell(y,\cdot)はC∞C^\infty級であり、ℓ\ellと母数微分は(y,θ)(y,\theta)について連続であるからyyについて可測である。∂j\partial_jをθj\theta_jに関する偏微分とすると

∂jℓ=σ−2∂jmT(y−m),∂jkℓ=σ−2(∂jkmT(y−m)−∂jmT∂km),\partial_j\ell=\sigma^{-2}\partial_jm^{\mathsf T}(y-m),\qquad\partial_{jk}\ell=\sigma^{-2}\bigl(\partial_{jk}m^{\mathsf T}(y-m)-\partial_jm^{\mathsf T}\partial_km\bigr),∂jklℓ=σ−2(∂jklmT(y−m)−∂jkmT∂lm−∂jlmT∂km−∂jmT∂klm)\partial_{jkl}\ell=\sigma^{-2}\bigl(\partial_{jkl}m^{\mathsf T}(y-m)-\partial_{jk}m^{\mathsf T}\partial_lm-\partial_{jl}m^{\mathsf T}\partial_km-\partial_jm^{\mathsf T}\partial_{kl}m\bigr)

である。Pθ0P_{\theta_0}の下でε:=Y−m(θ0)\varepsilon:=Y-m(\theta_0)はE[ε]=0E[\varepsilon]=0、E[εεT]=σ2IE[\varepsilon\varepsilon^{\mathsf T}]=\sigma^2I、E∥ε∥22=(n+1)σ2E\lVert\varepsilon\rVert_2^2=(n+1)\sigma^2を満たす。以下、mmとその微分はθ0\theta_0での値とする。

score はs(Y)=σ−2J0Tεs(Y)=\sigma^{-2}J_0^{\mathsf T}\varepsilonであり、E∥s(Y)∥22=σ−4tr⁡(J0TE[εεT]J0)=σ−2tr⁡(J0TJ0)<∞E\lVert s(Y)\rVert_2^2=\sigma^{-4}\operatorname{tr}(J_0^{\mathsf T}E[\varepsilon\varepsilon^{\mathsf T}]J_0)=\sigma^{-2}\operatorname{tr}(J_0^{\mathsf T}J_0)<\infty、I0=σ−4J0TE[εεT]J0=σ−2J0TJ0I_0=\sigma^{-4}J_0^{\mathsf T}E[\varepsilon\varepsilon^{\mathsf T}]J_0=\sigma^{-2}J_0^{\mathsf T}J_0である。補題 2.3 (1)によりJ0J_0の列は一次独立であり、v≠0v\ne0ならばvTI0v=σ−2∥J0v∥22>0v^{\mathsf T}I_0v=\sigma^{-2}\lVert J_0v\rVert_2^2>0である。∂jkℓ(Y,θ0)\partial_{jk}\ell(Y,\theta_0)はε\varepsilonのアフィン関数であるから可積分である。∂jpθ=pθ∂jℓ\partial_jp_\theta=p_\theta\partial_j\ell、∂jkpθ=pθ(∂jkℓ+∂jℓ ∂kℓ)\partial_{jk}p_\theta=p_\theta(\partial_{jk}\ell+\partial_j\ell\,\partial_k\ell)であり、θ0\theta_0での絶対値はpθ0p_{\theta_0}に∥y−m∥2\lVert y-m\rVert_2の二次以下の多項式を掛けたもので上から押さえられるので、Lebesgue 測度について可積分である。さらに

∫∂jpθ0 dy=E[∂jℓ(Y,θ0)]=σ−2∂jmTE[ε]=0,\int\partial_jp_{\theta_0}\,dy=E[\partial_j\ell(Y,\theta_0)]=\sigma^{-2}\partial_jm^{\mathsf T}E[\varepsilon]=0,∫∂jkpθ0 dy=E[∂jkℓ+∂jℓ ∂kℓ]=−σ−2∂jmT∂km+σ−4∂jmTE[εεT]∂km=0\int\partial_{jk}p_{\theta_0}\,dy=E[\partial_{jk}\ell+\partial_j\ell\,\partial_k\ell]=-\sigma^{-2}\partial_jm^{\mathsf T}\partial_km+\sigma^{-4}\partial_jm^{\mathsf T}E[\varepsilon\varepsilon^{\mathsf T}]\partial_km=0

であり、任意のθ\thetaで∫pθ dy=1\int p_\theta\,dy=1であるから∂j∫pθ dy=∂jk∫pθ dy=0\partial_j\int p_\theta\,dy=\partial_{jk}\int p_\theta\,dy=0である。したがって§E14.13 定義 1.1 条件 (b)が成り立つ。

B‾(θ0,ρ0)\overline B(\theta_0,\rho_0)は有界閉集合であり、mmとその三階までの偏導関数のノルムはその上で連続であるから、それらの最大値KKが存在する。θ∈B‾(θ0,ρ0)\theta\in\overline B(\theta_0,\rho_0)について∥y−m(θ)∥2≤∥y∥2+K\lVert y-m(\theta)\rVert_2\le\lVert y\rVert_2+Kであり、Cauchy–Schwarz の不等式により

∣∂jklℓ(y,θ)∣≤σ−2(K(∥y∥2+K)+3K2)=:M(y)|\partial_{jkl}\ell(y,\theta)|\le\sigma^{-2}\bigl(K(\lVert y\rVert_2+K)+3K^2\bigr)=:M(y)

である。Eθ0∥Y∥2≤∥m(θ0)∥2+(E∥ε∥22)1/2<∞E_{\theta_0}\lVert Y\rVert_2\le\lVert m(\theta_0)\rVert_2+(E\lVert\varepsilon\rVert_2^2)^{1/2}<\inftyであるからEθ0M(Y)<∞E_{\theta_0}M(Y)<\inftyであり、§E14.13 定義 1.1 条件 (c)が成り立つ。§E14.13 定義 1.1 条件 (a)はすでに確かめた。

(2)を示す。各jjについて∇θlog⁡pθ(Y(j))=σ−2J(θ)T(Y(j)−m(θ))\nabla_\theta\log p_\theta(Y^{(j)})=\sigma^{-2}J(\theta)^{\mathsf T}(Y^{(j)}-m(\theta))であり、jjについて加えてUrU_rの表示を得る。W=IW=I、λ=0\lambda=0ではG0(θ,Yˉr)=J(θ)T(m(θ)−Yˉr)=−r−1σ2Ur(θ)G_0(\theta,\bar Y_r)=J(\theta)^{\mathsf T}(m(\theta)-\bar Y_r)=-r^{-1}\sigma^2U_r(\theta)である。

(3)は、(1)により§E14.13 定理 3.1を適用し、I0−1=σ2(J0TJ0)−1I_0^{-1}=\sigma^2(J_0^{\mathsf T}J_0)^{-1}を代入したものである。▨

注意 6.4.

  1. 命題 6.3 (3)の極限は観測ベクトルの反復回数r→∞r\to\inftyについてのものであり、一つのベクトルのn+1n+1個の成分を独立同分布な標本とみなしたものではない。
  2. W=IW=Iとし、零残差の点(θ0,m(θ0))(\theta_0,m(\theta_0))で命題 4.1 (4)が与えるDξ=(J0TJ0)−1J0TD\xi=(J_0^{\mathsf T}J_0)^{-1}J_0^{\mathsf T}に、Yˉr\bar Y_rの共分散Σ=σ2I/r\Sigma=\sigma^2I/rを命題 5.1で伝播するとσ2(J0TJ0)−1/r\sigma^2(J_0^{\mathsf T}J_0)^{-1}/rを得る。この行列は極限分布の共分散をrrで割ったものに等しいが、前者は線形写像の像の共分散であり、後者は一致する尤度方程式の解の列についての分布収束である。
  3. 命題 6.3 (3)は推定量列の一致性と尤度方程式を仮定に置き、定義 3.2の算法が停止した点がこれらを満たすことを述べない。λ>0\lambda>0の停留点はGλ=0G_\lambda=0の解であり、尤度方程式の解ではない。

7 区間入力の保証

命題 7.1.定義 2.1の設定で、Y⊆Rn+1\mathcal Y\subseteq\R^{n+1}を空でない集合、X⊆R3X\subseteq\R^3を箱、x0∈Xx_0\in X、[J][J]を3×33\times3の区間行列、F0⊆R3F_0\subseteq\R^3を箱、R∈M3(R)R\in M_3(\R)を正則行列とする。任意のθ∈X\theta\in Xとy∈Yy\in\mathcal YでHλ(θ,y)∈[J]H_\lambda(\theta,y)\in[J]であり、任意のy∈Yy\in\mathcal YでGλ(x0,y)∈F0G_\lambda(x_0,y)\in F_0であるとし、Krawczyk 算法の出力KKが定まってK⊆XK\subseteq Xを満たすとする。

  1. 任意のy∈Yy\in\mathcal Yについて、Gλ(⋅,y)G_\lambda(\cdot,y)はXXに零点をもつ。
  2. 実数q<1q<1が任意のA∈[J]A\in[J]で∥I−RA∥∞≤q\lVert I-RA\rVert_\infty\le qを満たすならば、任意のy∈Yy\in\mathcal YについてGλ(⋅,y)G_\lambda(\cdot,y)のXXにおける零点はただ一つである。
  3. 任意のθ∈X\theta\in Xとy∈Yy\in\mathcal YでHλ(θ,y)H_\lambda(\theta,y)が正定値ならば、任意のy∈Yy\in\mathcal YについてGλ(⋅,y)G_\lambda(\cdot,y)のXXにおける零点はただ一つであり、それはφλ(⋅;y)\varphi_\lambda(\cdot;y)のXX上の最小値を与えるただ一つの点である。

証明.y∈Yy\in\mathcal Yを固定する。補題 2.2 (2)によりGλ(⋅,y) ⁣:R3→R3G_\lambda(\cdot,y)\colon\R^3\to\R^3はC1C^1級であり、その Jacobi 行列はHλ(⋅,y)H_\lambda(\cdot,y)であるから、(Gλ(⋅,y),X,[J],x0,F0)(G_\lambda(\cdot,y),X,[J],x_0,F_0)は零点検証の入力である。§E20.37 定義 3.1のKKはF0F_0、[J][J]、XX、x0x_0、RRだけから計算されるので、yyによらない。§E20.37 定理 3.4により(1)を、§E20.37 定理 3.5 (3)により(2)を得る。(3)の仮定の下で、(1)の零点をθ∗\theta^*とすると、箱XXは凸であり、∇θφλ(θ∗;y)=0\nabla_\theta\varphi_\lambda(\theta^*;y)=0であるから、補題 3.3 (1)をC=XC=X、f=φλ(⋅;y)f=\varphi_\lambda(\cdot;y)に適用して主張を得る。▨

注意 7.2. 固定例へ命題 7.1を適用するには、X×YX\times\mathcal Y上のHλH_\lambdaの値を含む区間行列[J][J]と、Gλ(x0,⋅)G_\lambda(x_0,\cdot)のY\mathcal Y上の値を含む箱F0F_0を計算機で厳密に求める必要がある。補題 2.2 (1)の成分はeae^a、eκe^\kappa、e−ktie^{-kt_i}を含むので、四則演算の外向き丸めに加えて、指数関数の値を含む区間を返す区間拡張が必要である。Gλ(x0,y)G_\lambda(x_0,y)はyyのアフィン関数であるから、Y\mathcal Yが箱ならばF0F_0はm(x0)m(x_0)とJ(x0)J(x_0)の包含とY\mathcal Yの区間演算から得られる。命題 7.1 (3)の正定値性は命題 7.1 (2)の収縮条件から従わない。たとえば[J]={−I}[J]=\{-I\}、R=−IR=-Iでは∥I−RA∥∞=0\lVert I-RA\rVert_\infty=0であるが、−I-Iは正定値でない。

8 収束試験と外挿

定義 8.1. 実数AAを求める量とし、実数r>1r>1と、00を集積点にもちh∈Hh\in\mathcal Hならばh/r∈Hh/r\in\mathcal Hを満たす集合H⊆(0,∞)\mathcal H\subseteq(0,\infty)をとる。写像A ⁣:H→R\mathcal A\colon\mathcal H\to\Rの値A(h)\mathcal A(h)を、格子幅hhの計算が返すAAの近似値とする。h0∈Hh_0\in\mathcal H、jmax⁡∈N≥1j_{\max}\in\NNをとり、hj:=h0/rjh_j:=h_0/r^j(0≤j≤jmax⁡0\le j\le j_{\max})と置く。A(h0),…,A(hjmax⁡)\mathcal A(h_0),\dots,\mathcal A(h_{j_{\max}})を計算し、AAが既知のときは誤差e(hj):=A(hj)−Ae(h_j):=\mathcal A(h_j)-Aを、AAが未知のときは格子間差A(hj)−A(hj+1)\mathcal A(h_j)-\mathcal A(h_{j+1})を比較する手続きを 収束試験 (convergence study) という。e(hj)≠0e(h_j)\ne0を満たすjjについて点(hj,∣e(hj)∣)(h_j,|e(h_j)|)を両対数目盛で示した図を 収束プロット (convergence plot) という。ベクトル値の近似では∣e(hj)∣|e(h_j)|を誤差のノルムに替える。e(hj)=0e(h_j)=0となるjjの点は対数目盛に置かない。

命題 8.2. 実数AA、実数r>1r>1、定義 8.1の条件を満たす集合H\mathcal H、写像A ⁣:H→R\mathcal A\colon\mathcal H\to\R、実数p>0p>0、C≠0C\ne0をとり、H∋h→0\mathcal H\ni h\to0のときe(h):=A(h)−A=Chp+o(hp)e(h):=\mathcal A(h)-A=Ch^p+o(h^p)であるとする。

  1. あるh1>0h_1>0が存在して、h∈Hh\in\mathcal H、h≤h1h\le h_1ならばe(h)≠0e(h)\ne0、e(h/r)≠0e(h/r)\ne0、e(h)/e(h/r)>0e(h)/e(h/r)>0であり、H∋h→0\mathcal H\ni h\to0のとき log⁡(∣e(h)∣/∣e(h/r)∣)log⁡r=log⁡(e(h)/e(h/r))log⁡r→p\frac{\log\bigl(|e(h)|/|e(h/r)|\bigr)}{\log r}=\frac{\log\bigl(e(h)/e(h/r)\bigr)}{\log r}\to p が成り立つ。
  2. あるh2>0h_2>0が存在して、h∈Hh\in\mathcal H、h≤h2h\le h_2ならばA(h)−A(h/r)≠0\mathcal A(h)-\mathcal A(h/r)\ne0かつA(h/r)−A(h/r2)≠0\mathcal A(h/r)-\mathcal A(h/r^2)\ne0であり、H∋h→0\mathcal H\ni h\to0のとき log⁡(∣A(h)−A(h/r)∣/∣A(h/r)−A(h/r2)∣)log⁡r→p\frac{\log\bigl(|\mathcal A(h)-\mathcal A(h/r)|/|\mathcal A(h/r)-\mathcal A(h/r^2)|\bigr)}{\log r}\to p が成り立つ。

証明.

主張 8.2.1.H\mathcal H上の実数値関数τ\tauがH∋h→0\mathcal H\ni h\to0のときC′≠0C'\ne0に収束するならば、あるh′>0h'>0が存在して、h∈Hh\in\mathcal H、h≤h′h\le h'ならばτ(h)τ(h/r)>0\tau(h)\tau(h/r)>0であり、H∋h→0\mathcal H\ni h\to0のときlog⁡(hpτ(h)/((h/r)pτ(h/r)))/log⁡r→p\log\bigl(h^p\tau(h)/((h/r)^p\tau(h/r))\bigr)/\log r\to pである。

証明.h′>0h'>0を、h∈Hh\in\mathcal H、h≤h′h\le h'ならば∣τ(h)−C′∣<∣C′∣/2|\tau(h)-C'|<|C'|/2となるようにとる。h≤h′h\le h'ならばh/r≤h′h/r\le h'であるから、τ(h)\tau(h)とτ(h/r)\tau(h/r)はともにC′C'と同符号であり、τ(h)τ(h/r)>0\tau(h)\tau(h/r)>0である。hpτ(h)/((h/r)pτ(h/r))=rpτ(h)/τ(h/r)h^p\tau(h)/((h/r)^p\tau(h/r))=r^p\tau(h)/\tau(h/r)であり、τ(h)/τ(h/r)→1\tau(h)/\tau(h/r)\to1と、正の実数上でのlog⁡\logの連続性から、その対数はplog⁡rp\log rに収束する。▨

ρ(h):=e(h)/hp\rho(h):=e(h)/h^pと置くとρ(h)→C\rho(h)\to Cである。主張 8.2.1をτ=ρ\tau=\rhoに適用すると、e(h)=hpρ(h)e(h)=h^p\rho(h)から(1)を得る。e(h)/e(h/r)>0e(h)/e(h/r)>0であるから二つの比は等しい。

ρ~(h):=ρ(h)−r−pρ(h/r)\tilde\rho(h):=\rho(h)-r^{-p}\rho(h/r)と置くと、A(h)−A(h/r)=e(h)−e(h/r)=hpρ~(h)\mathcal A(h)-\mathcal A(h/r)=e(h)-e(h/r)=h^p\tilde\rho(h)、A(h/r)−A(h/r2)=(h/r)pρ~(h/r)\mathcal A(h/r)-\mathcal A(h/r^2)=(h/r)^p\tilde\rho(h/r)であり、ρ~(h)→C(1−r−p)\tilde\rho(h)\to C(1-r^{-p})である。r>1r>1、p>0p>0から1−r−p>01-r^{-p}>0であり、C(1−r−p)≠0C(1-r^{-p})\ne0である。主張 8.2.1をτ=ρ~\tau=\tilde\rhoに適用して(2)を得る。▨

定理 8.3. 実数AA、実数r>1r>1、定義 8.1の条件を満たす集合H\mathcal H、写像A ⁣:H→R\mathcal A\colon\mathcal H\to\R、実数0<p<q0<p<q、cp≠0c_p\ne0、cq∈Rc_q\in\Rをとり、H∋h→0\mathcal H\ni h\to0のとき

A(h)=A+cphp+cqhq+o(hq)\mathcal A(h)=A+c_ph^p+c_qh^q+o(h^q)

であるとする。h∈Hh\in\mathcal Hに対して

AR(h):=rpA(h/r)−A(h)rp−1A_R(h):=\frac{r^p\mathcal A(h/r)-\mathcal A(h)}{r^p-1}

と置く。

  1. H∋h→0\mathcal H\ni h\to0のときAR(h)−A=γqhq+o(hq)A_R(h)-A=\gamma_qh^q+o(h^q)、γq:=cqrp−q−1rp−1\gamma_q:=c_q\dfrac{r^{p-q}-1}{r^p-1}である。特にAR(h)−A=O(hq)A_R(h)-A=O(h^q)であり、γq≠0\gamma_q\ne0であることはcq≠0c_q\ne0と同値である。cq≠0c_q\ne0ならば∣AR(h)−A∣/hq→∣γq∣>0|A_R(h)-A|/h^q\to|\gamma_q|>0である。
  2. H∋h→0\mathcal H\ni h\to0のとき A(h/r)−A=A(h)−A(h/r)rp−1+o(hp)\mathcal A(h/r)-A=\frac{\mathcal A(h)-\mathcal A(h/r)}{r^p-1}+o(h^p) である。右辺の分子は粗い格子の値から細かい格子の値を引いたものである。
  3. 実数s>qs>qとcsc_sについてA(h)=A+cphp+cqhq+cshs+o(hs)\mathcal A(h)=A+c_ph^p+c_qh^q+c_sh^s+o(h^s)ならば、AR(h)=A+γqhq+γshs+o(hs)A_R(h)=A+\gamma_qh^q+\gamma_sh^s+o(h^s)、γs:=csrp−s−1rp−1\gamma_s:=c_s\dfrac{r^{p-s}-1}{r^p-1}である。

証明. 実数α>0\alpha>0について(rp(h/r)α−hα)/(rp−1)=rp−α−1rp−1hα\bigl(r^p(h/r)^\alpha-h^\alpha\bigr)/(r^p-1)=\frac{r^{p-\alpha}-1}{r^p-1}h^\alphaであり、α=p\alpha=pではこの係数は00である。ω(h)=o(hβ)\omega(h)=o(h^\beta)ならば(rpω(h/r)−ω(h))/(rp−1)=o(hβ)\bigl(r^p\omega(h/r)-\omega(h)\bigr)/(r^p-1)=o(h^\beta)であり、定数AAは(rpA−A)/(rp−1)=A(r^pA-A)/(r^p-1)=Aに移る。AR(h)A_R(h)はA(h/r)\mathcal A(h/r)とA(h)\mathcal A(h)の一次結合であるから、展開の各項にこれらを適用して(1)の第一の等式と(3)を得る。p<qp<qとr>1r>1からrp−q−1<0r^{p-q}-1<0であり、γq≠0\gamma_q\ne0はcq≠0c_q\ne0と同値である。cq≠0c_q\ne0ならば(AR(h)−A)/hq→γq(A_R(h)-A)/h^q\to\gamma_qである。

(2)を示す。定義から

A(h/r)−A−A(h)−A(h/r)rp−1=rpA(h/r)−A(h)rp−1−A=AR(h)−A\mathcal A(h/r)-A-\frac{\mathcal A(h)-\mathcal A(h/r)}{r^p-1}=\frac{r^p\mathcal A(h/r)-\mathcal A(h)}{r^p-1}-A=A_R(h)-A

であり、(1)とq>pq>pにより右辺はo(hp)o(h^p)である。▨

注意 8.4.定理 8.3 (3)の展開に定理 8.3を指数の組(q,s)(q,s)で適用することができるのはγq≠0\gamma_q\ne0、すなわちcq≠0c_q\ne0のときである。展開A(h)=A+cphp+cqhq+o(hq)\mathcal A(h)=A+c_ph^p+c_qh^q+o(h^q)だけからは、二回目の外挿値(rqAR(h/r)−AR(h))/(rq−1)(r^qA_R(h/r)-A_R(h))/(r^q-1)の誤差について、同じ計算によりo(hq)o(h^q)であることだけが従う。cq=0c_q=0ならば、定理 8.3 (1)によりAR(h)−A=o(hq)A_R(h)-A=o(h^q)であり、AR(h)−A=γhq+o(hq)A_R(h)-A=\gamma h^q+o(h^q)を満たすγ≠0\gamma\ne0は存在しない。

例 8.5.I:=∫01ex dx=e−1I:=\int_0^1e^x\,dx=e-1とし、h=1/Nh=1/N(N∈N≥1N\in\NN)についてThT_hを[0,1][0,1]のNN等分による合成台形則の値とする。§E20.20 命題 5.1をf=exp⁡f=\exp、[a,b]=[0,1][a,b]=[0,1]、m=3m=3に適用する。f(2r−1)(1)−f(2r−1)(0)=e−1f^{(2r-1)}(1)-f^{(2r-1)}(0)=e-1であり、B2=1/6B_2=1/6、B4=−1/30B_4=-1/30からc2=(e−1)/12c_2=(e-1)/12、c4=−(e−1)/720c_4=-(e-1)/720である。したがってH={1/N∣N∈N≥1}\mathcal H=\{1/N\mid N\in\NN\}上でh→0h\to0のとき

Th−I=e−112h2−e−1720h4+O(h6)T_h-I=\frac{e-1}{12}h^2-\frac{e-1}{720}h^4+O(h^6)

であり、定理 8.3はA(h)=Th\mathcal A(h)=T_h、A=IA=I、r=2r=2、p=2p=2、q=4q=4、cp=(e−1)/12≠0c_p=(e-1)/12\ne0、cq=−(e−1)/720≠0c_q=-(e-1)/720\ne0で適用される。γ4=c4(2−2−1)/(22−1)=(e−1)/2880\gamma_4=c_4(2^{-2}-1)/(2^2-1)=(e-1)/2880であるから、外挿値TR(h):=(4Th/2−Th)/3T_R(h):=(4T_{h/2}-T_h)/3はTR(h)−I=e−12880h4+o(h4)T_R(h)-I=\frac{e-1}{2880}h^4+o(h^4)を満たし、命題 8.2 (1)により既知解の観測次数は22に収束する。

Python 3.12.1 の decimal(精度8080桁)による計算値は次のとおりである。nnは分割数、外挿値と外挿誤差の行nnはT1/(n/2)T_{1/(n/2)}とT1/nT_{1/n}から作った値、細格子誤差の推定は(T1/(n/2)−T1/n)/3(T_{1/(n/2)}-T_{1/n})/3である。

nn T1/nT_{1/n} T1/n−IT_{1/n}-I 既知解の観測次数 外挿値 外挿誤差 細格子誤差の推定
1 1.859140914229523 1.408590857704774×10−11.408590857704774\times10^{-1} — — — —
2 1.753931092464825 3.564926400578015×10−23.564926400578015\times10^{-2} 1.982308427189 1.718861151876593 5.793234175477353×10−45.793234175477353\times10^{-4} 3.506994058823241×10−23.506994058823241\times10^{-2}
4 1.727221904557517 8.940076098471494×10−38.940076098471494\times10^{-3} 1.995513275042 1.718318841921747 3.70134627019429×10−53.70134627019429\times10^{-5} 8.903062635769551×10−38.903062635769551\times10^{-3}
8 1.720518592164302 2.236763705256626×10−32.236763705256626\times10^{-3} 1.998874255578 1.718284154699897 2.32624085167008×10−62.32624085167008\times10^{-6} 2.234437464404956×10−32.234437464404956\times10^{-3}

γ4h4\gamma_4h^4の値はh=1h=1で約5.97×10−45.97\times10^{-4}、h=1/4h=1/4で約2.33×10−62.33\times10^{-6}である。定義からT1/n−I−(T1/(n/2)−T1/n)/3=TR(2/n)−IT_{1/n}-I-(T_{1/(n/2)}-T_{1/n})/3=T_R(2/n)-Iであり、表の細格子誤差の推定とT1/n−IT_{1/n}-Iの差は外挿誤差に等しい。n=8n=8では誤差が約2.24×10−32.24\times10^{-3}から約2.33×10−62.33\times10^{-6}へ約9.61×1029.61\times10^2分の一になる。T1/4T_{1/4}の関数値はT1/8T_{1/8}の99個の関数値に含まれるので、外挿値は関数の追加評価なしに得られるが、T1/4T_{1/4}の和と外挿の四則演算が加わる。この比はexe^xとn=8n=8についての値である。

定義 8.6.d∈N≥1d\in\NNとし、Ω⊆Rd\Omega\subseteq\R^dを開集合、L\mathcal LをΩ\Omega上の微分作用素、B\mathcal Bを境界値又は初期値を与える作用素とし、データ(f,g)(f,g)に対する問題Lu=f\mathcal Lu=f、Bu=g\mathcal Bu=gを考える。各格子幅hhについて、データ(f,g)(f,g)から格子点上の値UhU_hを返す数値解法と、関数を格子点上の値へ制限する写像RhR_hが与えられているとする。次の三段からなる手続きを 製作解法 (method of manufactured solutions) という。

  1. L\mathcal Lの適用と、検証する誤差評価又は誤差展開が要求する滑らかさをもつ関数u∗u_*を選ぶ。u∗u_*を 製作解 (manufactured solution) という。
  2. f∗:=Lu∗f_*:=\mathcal Lu_*を解析的に計算し、g∗:=Bu∗g_*:=\mathcal Bu_*と置く。
  3. データ(f∗,g∗)(f_*,g_*)に数値解法を適用し、格子幅の列hjh_jについて誤差∥Uhj−Rhju∗∥\lVert U_{h_j}-R_{h_j}u_*\rVertの収束試験を行う。誤差を、離散化誤差、線形方程式の求解の誤差、丸め誤差に分け、それぞれを残差と理論上の評価に照合する。

例 8.7.§E20.32 定義 2.1で[a,b]=[0,1][a,b]=[0,1]、c=0c=0、α=β=0\alpha=\beta=0とし、製作解u∗(x):=sin⁡(πx)u_*(x):=\sin(\pi x)を選ぶ。f∗:=−u∗′′=π2sin⁡(πx)f_*:=-u_*''=\pi^2\sin(\pi x)であり、u∗(0)=u∗(1)=0u_*(0)=u_*(1)=0である。f∗f_*は連続であり、u∗u_*はC∞C^\infty級で−u∗′′=f∗-u_*''=f_*、u∗(0)=u∗(1)=0u_*(0)=u_*(1)=0を満たすので、§E20.32 命題 1.1がc=0c=0、f=f∗f=f_*、α=β=0\alpha=\beta=0について与えるただ一つの解はu∗u_*である。またmax⁡[0,1]∣u∗(4)∣=π4\max_{[0,1]}|u_*^{(4)}|=\pi^4である。§E20.32 定理 3.4をL=1L=1、M4=π4M_4=\pi^4に適用すると、離散解UUについて

max⁡0≤i≤n+1∣Ui−u∗(xi)∣≤π4h296\max_{0\le i\le n+1}|U_i-u_*(x_i)|\le\frac{\pi^4h^2}{96}

であり、任意のV^∈Rn\hat V\in\R^nについて

max⁡1≤i≤n∣V^i−u∗(xi)∣≤π4h296+18∥F−BhV^∥∞\max_{1\le i\le n}|\hat V_i-u_*(x_i)|\le\frac{\pi^4h^2}{96}+\frac18\lVert F-B_h\hat V\rVert_\infty

である。第二の評価の右辺第二項は計算したV^\hat Vの真の残差であり、その計算値にも丸め誤差が含まれるので、計算値から評価するには§E20.11 命題 5.4のような残差の計算誤差の評価を用いる。上界π4h2/96\pi^4h^2/96はmax⁡i∣Ui−u∗(xi)∣=Ch2+o(h2)\max_i|U_i-u_*(x_i)|=Ch^2+o(h^2)、C≠0C\ne0を与えないので、命題 8.2の仮定はこの評価だけからは従わない。

注意 8.8.

  1. 線形な数値解法にデータ(0,0)(0,0)を与えるとUh=0U_h=0であるから、u∗=0u_*=0を選ぶと誤差は解法の内容によらず00であり、この試験は離散化の誤りを検出しない。
  2. 強制項を解析式ではなく同じ離散作用素で作り、中心差分方程式でF:=Bh(u∗(x1),…,u∗(xn))TF:=B_h(u_*(x_1),\dots,u_*(x_n))^{\mathsf T}と置くと、BhB_hが正則である限り離散解はBhB_hの成分によらず(u∗(x1),…,u∗(xn))(u_*(x_1),\dots,u_*(x_n))に一致する。したがってBhB_hの成分の誤りは誤差に現れない。
  3. 誤差が理論上の次数で減少しないことは、それだけでは実装の誤りを確定しない。例 8.7の計算解の上界の第二項は、残差が丸めや反復の打切りで決まる範囲ではh2h^2の速さで減少するとは限らない。製作解の滑らかさ、境界・初期データ、hhが漸近展開の主要項の支配する範囲にあるかどうかもあわせて調べる。
  4. 製作解法は数学モデルに対する検証である。一つの製作解で調べることができるのは、そのデータで実行された計算の経路であり、観測に対するモデルの妥当性確認は別に行う。

9 丸めと再現性

例 9.1. binary64 の有限数の全体F=F(2,53,−1022,1023)F=F(2,53,-1022,1023)(§E20.1 例 1.7)と最近接偶数丸めfl⁡\operatorname{fl}をとり、§E20.1 注意 3.4のとおり各加算の結果をfl⁡\operatorname{fl}で丸める。u⊕v:=fl⁡(u+v)u\oplus v:=\operatorname{fl}(u+v)と書き、x:=1016x:=10^{16}、y:=−1016y:=-10^{16}、z:=1z:=1と置く。253≤1016<2542^{53}\le10^{16}<2^{54}、1016=(5⋅1015)⋅210^{16}=(5\cdot10^{15})\cdot2、252≤5⋅1015≤253−12^{52}\le5\cdot10^{15}\le2^{53}-1であるから、§E20.1 補題 1.2 (1)をe=53e=53に適用すると、s53=2s_{53}=2であり、F∩[253,254)F\cap[2^{53},2^{54})は2532^{53}以上2542^{54}未満の22の倍数の全体であって、1016∈F10^{16}\in Fである。

x+y=0x+y=0であるからx⊕y=0x\oplus y=0であり、(x⊕y)⊕z=fl⁡(1)=1(x\oplus y)\oplus z=\operatorname{fl}(1)=1である。y+z=−(1016−1)y+z=-(10^{16}-1)の最近接点は−(1016−2)-(10^{16}-2)と−1016-10^{16}の二つであり、m(1016)=5⋅1015m(10^{16})=5\cdot10^{15}は偶数、m(1016−2)=5⋅1015−1m(10^{16}-2)=5\cdot10^{15}-1は奇数であるから、§E20.1 補題 2.3 (1)の偶数の側を選ぶ最近接偶数丸めではy⊕z=yy\oplus z=yである。したがってx⊕(y⊕z)=x⊕y=0x\oplus(y\oplus z)=x\oplus y=0であり、

(x⊕y)⊕z=1≠0=x⊕(y⊕z)(x\oplus y)\oplus z=1\ne0=x\oplus(y\oplus z)

である。Python 3.12.1 の float による実行も、左辺に1.01.0、右辺に0.00.0を与えた。加算y+zy+zではz≠0z\ne0かつfl⁡(y+z)=y\operatorname{fl}(y+z)=yであり、§E20.1 定義 5.5の情報落ちが起きている。x⊕yx\oplus yの計算は厳密であり、xxとyyは異符号であるから§E20.1 定義 5.1の桁落ちの条件xy>0xy>0は満たされず、二つの値の差はこの情報落ちだけから生じる。

補正項をもつ Kahan の加算、すなわちσ:=v1\sigma:=v_1、c:=0c:=0からl=2,3,…l=2,3,\dotsの順にu:=vl⊖cu:=v_l\ominus c、t:=σ⊕ut:=\sigma\oplus u、c:=(t⊖σ)⊖uc:=(t\ominus\sigma)\ominus u、σ:=t\sigma:=tと置く計算でも、評価順への依存は残る。順序(x,y,z)(x,y,z)ではσ\sigmaは00、11と進んで11を返す。順序(y,z,x)(y,z,x)では、第二項でu=1u=1、t=yt=y、c=(y⊖y)⊖1=−1c=(y\ominus y)\ominus1=-1となり、第三項でu=x⊖(−1)=fl⁡(1016+1)=1016u=x\ominus(-1)=\operatorname{fl}(10^{16}+1)=10^{16}(101610^{16}と1016+210^{16}+2の中点で、偶数の側)、t=y⊕x=0t=y\oplus x=0となって00を返す。誤差を抑えるための加算法も、入力の並べ方を変えると別の計算になり、値が変わる場合がある。

定義 9.2. 計算の 実行条件の記録 (record of execution conditions) とは、入力データと前処理、擬似乱数生成器の種類・seed・状態の割当て、ソフトウェアと数値計算ライブラリの版、機械・スレッド数・コンパイラの設定、浮動小数点演算の評価順(総和の加算木を含む)、算法の停止条件の組である。同じ実行条件の記録の下で行った二つの実行について、次のように定める。

  1. 二つの実行の出力の各成分を表す binary64 の6464ビット列が、成分ごとに一致するとき、二つの実行は ビット一致で再現する (bitwise reproducible) という。
  2. 出力の組に対する非負の関数ddと許容差τ≥0\tau\ge0を指定し、二つの実行の出力o,o′o,o'がd(o,o′)≤τd(o,o')\le\tauを満たすとき、二つの実行は誤差指標ddと許容差τ\tauで 数値的に再現する (numerically reproducible) という。

注意 9.3. ビット一致は、binary64 の値を数値として比べた等しさと異なる。+0+0と−0-0は数値として等しいが、ビット列は符号ビットで異なる。NaN は数値の比較では自分自身とも等しくないので、数値の等しさで比べると、同じビット列の NaN を出力した二つの実行も一致しないと判定される。例 9.1では他の条件が同じでも、加算の評価順だけで binary64 の和が11と00に分かれるので、評価順は実行条件の記録に含める。本記事の固定例の記録は、Python 3.12.1、NumPy 2.2.6、macOS-26.6.2-arm64、numpy.float64、OPENBLAS_NUM_THREADS=1、生成器 PCG64 と seed 20261001、定義 3.2の停止条件である。λ=0\lambda=0の零の行を拡大行列に残すかどうかは厳密算術では解を変えないが、浮動小数点の計算と費用を変える場合があるので、例 3.4と例 5.2はそれぞれの手順の観測として記した。

10 選択課題

問題 10.1.s∈N≥1s\in\NN、N:=2sN:=2^s、h∈RNh\in\R^N、実数λ>0\lambda>0とし、Cx:=h⊛xCx:=h\circledast x(x∈RNx\in\R^N)とする。x,e∈RNx,e\in\R^N、c:=Cx+ec:=Cx+eとし、∥Cv−c∥22+λ2∥v∥22\lVert Cv-c\rVert_2^2+\lambda^2\lVert v\rVert_2^2の最小値を与えるただ一つのv=x∗v=x_*を考える。演算の回数は§E20.16 定理 3.3 (2)の換算で数え、符号の反転と複素共役は数えず、λ2\lambda^2と1/N1/Nは与えられているとする。

  1. h^\hat h、c^\hat cを radix-2 FFT で計算し、zk:=h^kc^k‾/(∣h^k∣2+λ2)z_k:=\hat h_k\overline{\hat c_k}/(|\hat h_k|^2+\lambda^2)と置くと、x∗=N−1ΦN(z)x_*=N^{-1}\Phi_N(z)であることを示せ。この計算の実数の演算の総数は15Nlog⁡2N+13N15N\log_2N+13Nであることを示し、三つの変換を直接の和で計算した場合の3(8N2−2N)+13N3(8N^2-2N)+13Nと比べよ。
  2. ∥x∗−x∥2≤max⁡kλ2∣h^k∣2+λ2∥x∥2+∥e∥22λ\lVert x_*-x\rVert_2\le\max_k\dfrac{\lambda^2}{|\hat h_k|^2+\lambda^2}\lVert x\rVert_2+\dfrac{\lVert e\rVert_2}{2\lambda}を示せ。
  3. すべてのkkでh^k≠0\hat h_k\ne0ならば、∥C−1c−x∥2≤∥e∥2/min⁡k∣h^k∣\lVert C^{-1}c-x\rVert_2\le\lVert e\rVert_2/\min_k|\hat h_k|であることを示せ。
解答.

(1)を示す。g:=(1,0,…,0)g:=(1,0,\dots,0)と置くとg⊛v=vg\circledast v=v、g^k=1\hat g_k=1であり、すべてのkkで(h^k,g^k)≠(0,0)(\hat h_k,\hat g_k)\ne(0,0)である。§E20.25 命題 3.1 (2)により(x^∗)k=h^k‾c^k/Dk(\hat x_*)_k=\overline{\hat h_k}\hat c_k/D_k、Dk:=∣h^k∣2+λ2>0D_k:=|\hat h_k|^2+\lambda^2>0であり、zk=(x^∗)k‾z_k=\overline{(\hat x_*)_k}である。§E20.16 定理 1.3 (2)によりx∗,j=N−1∑k(x^∗)kωN−jkx_{*,j}=N^{-1}\sum_k(\hat x_*)_k\omega_N^{-jk}であり、x∗x_*は実ベクトルであるから、両辺の複素共役をとってx∗,j=N−1∑kzkωNjk=N−1z^jx_{*,j}=N^{-1}\sum_kz_k\omega_N^{jk}=N^{-1}\hat z_jである。§E20.16 定理 3.3 (1)によりz^=ΦN(z)\hat z=\Phi_N(z)である。ΦN(h)\Phi_N(h)、ΦN(c)\Phi_N(c)、ΦN(z)\Phi_N(z)の計算は§E20.16 定理 3.3 (2)によりあわせて15Nlog⁡2N15N\log_2N回の実数の演算である。各kkについて、DkD_kは乗算22回と加算22回、h^kc^k‾\hat h_k\overline{\hat c_k}は複素数の乗算11回すなわち66回、実部と虚部をDkD_kで割るのは22回であり、あわせて12N12N回である。z^\hat zは実ベクトルNx∗Nx_*に等しいので、実部に1/N1/Nを掛けるNN回でx∗x_*を得る。総数は15Nlog⁡2N+13N15N\log_2N+13Nである。§E20.16 定理 3.3 (3)により直接の和による変換は一回につき8N2−2N8N^2-2N回であり、三回で3(8N2−2N)3(8N^2-2N)回である。

(2)を示す。§E20.25 命題 3.1 (3)をg^k=1\hat g_k=1で用いると、CN\C^Nのノルムの三角不等式により

∥x∗−x∥2≤N−1/2(∑kλ4∣x^k∣2Dk2)1/2+N−1/2(∑k∣h^k∣2∣e^k∣2Dk2)1/2\lVert x_*-x\rVert_2\le N^{-1/2}\Bigl(\sum_k\frac{\lambda^4|\hat x_k|^2}{D_k^2}\Bigr)^{1/2}+N^{-1/2}\Bigl(\sum_k\frac{|\hat h_k|^2|\hat e_k|^2}{D_k^2}\Bigr)^{1/2}

である。(∣h^k∣−λ)2≥0(|\hat h_k|-\lambda)^2\ge0からDk≥2λ∣h^k∣D_k\ge2\lambda|\hat h_k|であり、∣h^k∣/Dk≤1/(2λ)|\hat h_k|/D_k\le1/(2\lambda)である。§E20.16 定理 1.3 (3)によりN−1/2∥x^∥2=∥x∥2N^{-1/2}\lVert\hat x\rVert_2=\lVert x\rVert_2、N−1/2∥e^∥2=∥e∥2N^{-1/2}\lVert\hat e\rVert_2=\lVert e\rVert_2であり、主張を得る。

(3)を示す。C−1c−x=C−1eC^{-1}c-x=C^{-1}eであり、§E20.25 命題 3.1 (4)と§E20.16 定理 1.3 (3)により∥C−1e∥22=N−1∑k∣e^k∣2/∣h^k∣2≤∥e∥22/min⁡k∣h^k∣2\lVert C^{-1}e\rVert_2^2=N^{-1}\sum_k|\hat e_k|^2/|\hat h_k|^2\le\lVert e\rVert_2^2/\min_k|\hat h_k|^2である。

正則化しない解の雑音項の係数1/min⁡k∣h^k∣1/\min_k|\hat h_k|は小さい∣h^k∣|\hat h_k|に支配され、(2)の雑音項の係数は1/(2λ)1/(2\lambda)で押さえられ、その代わりに∥x∥2\lVert x\rVert_2に比例する項が加わる。この直接法は反復を含まず、停止条件をもたない。▨

問題 10.2.例 8.7の設定でn∈N≥1n\in\NN、h=1/(n+1)h=1/(n+1)とする。

  1. 厳密算術では、§E20.32 命題 2.2 (4)の消去が8n−78n-7回の四則演算で離散解を与え、その誤差がπ4h2/96\pi^4h^2/96以下であることを確かめよ。
  2. 浮動小数点数系FFについてBh∈Fn×nB_h\in F^{n\times n}とし、右辺の計算値F~∈Fn\tilde F\in F^nが∥F~−F∥∞≤ω\lVert\tilde F-F\rVert_\infty\le\omegaを満たすとする。共役勾配法の算法の反復x~∈Fn\tilde x\in F^nと、F~−Bhx~\tilde F-B_h\tilde xの計算値r~\tilde rが§E20.11 命題 5.4の仮定をA=BhA=B_h、b=F~b=\tilde Fで満たし、η\etaをそこでの量とする。max⁡i∣x~i−u∗(xi)∣≤π4h2/96+(η+ω)/8\max_i|\tilde x_i-u_*(x_i)|\le\pi^4h^2/96+(\eta+\omega)/8を示せ。τ>ω\tau>\omegaについてη≤8τ−ω\eta\le8\tau-\omegaで停止すれば、誤差はπ4h2/96+τ\pi^4h^2/96+\tau以下であることを示せ。
解答.

(1)を示す。c=0c=0であるから§E20.32 命題 2.2 (1)によりBhB_hは実対称正定値であり、§E20.32 命題 2.2 (4)により厳密算術の消去は失敗せず、8n−78n-7回の四則演算でBhU^=FB_h\hat U=Fの解を与える。§E20.32 命題 2.2 (3)によりこれは離散解であり、例 8.7により誤差はπ4h2/96\pi^4h^2/96以下である。

(2)を示す。§E20.11 命題 5.4により∥F~−Bhx~∥2≤η\lVert\tilde F-B_h\tilde x\rVert_2\le\etaであり、∥⋅∥∞≤∥⋅∥2\lVert\cdot\rVert_\infty\le\lVert\cdot\rVert_2から

∥F−Bhx~∥∞≤∥F−F~∥∞+∥F~−Bhx~∥∞≤ω+η\lVert F-B_h\tilde x\rVert_\infty\le\lVert F-\tilde F\rVert_\infty+\lVert\tilde F-B_h\tilde x\rVert_\infty\le\omega+\eta

である。例 8.7の第二の評価をV^=x~\hat V=\tilde xに用いて主張を得る。η≤8τ−ω\eta\le8\tau-\omegaならば(η+ω)/8≤τ(\eta+\omega)/8\le\tauである。

この停止条件は計算したr~\tilde rと既知の量から得られる上界η\etaを用いており、§E20.11 定義 1.3の算法の漸化式で更新したrkr_kを用いない。§E20.11 命題 5.4が真の残差F~−Bhx~\tilde F-B_h\tilde xを上から押さえる根拠はx~\tilde xから直接計算したr~\tilde rであり、漸化式のrkr_kはこの評価に現れない。直接法は停止条件をもたず8n−78n-7回の演算で終わり、共役勾配法の費用は停止までの反復回数で定まる。▨

問題 10.3.c≥0c\ge0についてec(x):=∣x2−x2/(1+cx2)∣e_c(x):=|x^2-x^2/(1+cx^2)|(x∈[−1,1]x\in[-1,1])とし、許容差1/101/10を考える。

  1. c∈Qc\in\Q、0≤c≤1/90\le c\le1/9についてpc:=1+cx2−10cx4p_c:=1+cx^2-10cx^4が pc=(1−9c)x2+(1+10cx2)(1−x2)p_c=(1-9c)x^2+(1+10cx^2)(1-x^2) を満たすことを示し、§E20.43 命題 6.1により[−1,1][-1,1]上でec≤1/10e_c\le1/10であることを示せ。c=1/9c=1/9ではpcp_cの[−1,1][-1,1]上の最小値が00であることを示せ。
  2. c=139/1250c=139/1250は条件「[−1,1][-1,1]上でec≤1/10e_c\le1/10」を満たさないが、格子x=k/1000x=k/1000(k∈Zk\in\Z、∣k∣≤999|k|\le999)上ではec≤1/10e_c\le1/10が成り立つことを、有理数の計算で示せ。
解答.

(1)を示す。(1+10cx2)(1−x2)=1+(10c−1)x2−10cx4(1+10cx^2)(1-x^2)=1+(10c-1)x^2-10cx^4に(1−9c)x2(1-9c)x^2を加えるとpcp_cである。σ0:=(1−9c)x2\sigma_0:=(1-9c)x^2とσ1:=1⋅12+10c⋅x2\sigma_1:=1\cdot1^2+10c\cdot x^2は非負の有理数の重みをもつ有理平方和表示であるから、§E20.43 補題 1.2 (2)により平方和である。g1:=1−x2g_1:=1-x^2とするとpc=σ0+σ1g1p_c=\sigma_0+\sigma_1g_1であり、§E20.43 命題 6.1 (1)をk=1k=1、λ=0\lambda=0に適用すると、[−1,1][-1,1]上でpc≥0p_c\ge0である。c≥0c\ge0から1+cx2>01+cx^2>0であり、ec(x)=cx4/(1+cx2)e_c(x)=cx^4/(1+cx^2)、1/10−ec(x)=pc(x)/(10(1+cx2))≥01/10-e_c(x)=p_c(x)/\bigl(10(1+cx^2)\bigr)\ge0である。c=1/9c=1/9ではpc(±1)=1+1/9−10/9=0p_c(\pm1)=1+1/9-10/9=0であり、§E20.43 命題 6.1 (2)により最小値は00である。

(2)を示す。9⋅139=1251>12509\cdot139=1251>1250であるから139/1250>1/9139/1250>1/9であり、§E20.42 命題 4.1 (2)によりc=139/1250c=139/1250は条件を満たさない。0≤y≤y′0\le y\le y'ならば

y′2(1+cy)−y2(1+cy′)=(y′−y)(y′+y+cyy′)≥0y'^2(1+cy)-y^2(1+cy')=(y'-y)(y'+y+cyy')\ge0

であるから、y↦cy2/(1+cy)y\mapsto cy^2/(1+cy)は[0,∞)[0,\infty)上で単調非減少であり、格子上のece_cの最大値はy=x2=(999/1000)2=0.998001y=x^2=(999/1000)^2=0.998001でとられる。y2=0.996005996001y^2=0.996005996001であり、

10cy2=1.112×0.996005996001=1.107558667553112,1+cy=1+0.1112×0.998001=1.110977711210cy^2=1.112\times0.996005996001=1.107558667553112,\qquad1+cy=1+0.1112\times0.998001=1.1109777112

であるから10cy2≤1+cy10cy^2\le1+cy、すなわちcy2/(1+cy)≤1/10cy^2/(1+cy)\le1/10である。

数値探索は有限個の点での比較であり、(2)のように最大値をとる点x=±1x=\pm1を含まない格子では条件を満たさない係数を受け入れる。§E20.42 命題 4.1 (2)はc∈[0,1]c\in[0,1]の全体で条件とc≤1/9c\le1/9の同値を与え、(1)の恒等式は固定した有理数ccごとに有理数の係数比較だけで検算することができる下界の証明書を与える。c>1/9c>1/9では条件が成り立たないので、§E20.43 命題 6.1 (1)によりpcp_cの[−1,1][-1,1]上の下界00を与える証明書は存在しない。§E20.42 例 4.2の探索は格子がx=±1x=\pm1を含み、探索で得た1111/100001111/10000は§E20.42 命題 4.1 (2)により条件を満たすことを確かめることができる。▨

前提記事