§E20.30適応的時間刻みとイベント検出

最終更新

一段法は、一歩写像を刻みごとに適用して、初期値問題の解を格子上の値で近似する。一歩で生じる誤差である局所打切り誤差は厳密解の値を通して定義されるが、計算の途中で刻みを選ぶときに用いることができるのは格子上の近似値である。また、速さの二乗に比例する抵抗を受けて落下する物体の高さが零になる時刻のように、時刻と状態の実数値関数を解に沿って評価した値が零になる時刻は、格子点と一致するとは限らない。

刻み制御は、近似値から作る誤差の推定値によって刻みを定める手続きであり、この推定値は誤差の上界を与えるとは限らないから、誤差の厳密な上界は推定値とは別の仮定から得る。解に沿って評価した関数の零点をイベント時刻といい、イベント時刻は近似値から作る補間によって格子点の間で近似する。

本記事は、刻み制御とイベント時刻の近似を定め、その誤差を推定値と厳密な上界を区別して評価する。

1 一歩と二半歩

命題 1.1.d,p∈N≥1d,p\in\NNとし、Rd\R^dにノルム∥⋅∥\|\cdot\|を固定する。Ω⊆R×Rd\Omega\subseteq\R\times\R^dを開集合、f ⁣:Ω→Rdf\colon\Omega\to\R^dを連続写像、Φ ⁣:D→Rd\Phi\colon D\to\R^dをffに対する増分関数、Ψh(t,u)=u+hΦ(t,u,h)\Psi_h(t,u)=u+h\Phi(t,u,h)をその一歩写像とする。t0<Tt_0<Tとし、J⊇[t0,T]J\supseteq[t_0,T]を開区間、y ⁣:J→Rdy\colon J\to\R^dを、任意のτ∈J\tau\in Jについて(τ,y(τ))∈Ω(\tau,y(\tau))\in\Omegaとy′(τ)=f(τ,y(τ))y'(\tau)=f(\tau,y(\tau))を満たすC1C^1級写像とし、δy\delta_yをyyの局所打切り誤差とする。H0,ρ>0H_0,\rho>0、C1,Lc,Λ≥0C_1,L_c,\Lambda\ge0と写像c ⁣:[t0,T]→Rdc\colon[t_0,T]\to\R^dが次を満たすとする。任意のs,t∈[t0,T]s,t\in[t_0,T]について∥c(s)−c(t)∥≤Lc∣s−t∣\|c(s)-c(t)\|\le L_c|s-t|である。t∈[t0,T)t\in[t_0,T)と0<h≤min⁡{H0,T−t}0<h\le\min\{H_0,T-t\}を満たす任意のt,ht,hと、∥u−y(t)∥≤ρ\|u-y(t)\|\le\rhoを満たす任意のu∈Rdu\in\R^dについて、(t,u,h)∈D(t,u,h)\in Dであり、

∥δy(t,h)−c(t)hp+1∥≤C1hp+2,∥Φ(t,u,h)−Φ(t,y(t),h)∥≤Λ∥u−y(t)∥\bigl\|\delta_y(t,h)-c(t)h^{p+1}\bigr\|\le C_1h^{p+2},\qquad\bigl\|\Phi(t,u,h)-\Phi(t,y(t),h)\bigr\|\le\Lambda\|u-y(t)\|

が成り立つ。Mc:=max⁡s∈[t0,T]∥c(s)∥M_c:=\max_{s\in[t_0,T]}\|c(s)\|、

C2:=2−p−2(2C1+Lc+Λ(Mc+12C1H0))C_2:=2^{-p-2}\Bigl(2C_1+L_c+\Lambda\bigl(M_c+\tfrac12C_1H_0\bigr)\Bigr)

と置き、H1∈(0,H0]H_1\in(0,H_0]を(Mc+12C1H1)(H1/2)p+1≤ρ\bigl(M_c+\frac12C_1H_1\bigr)(H_1/2)^{p+1}\le\rhoを満たす数とする。t∈[t0,T)t\in[t_0,T)と0<h≤min⁡{H1,T−t}0<h\le\min\{H_1,T-t\}に対して

Y1:=Ψh(t,y(t)),Z:=Ψh/2(t,y(t)),Y2:=Ψh/2(t+h2,Z)Y_1:=\Psi_h(t,y(t)),\qquad Z:=\Psi_{h/2}(t,y(t)),\qquad Y_2:=\Psi_{h/2}\bigl(t+\tfrac h2,Z\bigr)

と置く。

  1. Y1,Z,Y2Y_1,Z,Y_2はすべて定まり、∥y(t+h)−Y2−2−pc(t)hp+1∥≤C2hp+2\bigl\|y(t+h)-Y_2-2^{-p}c(t)h^{p+1}\bigr\|\le C_2h^{p+2}である。
  2. ∥Y2−Y1−(1−2−p)c(t)hp+1∥≤(C1+C2)hp+2\bigl\|Y_2-Y_1-(1-2^{-p})c(t)h^{p+1}\bigr\|\le(C_1+C_2)h^{p+2}である。
  3. e^:=(Y2−Y1)/(2p−1)\hat e:=(Y_2-Y_1)/(2^p-1)と置くと、 ∥y(t+h)−Y2−e^∥≤2pC2+C12p−1hp+2\bigl\|y(t+h)-Y_2-\hat e\bigr\|\le\frac{2^pC_2+C_1}{2^p-1}h^{p+2} である。
  4. c(t)≠0c(t)\ne0かつC2h≤2−p−1∥c(t)∥C_2h\le2^{-p-1}\|c(t)\|ならば、y(t+h)≠Y2y(t+h)\ne Y_2であり、 ∥e^−(y(t+h)−Y2)∥∥y(t+h)−Y2∥≤2p+1(2pC2+C1)(2p−1)∥c(t)∥h\frac{\|\hat e-(y(t+h)-Y_2)\|}{\|y(t+h)-Y_2\|}\le\frac{2^{p+1}(2^pC_2+C_1)}{(2^p-1)\|c(t)\|}h である。

証明.(1)を示す。t′:=t+h2t':=t+\frac h2と置く。t′∈[t0,T)t'\in[t_0,T)であり、h≤T−th\le T-tからh2≤min⁡{H0,T−t′}\frac h2\le\min\{H_0,T-t'\}である。仮定を(t,h)(t,h)と(t,h2)(t,\frac h2)にu=y(t)u=y(t)として用いると、Y1Y_1とZZは定まり、y(t′)−Z=δy(t,h2)y(t')-Z=\delta_y(t,\frac h2)である。h≤H1h\le H_1により

∥δy(t,h2)∥≤∥c(t)∥(h2)p+1+C1(h2)p+2≤(Mc+12C1H1)(H12)p+1≤ρ\bigl\|\delta_y(t,\tfrac h2)\bigr\|\le\|c(t)\|(\tfrac h2)^{p+1}+C_1(\tfrac h2)^{p+2}\le\bigl(M_c+\tfrac12C_1H_1\bigr)(\tfrac{H_1}2)^{p+1}\le\rho

であるから、仮定を(t′,h2)(t',\frac h2)とu=Zu=Zに用いると、Y2Y_2は定まり、∥Φ(t′,Z,h2)−Φ(t′,y(t′),h2)∥≤Λ∥δy(t,h2)∥\|\Phi(t',Z,\frac h2)-\Phi(t',y(t'),\frac h2)\|\le\Lambda\|\delta_y(t,\frac h2)\|である。y(t+h)=Ψh/2(t′,y(t′))+δy(t′,h2)y(t+h)=\Psi_{h/2}(t',y(t'))+\delta_y(t',\frac h2)と

Ψh/2(t′,y(t′))−Y2=y(t′)−Z+h2(Φ(t′,y(t′),h2)−Φ(t′,Z,h2))\Psi_{h/2}(t',y(t'))-Y_2=y(t')-Z+\tfrac h2\bigl(\Phi(t',y(t'),\tfrac h2)-\Phi(t',Z,\tfrac h2)\bigr)

から、R:=h2(Φ(t′,y(t′),h2)−Φ(t′,Z,h2))R:=\frac h2\bigl(\Phi(t',y(t'),\frac h2)-\Phi(t',Z,\frac h2)\bigr)と置くと

y(t+h)−Y2=δy(t′,h2)+δy(t,h2)+R,∥R∥≤h2Λ∥δy(t,h2)∥y(t+h)-Y_2=\delta_y(t',\tfrac h2)+\delta_y(t,\tfrac h2)+R,\qquad\|R\|\le\tfrac h2\Lambda\bigl\|\delta_y(t,\tfrac h2)\bigr\|

である。2c(t)(h2)p+1=2−pc(t)hp+12c(t)(\frac h2)^{p+1}=2^{-p}c(t)h^{p+1}であるから

y(t+h)−Y2−2−pc(t)hp+1=(δy(t′,h2)−c(t′)(h2)p+1)+(c(t′)−c(t))(h2)p+1+(δy(t,h2)−c(t)(h2)p+1)+Ry(t+h)-Y_2-2^{-p}c(t)h^{p+1}=\bigl(\delta_y(t',\tfrac h2)-c(t')(\tfrac h2)^{p+1}\bigr)+\bigl(c(t')-c(t)\bigr)(\tfrac h2)^{p+1}+\bigl(\delta_y(t,\tfrac h2)-c(t)(\tfrac h2)^{p+1}\bigr)+R

であり、右辺の四つの項のノルムは、仮定とh≤H0h\le H_0により、それぞれC1(h2)p+2C_1(\frac h2)^{p+2}、Lc(h2)p+2L_c(\frac h2)^{p+2}、C1(h2)p+2C_1(\frac h2)^{p+2}、Λ(Mc+12C1H0)(h2)p+2\Lambda\bigl(M_c+\frac12C_1H_0\bigr)(\frac h2)^{p+2}以下である。この四つの上界の和はC2hp+2C_2h^{p+2}である。

(2)を示す。Y2−Y1=δy(t,h)−(y(t+h)−Y2)Y_2-Y_1=\delta_y(t,h)-\bigl(y(t+h)-Y_2\bigr)であるから

Y2−Y1−(1−2−p)c(t)hp+1=(δy(t,h)−c(t)hp+1)−(y(t+h)−Y2−2−pc(t)hp+1)Y_2-Y_1-(1-2^{-p})c(t)h^{p+1}=\bigl(\delta_y(t,h)-c(t)h^{p+1}\bigr)-\bigl(y(t+h)-Y_2-2^{-p}c(t)h^{p+1}\bigr)

であり、仮定と(1)により右辺のノルムは(C1+C2)hp+2(C_1+C_2)h^{p+2}以下である。

(3)を示す。D2:=y(t+h)−Y2D_2:=y(t+h)-Y_2と置くとe^=(δy(t,h)−D2)/(2p−1)\hat e=(\delta_y(t,h)-D_2)/(2^p-1)であるから

D2−e^=2pD2−δy(t,h)2p−1=2p(D2−2−pc(t)hp+1)−(δy(t,h)−c(t)hp+1)2p−1D_2-\hat e=\frac{2^pD_2-\delta_y(t,h)}{2^p-1}=\frac{2^p\bigl(D_2-2^{-p}c(t)h^{p+1}\bigr)-\bigl(\delta_y(t,h)-c(t)h^{p+1}\bigr)}{2^p-1}

であり、(1)と仮定により分子のノルムは(2pC2+C1)hp+2(2^pC_2+C_1)h^{p+2}以下である。

(4)を示す。(1)とC2h≤2−p−1∥c(t)∥C_2h\le2^{-p-1}\|c(t)\|により

∥D2∥≥2−p∥c(t)∥hp+1−C2hp+2≥2−p−1∥c(t)∥hp+1>0\|D_2\|\ge2^{-p}\|c(t)\|h^{p+1}-C_2h^{p+2}\ge2^{-p-1}\|c(t)\|h^{p+1}>0

である。(3)の右辺をこの下界で割ると主張の評価を得る。▨

例 1.2.d=1d=1、Ω=R2\Omega=\R^2とし、前進 Euler 法の一歩写像Ψh(t,u)=u+hf(t,u)\Psi_h(t,u)=u+hf(t,u)に命題 1.1の記号Y1,Z,Y2,e^Y_1,Z,Y_2,\hat eをp=1p=1として用いる。このときe^=Y2−Y1\hat e=Y_2-Y_1である。

  1. f(t,u)=uf(t,u)=u、y(τ)=eτy(\tau)=e^\tau、t=0t=0とする。Y1=1+hY_1=1+h、Z=1+h2Z=1+\frac h2、Y2=(1+h2)2Y_2=(1+\frac h2)^2であるからe^=h2/4\hat e=h^2/4であり、 y(h)−Y2−e^=eh−1−h−h22=∑j≥3hjj!>0(h>0)y(h)-Y_2-\hat e=e^h-1-h-\frac{h^2}2=\sum_{j\ge3}\frac{h^j}{j!}>0\qquad(h>0) である。h=0.1h=0.1ではe^=0.0025\hat e=0.0025、y(h)−Y2=e0.1−1.1025=0.002670918075…y(h)-Y_2=e^{0.1}-1.1025=0.002670918075\ldotsである。絶対許容誤差0.00260.0026と比べると、e^/0.0026=0.9615…≤1\hat e/0.0026=0.9615\ldots\le1である一方、y(h)−Y2>0.0026y(h)-Y_2>0.0026である。
  2. f(t,u)=t2f(t,u)=t^2、y(τ)=y(0)+τ3/3y(\tau)=y(0)+\tau^3/3とする。D=Ω×(0,∞)D=\Omega\times(0,\infty)、Φ(t,u,h)=t2\Phi(t,u,h)=t^2であり、δy(t,h)=((t+h)3−t3)/3−ht2=th2+h3/3\delta_y(t,h)=\bigl((t+h)^3-t^3\bigr)/3-ht^2=th^2+h^3/3である。したがってt0≤0<Tt_0\le0<Tを満たす任意のt0,Tt_0,Tと任意のH0,ρ>0H_0,\rho>0について、c(t)=tc(t)=t、C1=13C_1=\frac13、Lc=1L_c=1、Λ=0\Lambda=0が命題 1.1の仮定を満たし、C2=2−3(23+1)=524C_2=2^{-3}(\frac23+1)=\frac5{24}である。t=0t=0ではc(0)=0c(0)=0であり、Y1=Z=y(0)Y_1=Z=y(0)、Y2=y(0)+h2(h2)2Y_2=y(0)+\frac h2(\frac h2)^2から e^=h38,y(h)−Y2=h33−h38=5h324\hat e=\frac{h^3}8,\qquad y(h)-Y_2=\frac{h^3}3-\frac{h^3}8=\frac{5h^3}{24} である。命題 1.1 (1)の評価は等号で成り立つ。(e^−(y(h)−Y2))/(y(h)−Y2)=−25\bigl(\hat e-(y(h)-Y_2)\bigr)/(y(h)-Y_2)=-\frac25はhhによらないから、c(0)=0c(0)=0であるこの場合には命題 1.1 (4)の左辺はh→0h\to0で00に近づかない。
  3. f(t,u)=t(1−2t)f(t,u)=t(1-2t)、y(τ)=y(0)+τ2/2−2τ3/3y(\tau)=y(0)+\tau^2/2-2\tau^3/3、t=0t=0、h=1h=1とする。f(0,u)=f(12,u)=0f(0,u)=f(\frac12,u)=0であるからY1=Z=Y2=y(0)Y_1=Z=Y_2=y(0)であり、e^=0\hat e=0である。一方y(1)−Y2=12−23=−16y(1)-Y_2=\frac12-\frac23=-\frac16である。

注意 1.3.s∈N≥1s\in\NNとし、A∈Rs×sA\in\R^{s\times s}を狭義下三角行列、b,b^∈Rsb,\hat b\in\R^sとする。連続写像f ⁣:Ω→Rdf\colon\Omega\to\R^dに Butcher 配列(A,b)(A,b)と(A,b^)(A,\hat b)の陽的 Runge–Kutta 法を適用すると、二つの方法は段の値k1,…,ksk_1,\dots,k_sを共有し、一歩写像Ψh\Psi_hとΨ^h\hat\Psi_hの差はΨ^h(t,u)−Ψh(t,u)=h∑i=1s(b^i−bi)ki\hat\Psi_h(t,u)-\Psi_h(t,u)=h\sum_{i=1}^s(\hat b_i-b_i)k_iである。yyをffの解とし、両者が(t,y(t),h)(t,y(t),h)で定まるとき、局所打切り誤差をδy\delta_y、δ^y\hat\delta_yとするとΨ^h(t,y(t))−Ψh(t,y(t))=δy(t,h)−δ^y(t,h)\hat\Psi_h(t,y(t))-\Psi_h(t,y(t))=\delta_y(t,h)-\hat\delta_y(t,h)である。したがってp∈N≥1p\in\NNとC^≥0\hat C\ge0について∥δ^y(t,h)∥≤C^hp+2\|\hat\delta_y(t,h)\|\le\hat Ch^{p+2}ならば、Ψ^h(t,y(t))−Ψh(t,y(t))\hat\Psi_h(t,y(t))-\Psi_h(t,y(t))とδy(t,h)\delta_y(t,h)の差のノルムはC^hp+2\hat Ch^{p+2}以下である。

この推定は一回の試行でffをss回評価する。(A,b)(A,b)の二半歩による推定でY1Y_1、ZZ、Y2Y_2のss個の段をすべて評価するとき、AAが狭義下三角行列であることからY1Y_1とZZの第一段はともにf(t,u)f(t,u)であり、この第一段だけを共有すると評価回数は3s−13s-1である。s=2s=2、a21=1a_{21}=1、b=(1,0)b=(1,0)、b^=(12,12)\hat b=(\frac12,\frac12)とすると、(A,b)(A,b)の一歩は前進 Euler 法の一歩u+hk1u+hk_1に等しく、(A,b^)(A,\hat b)は Heun 法であり、§E20.27 系 5.2により前進 Euler 法と Heun 法の局所次数はそれぞれ11と22である。このとき差はh2(k2−k1)\frac h2(k_2-k_1)であり、評価回数は22である。

2 刻み制御

定義 2.1.d,p∈N≥1d,p\in\NN、t0<Tt_0<T、u0∈Rdu_0\in\R^dとする。集合D^⊆R×Rd×(0,∞)\hat D\subseteq\R\times\R^d\times(0,\infty)と、(t,u,k)∈D^(t,u,k)\in\hat Dに対してΨ^k(t,u)∈Rd\hat\Psi_k(t,u)\in\R^dとe^(t,u,k)∈Rd\hat e(t,u,k)\in\R^dを定める写像を取る。a1,…,ad>0a_1,\dots,a_d>0、r≥0r\ge0、θ∈(0,1)\theta\in(0,1)、αmin⁡∈(0,1)\alpha_{\min}\in(0,1)、αmax⁡>1\alpha_{\max}>1、hmin⁡>0h_{\min}>0、hinit>0h_{\mathrm{init}}>0とする。

  1. u,v,e∈Rdu,v,e\in\R^dに対してsi:=ai+rmax⁡{∣ui∣,∣vi∣}s_i:=a_i+r\max\{|u_i|,|v_i|\}(1≤i≤d1\le i\le d)と置き、 E(u,v,e):=max⁡1≤i≤d∣ei∣siE(u,v,e):=\max_{1\le i\le d}\frac{|e_i|}{s_i} を 尺度付き誤差 (scaled error) という。ai>0a_i>0によりsi>0s_i>0である。aia_iを成分iiの絶対許容誤差、rrを相対許容誤差という。
  2. E≥0E\ge0に対して、E=0E=0ならばq(E):=αmax⁡q(E):=\alpha_{\max}、E>0E>0ならば q(E):=min⁡{αmax⁡, max⁡{αmin⁡, θE−1/(p+1)}}q(E):=\min\Bigl\{\alpha_{\max},\ \max\bigl\{\alpha_{\min},\ \theta E^{-1/(p+1)}\bigr\}\Bigr\} と置く。
  3. 状態(t,u,h)(t,u,h)を(t0,u0,hinit)(t_0,u_0,h_{\mathrm{init}})で始め、次の規則を停止するまで繰り返す。t=Tt=Tならば停止する。t<Tt<Tかつh<hmin⁡h<h_{\min}ならば停止する。それ以外の場合はk:=min⁡{h,T−t}k:=\min\{h,T-t\}と置き、刻みkkの 試行 (trial step) を行う。(t,u,k)∉D^(t,u,k)\notin\hat Dならば、(t,u)(t,u)を変えずにhhをαmin⁡k\alpha_{\min}kに替える。(t,u,k)∈D^(t,u,k)\in\hat Dならば、v:=Ψ^k(t,u)v:=\hat\Psi_k(t,u)、E:=E(u,v,e^(t,u,k))E:=E(u,v,\hat e(t,u,k))と置き、E≤1E\le1ならば(t,u,h)(t,u,h)を(t+k,v,q(E)k)(t+k,v,q(E)k)に替え、E>1E>1ならば(t,u)(t,u)を変えずにhhをq(E)kq(E)kに替える。E≤1E\le1により(t,u)(t,u)を替える試行を 受理 (acceptance) といい、それ以外の試行を 棄却 (rejection) という。この手続きを 刻み制御 (step-size control) という。
  4. Φ ⁣:D→Rd\Phi\colon D\to\R^dを増分関数とし、Ψh\Psi_hをその一歩写像とする。(t,u,k)∈D(t,u,k)\in D、(t,u,k2)∈D(t,u,\frac k2)\in D、(t+k2,Ψk/2(t,u),k2)∈D(t+\frac k2,\Psi_{k/2}(t,u),\frac k2)\in Dを満たす(t,u,k)(t,u,k)の全体をD^\hat Dとし、 Ψ^k(t,u):=Ψk/2(t+k2,Ψk/2(t,u)),e^(t,u,k):=Ψ^k(t,u)−Ψk(t,u)2p−1\hat\Psi_k(t,u):=\Psi_{k/2}\bigl(t+\tfrac k2,\Psi_{k/2}(t,u)\bigr),\qquad\hat e(t,u,k):=\frac{\hat\Psi_k(t,u)-\Psi_k(t,u)}{2^p-1} と置いた刻み制御を、Ψ\Psiの 二半歩による刻み制御 (step-size control by step doubling) という。

注意 2.2.(t,u)(t,u)を固定し、κ>0\kappa>0と区間I0⊆(0,∞)I_0\subseteq(0,\infty)について、刻みk∈I0k\in I_0の試行の尺度付き誤差がE(k)=κkp+1E(k)=\kappa k^{p+1}であるとする。k∈I0k\in I_0、E(k)>0E(k)>0とし、k^:=θE(k)−1/(p+1)k\hat k:=\theta E(k)^{-1/(p+1)}kがI0I_0に属するならば、E(k^)=θp+1κkp+1/E(k)=θp+1<1E(\hat k)=\theta^{p+1}\kappa k^{p+1}/E(k)=\theta^{p+1}<1である。二半歩による刻み制御の推定値は、命題 1.1の仮定の下で、命題 1.1 (3)と命題 1.1 (1)により、解の上で2−pc(t)kp+12^{-p}c(t)k^{p+1}との差がkp+2k^{p+2}の定数倍以下である。尺度sis_iは候補値vvに依存し、推定値にはkp+2k^{p+2}の程度の項が加わるから、EEは一般にκkp+1\kappa k^{p+1}の形でない。E=0E=0は誤差が00であることを意味しない(例 1.2 (3))。

yyを解とし、受理された状態u=ynu=y_nが時刻tnt_nでy(tn)y(t_n)と異なるとする。(tn,yn)(t_n,y_n)での推定値e^\hat eはy(tn)y(t_n)でなくyny_nから計算されるから、この推定値の評価に命題 1.1を用いる場合、同命題のyyに当たるのは、時刻tnt_nに値yny_nをとり同命題の仮定を満たす解である。刻みhnh_nの試行で受理された値yn+1=Ψ^hn(tn,yn)y_{n+1}=\hat\Psi_{h_n}(t_n,y_n)について、(tn,y(tn),hn)∈D^(t_n,y(t_n),h_n)\in\hat Dであるとき

y(tn+1)−yn+1=(y(tn+1)−Ψ^hn(tn,y(tn)))+(Ψ^hn(tn,y(tn))−Ψ^hn(tn,yn))y(t_{n+1})-y_{n+1}=\bigl(y(t_{n+1})-\hat\Psi_{h_n}(t_n,y(t_n))\bigr)+\bigl(\hat\Psi_{h_n}(t_n,y(t_n))-\hat\Psi_{h_n}(t_n,y_n)\bigr)

であり、受理の判定は、時刻tnt_nでの誤差y(tn)−yny(t_n)-y_nから生じる第二項を含まない。

命題 2.3.定義 2.1の刻み制御を実数の演算で実行すると、規則の繰返しは有限回で停止し、停止したときt=Tt=Tまたはh<hmin⁡h<h_{\min}である。受理された試行のうちt+k<Tt+k<Tを満たすものの刻みkkはhmin⁡h_{\min}以上であり、受理の回数は⌈(T−t0)/hmin⁡⌉\lceil(T-t_0)/h_{\min}\rceil以下である。

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

系 2.4.d∈N≥1d\in\NNとし、Rd\R^dにノルム∥⋅∥\|\cdot\|を固定する。Ω⊆R×Rd\Omega\subseteq\R\times\R^dを開集合、f ⁣:Ω→Rdf\colon\Omega\to\R^dを連続写像、Φ^ ⁣:D^→Rd\hat\Phi\colon\hat D\to\R^dをffに対する増分関数、Ψ^h\hat\Psi_hをその一歩写像とする。t0<Tt_0<Tとし、J⊇[t0,T]J\supseteq[t_0,T]を開区間、y ⁣:J→Rdy\colon J\to\R^dを、任意のτ∈J\tau\in Jについて(τ,y(τ))∈Ω(\tau,y(\tau))\in\Omegaとy′(τ)=f(τ,y(τ))y'(\tau)=f(\tau,y(\tau))を満たすC1C^1級写像とする。写像e^ ⁣:D^→Rd\hat e\colon\hat D\to\R^dとΨ^\hat\Psiによる定義 2.1の刻み制御がt=Tt=Tで停止したとし、受理された試行の後の時刻をt1<⋯<tN=Tt_1<\dots<t_N=T、状態をy1,…,yNy_1,\dots,y_Nとし、y0:=u0y_0:=u_0、hn:=tn+1−tnh_n:=t_{n+1}-t_nと置く。ρ∈(0,∞]\rho\in(0,\infty]とΛ≥0\Lambda\ge0を取り、各n∈{0,…,N−1}n\in\{0,\dots,N-1\}と、∥u−y(tn)∥≤ρ\|u-y(t_n)\|\le\rhoを満たす任意のu∈Rdu\in\R^dについて

(tn,u,hn)∈D^,∥Ψ^hn(tn,u)−Ψ^hn(tn,y(tn))∥≤(1+Λhn)∥u−y(tn)∥(t_n,u,h_n)\in\hat D,\qquad\|\hat\Psi_{h_n}(t_n,u)-\hat\Psi_{h_n}(t_n,y(t_n))\|\le(1+\Lambda h_n)\|u-y(t_n)\|

が成り立つとする。dn:=y(tn+1)−Ψ^hn(tn,y(tn))d_n:=y(t_{n+1})-\hat\Psi_{h_n}(t_n,y(t_n))、En:=∥yn−y(tn)∥E_n:=\|y_n-y(t_n)\|と置き、τ0,…,τN−1≥0\tau_0,\dots,\tau_{N-1}\ge0が∥dn∥≤τn\|d_n\|\le\tau_nを満たすとする。

  1. eΛ(T−t0)(E0+∑j=0N−1τj)≤ρe^{\Lambda(T-t_0)}\bigl(E_0+\sum_{j=0}^{N-1}\tau_j\bigr)\le\rhoならば、0≤n≤N0\le n\le NについてEn≤eΛ(tn−t0)(E0+∑j=0n−1τj)E_n\le e^{\Lambda(t_n-t_0)}\bigl(E_0+\sum_{j=0}^{n-1}\tau_j\bigr)である。
  2. ε≥0\varepsilon\ge0が0≤j<N0\le j<Nについてτj≤εhj\tau_j\le\varepsilon h_jを満たし、φΛ\varphi_\Lambdaを§E20.28 補題 1.2 (3)の関数としてeΛ(T−t0)E0+εφΛ(T−t0)≤ρe^{\Lambda(T-t_0)}E_0+\varepsilon\varphi_\Lambda(T-t_0)\le\rhoならば、0≤n≤N0\le n\le NについてEn≤eΛ(tn−t0)E0+εφΛ(tn−t0)E_n\le e^{\Lambda(t_n-t_0)}E_0+\varepsilon\varphi_\Lambda(t_n-t_0)である。

証明. 棄却は(t,u)(t,u)を変えず、受理は(t,u)(t,u)を(t+k,Ψ^k(t,u))(t+k,\hat\Psi_k(t,u))に替えるから、0≤n<N0\le n<Nについてyn+1=Ψ^hn(tn,yn)y_{n+1}=\hat\Psi_{h_n}(t_n,y_n)である。§E20.28 定理 1.3のBnB_nをrj=0r_j=0として

Bn=eΛ(tn−t0)E0+∑j=0n−1eΛ(tn−tj+1)∥dj∥B_n=e^{\Lambda(t_n-t_0)}E_0+\sum_{j=0}^{n-1}e^{\Lambda(t_n-t_{j+1})}\|d_j\|

と置く。

(1)を示す。0≤tn−tj+1≤tn−t00\le t_n-t_{j+1}\le t_n-t_0と∥dj∥≤τj\|d_j\|\le\tau_jによりBn≤eΛ(tn−t0)(E0+∑j<nτj)B_n\le e^{\Lambda(t_n-t_0)}\bigl(E_0+\sum_{j<n}\tau_j\bigr)であり、特にBN≤ρB_N\le\rhoである。§E20.28 定理 1.3によりEn≤BnE_n\le B_nである。

(2)を示す。§E20.28 補題 1.2 (3)をaj:=∥dj∥≤εhja_j:=\|d_j\|\le\varepsilon h_j、α:=ε\alpha:=\varepsilonとして適用するとBn≤eΛ(tn−t0)E0+εφΛ(tn−t0)B_n\le e^{\Lambda(t_n-t_0)}E_0+\varepsilon\varphi_\Lambda(t_n-t_0)であり、特にBN≤ρB_N\le\rhoである。§E20.28 定理 1.3によりEn≤BnE_n\le B_nである。▨

注意 2.5.d=1d=1、Ω=R2\Omega=\R^2、L>0L>0、ε>0\varepsilon>0、f(t,u)=Luf(t,u)=Luとし、Ω×(0,∞)\Omega\times(0,\infty)上の増分関数Φ^(t,u,h):=((eLh−1)u+εh)/h\hat\Phi(t,u,h):=\bigl((e^{Lh}-1)u+\varepsilon h\bigr)/hの一歩写像Ψ^h(t,u)=eLhu+εh\hat\Psi_h(t,u)=e^{Lh}u+\varepsilon hを考える。解y(τ)=eL(τ−t0)y(\tau)=e^{L(\tau-t_0)}と任意の格子について、系 2.4のdnd_nはdn=−εhnd_n=-\varepsilon h_nであり、∑n∥dn∥=ε(T−t0)\sum_n\|d_n\|=\varepsilon(T-t_0)である。y0=y(t0)y_0=y(t_0)、yn+1=Ψ^hn(tn,yn)y_{n+1}=\hat\Psi_{h_n}(t_n,y_n)とすると、en:=yn−y(tn)e_n:=y_n-y(t_n)はe0=0e_0=0、en+1=eLhnen+εhne_{n+1}=e^{Lh_n}e_n+\varepsilon h_nを満たし、

eN=ε∑n=0N−1eL(T−tn+1)hne_N=\varepsilon\sum_{n=0}^{N-1}e^{L(T-t_{n+1})}h_n

である。等間隔hn=hh_n=hではeN=εh(eL(T−t0)−1)/(eLh−1)e_N=\varepsilon h\bigl(e^{L(T-t_0)}-1\bigr)/(e^{Lh}-1)であり、eLh−1≤LheLhe^{Lh}-1\le Lhe^{Lh}からeN≥εe−Lh(eL(T−t0)−1)/Le_N\ge\varepsilon e^{-Lh}\bigl(e^{L(T-t_0)}-1\bigr)/Lである。L(T−t0)=10L(T-t_0)=10ではeNe_Nは局所打切り誤差の和ε(T−t0)\varepsilon(T-t_0)のe−Lh(e10−1)/10e^{-Lh}(e^{10}-1)/10倍以上である。部分区間ごとの誤差の和で積分全体の誤差を抑える§E20.21 補題 2.1と異なり、時刻tn+1t_{n+1}で加わった誤差は以後の歩の初期値の誤差となり、eL(T−tn+1)e^{L(T-t_{n+1})}倍されてeNe_Nに現れる。

3 補間による軌道誤差

命題 3.1.d∈N≥1d\in\NNとし、u∈Rdu\in\R^dに対して∥u∥∞:=max⁡1≤i≤d∣ui∣\|u\|_\infty:=\max_{1\le i\le d}|u_i|と置く。

  1. c∈Rc\in\R、h>0h>0とし、y ⁣:[c,c+h]→Rdy\colon[c,c+h]\to\R^dをC4C^4級写像、εy,εd≥0\varepsilon_y,\varepsilon_d\ge0とする。y~1,y~2,d~1,d~2∈Rd\tilde y_1,\tilde y_2,\tilde d_1,\tilde d_2\in\R^dが ∥y~1−y(c)∥∞, ∥y~2−y(c+h)∥∞≤εy,∥d~1−y′(c)∥∞, ∥d~2−y′(c+h)∥∞≤εd\|\tilde y_1-y(c)\|_\infty,\ \|\tilde y_2-y(c+h)\|_\infty\le\varepsilon_y,\qquad\|\tilde d_1-y'(c)\|_\infty,\ \|\tilde d_2-y'(c+h)\|_\infty\le\varepsilon_d を満たすとする。各iiについてH~i\tilde H_iをデータ(c,y~1,i,d~1,i)(c,\tilde y_{1,i},\tilde d_{1,i})、(c+h,y~2,i,d~2,i)(c+h,\tilde y_{2,i},\tilde d_{2,i})の Hermite 補間多項式とし、H~:=(H~1,…,H~d)\tilde H:=(\tilde H_1,\dots,\tilde H_d)、M4:=max⁡imax⁡s∈[c,c+h]∣yi(4)(s)∣M_4:=\max_i\max_{s\in[c,c+h]}|y_i^{(4)}(s)|と置く。このとき max⁡x∈[c,c+h]∥H~(x)−y(x)∥∞≤εy+hεd4+M4h4384\max_{x\in[c,c+h]}\|\tilde H(x)-y(x)\|_\infty\le\varepsilon_y+\frac{h\varepsilon_d}4+\frac{M_4h^4}{384} である。
  2. Ω⊆R×Rd\Omega\subseteq\R\times\R^d、f ⁣:Ω→Rdf\colon\Omega\to\R^d、t∈Rt\in\R、u,u~,d~∈Rdu,\tilde u,\tilde d\in\R^d、L,εf≥0L,\varepsilon_f\ge0とし、(t,u),(t,u~)∈Ω(t,u),(t,\tilde u)\in\Omega、∥f(t,u~)−f(t,u)∥∞≤L∥u~−u∥∞\|f(t,\tilde u)-f(t,u)\|_\infty\le L\|\tilde u-u\|_\infty、∥d~−f(t,u~)∥∞≤εf\|\tilde d-f(t,\tilde u)\|_\infty\le\varepsilon_fとする。yyがttで微分可能でy(t)=uy(t)=u、y′(t)=f(t,u)y'(t)=f(t,u)を満たすならば、∥d~−y′(t)∥∞≤εf+L∥u~−u∥∞\|\tilde d-y'(t)\|_\infty\le\varepsilon_f+L\|\tilde u-u\|_\inftyである。
  3. t0<t1<⋯<tNt_0<t_1<\dots<t_Nとy~n,d~n∈Rd\tilde y_n,\tilde d_n\in\R^d(0≤n≤N0\le n\le N)を取る。各n<Nn<Nについて[tn,tn+1][t_n,t_{n+1}]上のy~\tilde yを、データ(tn,y~n,d~n)(t_n,\tilde y_n,\tilde d_n)、(tn+1,y~n+1,d~n+1)(t_{n+1},\tilde y_{n+1},\tilde d_{n+1})の成分ごとの Hermite 補間多項式で定める。このときy~ ⁣:[t0,tN]→Rd\tilde y\colon[t_0,t_N]\to\R^dは矛盾なく定まるC1C^1級写像であり、y~(tn)=y~n\tilde y(t_n)=\tilde y_n、y~′(tn)=d~n\tilde y'(t_n)=\tilde d_nである。

証明.(1)を示す。各iiについてHiH_iをc,c+hc,c+hにおけるyiy_iの Hermite 補間多項式とする。§E20.12 命題 7.4 (3)により[c,c+h][c,c+h]上で∣H~i−Hi∣≤εy+hεd/4|\tilde H_i-H_i|\le\varepsilon_y+h\varepsilon_d/4であり、§E20.12 命題 7.4 (4)をyiy_iに適用すると[c,c+h][c,c+h]上で∣yi−Hi∣≤M4h4/384|y_i-H_i|\le M_4h^4/384である。三角不等式により各iiとx∈[c,c+h]x\in[c,c+h]で∣H~i(x)−yi(x)∣|\tilde H_i(x)-y_i(x)|は右辺以下であり、iiについて最大値をとると主張を得る。

(2)を示す。y′(t)=f(t,u)y'(t)=f(t,u)によりd~−y′(t)=(d~−f(t,u~))+(f(t,u~)−f(t,u))\tilde d-y'(t)=\bigl(\tilde d-f(t,\tilde u)\bigr)+\bigl(f(t,\tilde u)-f(t,u)\bigr)であり、二つの項のノルムはそれぞれεf\varepsilon_fとL∥u~−u∥∞L\|\tilde u-u\|_\infty以下である。

(3)を示す。§E20.12 命題 7.4 (1)により、[tn,tn+1][t_n,t_{n+1}]上の多項式はtnt_nで値y~n\tilde y_nと微分係数d~n\tilde d_nをとり、tn+1t_{n+1}で値y~n+1\tilde y_{n+1}と微分係数d~n+1\tilde d_{n+1}をとる。したがって0<n<N0<n<Nについて、tnt_nを共有する二つの区間の多項式はtnt_nで同じ値y~n\tilde y_nをとり、y~\tilde yは矛盾なく定まって連続である。y~\tilde yのtnt_nでの左微分係数と右微分係数はともにd~n\tilde d_nであるから、y~\tilde yはtnt_nで微分可能でありy~′(tn)=d~n\tilde y'(t_n)=\tilde d_nである。各区間上でy~′\tilde y'は多項式の導関数であって連続であり、tnt_nでの片側極限はともにd~n\tilde d_nであるから、y~′\tilde y'は[t0,tN][t_0,t_N]上で連続である。▨

例 3.2.c∈Rc\in\R、h>0h>0、d=1d=1とし、w(t):=(t−c)2(t−c−h)2w(t):=(t-c)^2(t-c-h)^2、f(t,u):=w′(t)=2(t−c)(t−c−h)(2t−2c−h)f(t,u):=w'(t)=2(t-c)(t-c-h)(2t-2c-h)((t,u)∈R2(t,u)\in\R^2)と置く。y:=wy:=wはy′=f(t,y)y'=f(t,y)、y(c)=0y(c)=0を満たす。y(c)=y(c+h)=y′(c)=y′(c+h)=0y(c)=y(c+h)=y'(c)=y'(c+h)=0であるから、§E20.12 命題 7.4 (1)により、この厳密な端点データの Hermite 補間多項式はy~=0\tilde y=0である。max⁡[c,c+h]∣y−y~∣=w(c+h2)=h4/16\max_{[c,c+h]}|y-\tilde y|=w(c+\frac h2)=h^4/16であり、y(4)=24y^{(4)}=24から、命題 3.1 (1)の右辺はεy=εd=0\varepsilon_y=\varepsilon_d=0のとき24h4/384=h4/1624h^4/384=h^4/16に等しい。

y~\tilde yの欠陥δ(s)=y~′(s)−f(s,y~(s))=−w′(s)\delta(s)=\tilde y'(s)-f(s,\tilde y(s))=-w'(s)はs=c,c+h2,c+hs=c,c+\frac h2,c+hで00であるが、軌道誤差はh4/16h^4/16である。§E20.28 定理 4.1を[t0,T]=[c,c+h][t_0,T]=[c,c+h]、S=[c,c+h]×RS=[c,c+h]\times\R、ℓ=0\ell=0として適用すると∣y~(t)−y(t)∣≤∫ct∣w′(s)∣ ds|\tilde y(t)-y(t)|\le\int_c^t|w'(s)|\,dsである。w′w'は[c,c+h2][c,c+\frac h2]で非負、[c+h2,c+h][c+\frac h2,c+h]で非正であるから、右辺はt=c+h2t=c+\frac h2でw(c+h2)=h4/16w(c+\frac h2)=h^4/16となって誤差に等しく、t=c+ht=c+hでh4/8h^4/8となり、誤差00より大きい。

4 イベント時刻

定義 4.1.d∈N≥1d\in\NNとし、I⊆RI\subseteq\Rを区間、U⊆RdU\subseteq\R^d、y ⁣:I→Uy\colon I\to Uを写像、g ⁣:I×U→Rg\colon I\times U\to\Rを関数とする。ggを イベント関数 (event function) といい、G(t):=g(t,y(t))G(t):=g(t,y(t))(t∈It\in I)の零点をyyの イベント時刻 (event time) という。

補題 4.2.d∈N≥1d\in\NNとし、Rd\R^dにノルム∥⋅∥\|\cdot\|を固定する。t∈Rt\in\R、U⊆RdU\subseteq\R^dとし、ggを{t}×U\{t\}\times Uを含む集合上の実数値関数とする。K≥0K\ge0が任意のu,v∈Uu,v\in Uについて∣g(t,u)−g(t,v)∣≤K∥u−v∥|g(t,u)-g(t,v)|\le K\|u-v\|を満たすとする。u,u~∈Uu,\tilde u\in U、g^∈R\hat g\in\R、εy,εg≥0\varepsilon_y,\varepsilon_g\ge0が∥u~−u∥≤εy\|\tilde u-u\|\le\varepsilon_y、∣g^−g(t,u~)∣≤εg|\hat g-g(t,\tilde u)|\le\varepsilon_gを満たすならば、∣g^−g(t,u)∣≤Kεy+εg|\hat g-g(t,u)|\le K\varepsilon_y+\varepsilon_gである。

証明.g^−g(t,u)=(g^−g(t,u~))+(g(t,u~)−g(t,u))\hat g-g(t,u)=\bigl(\hat g-g(t,\tilde u)\bigr)+\bigl(g(t,\tilde u)-g(t,u)\bigr)であり、二つの項の絶対値はそれぞれεg\varepsilon_gとK∥u~−u∥≤KεyK\|\tilde u-u\|\le K\varepsilon_y以下である。▨

命題 4.3.d∈N≥1d\in\NNとし、Rd\R^dにノルム∥⋅∥\|\cdot\|を固定する。I⊆RI\subseteq\Rを区間、U⊆RdU\subseteq\R^d、y ⁣:I→Uy\colon I\to Uとy~ ⁣:I→Rd\tilde y\colon I\to\R^dを写像、g ⁣:I×U→Rg\colon I\times U\to\Rを関数とし、G(t):=g(t,y(t))G(t):=g(t,y(t))がII上で連続かつIIの内部で微分可能であるとする。τ,τ^∈I\tau,\hat\tau\in IがG(τ)=0G(\tau)=0を満たし、m>0m>0がmin⁡{τ,τ^}<s<max⁡{τ,τ^}\min\{\tau,\hat\tau\}<s<\max\{\tau,\hat\tau\}を満たす任意のssについて∣G′(s)∣≥m|G'(s)|\ge mを満たすとする。K,εy,εg,r≥0K,\varepsilon_y,\varepsilon_g,r\ge0とg^∈R\hat g\in\Rが、y~(τ^)∈U\tilde y(\hat\tau)\in U、任意のu,v∈Uu,v\in Uについての∣g(τ^,u)−g(τ^,v)∣≤K∥u−v∥|g(\hat\tau,u)-g(\hat\tau,v)|\le K\|u-v\|、∥y~(τ^)−y(τ^)∥≤εy\|\tilde y(\hat\tau)-y(\hat\tau)\|\le\varepsilon_y、∣g^−g(τ^,y~(τ^))∣≤εg|\hat g-g(\hat\tau,\tilde y(\hat\tau))|\le\varepsilon_g、∣g^∣≤r|\hat g|\le rを満たすならば

∣τ^−τ∣≤Kεy+εg+rm|\hat\tau-\tau|\le\frac{K\varepsilon_y+\varepsilon_g+r}m

である。

証明.補題 4.2をt=τ^t=\hat\tau、u=y(τ^)u=y(\hat\tau)、u~=y~(τ^)\tilde u=\tilde y(\hat\tau)に適用すると∣g^−G(τ^)∣≤Kεy+εg|\hat g-G(\hat\tau)|\le K\varepsilon_y+\varepsilon_gであり、∣g^∣≤r|\hat g|\le rと合わせて∣G(τ^)∣≤Kεy+εg+r|G(\hat\tau)|\le K\varepsilon_y+\varepsilon_g+rである。§E20.2 命題 6.1を区間II、関数GG、零点τ\tau、近似点τ^\hat\tauに適用すると∣τ^−τ∣≤∣G(τ^)∣/m|\hat\tau-\tau|\le|G(\hat\tau)|/mである。▨

命題 4.4.a<ba<bとし、G ⁣:[a,b]→RG\colon[a,b]\to\Rを連続関数、η≥0\eta\ge0とする。g^a,g^b∈R\hat g_a,\hat g_b\in\Rが∣g^a−G(a)∣≤η|\hat g_a-G(a)|\le\eta、∣g^b−G(b)∣≤η|\hat g_b-G(b)|\le\etaを満たすとする。

  1. g^ag^b<0\hat g_a\hat g_b<0かつmin⁡{∣g^a∣,∣g^b∣}>η\min\{|\hat g_a|,|\hat g_b|\}>\etaならば、G(a)G(b)<0G(a)G(b)<0であり、GGは(a,b)(a,b)に零点をもつ。
  2. GGが(a,b)(a,b)で微分可能であり、m>0m>0が任意のs∈(a,b)s\in(a,b)について∣G′(s)∣≥m|G'(s)|\ge mを満たすならば、GGの[a,b][a,b]における零点は高々一つである。
  3. ΛG≥0\Lambda_G\ge0が任意のs,t∈[a,b]s,t\in[a,b]について∣G(s)−G(t)∣≤ΛG∣s−t∣|G(s)-G(t)|\le\Lambda_G|s-t|を満たし、∣g^a∣+∣g^b∣>ΛG(b−a)+2η|\hat g_a|+|\hat g_b|>\Lambda_G(b-a)+2\etaならば、GGは[a,b][a,b]に零点をもたない。

証明.(1)を示す。∣g^a−G(a)∣≤η<∣g^a∣|\hat g_a-G(a)|\le\eta<|\hat g_a|であるからG(a)G(a)はg^a\hat g_aと同符号であり、同様にG(b)G(b)はg^b\hat g_bと同符号である。したがってG(a)G(b)<0G(a)G(b)<0である。G(a)<0<G(b)G(a)<0<G(b)ならばGGに、G(a)>0>G(b)G(a)>0>G(b)ならば−G-Gに§D1.12 定理 1.1を適用して、(a,b)(a,b)の零点を得る。

(2)を示す。τ1,τ2∈[a,b]\tau_1,\tau_2\in[a,b]をGGの零点とする。τ1\tau_1とτ2\tau_2の間の点は(a,b)(a,b)に属するから、§E20.2 命題 6.1を区間[a,b][a,b]、零点τ1\tau_1、近似点τ2\tau_2に適用して∣τ2−τ1∣≤∣G(τ2)∣/m=0|\tau_2-\tau_1|\le|G(\tau_2)|/m=0を得る。

(3)を示す。s∈[a,b]s\in[a,b]がG(s)=0G(s)=0を満たすとすると、∣G(a)∣=∣G(a)−G(s)∣≤ΛG(s−a)|G(a)|=|G(a)-G(s)|\le\Lambda_G(s-a)、∣G(b)∣≤ΛG(b−s)|G(b)|\le\Lambda_G(b-s)であるから

∣g^a∣+∣g^b∣≤∣G(a)∣+∣G(b)∣+2η≤ΛG(b−a)+2η|\hat g_a|+|\hat g_b|\le|G(a)|+|G(b)|+2\eta\le\Lambda_G(b-a)+2\eta

である。仮定はこの不等式の否定であるから、GGは[a,b][a,b]に零点をもたない。▨

例 4.5.

  1. [a,b]=[0,2][a,b]=[0,2]、G(t)=(t−1)2G(t)=(t-1)^2とする。GGの零点は11だけであり、G(0)=G(2)=1G(0)=G(2)=1は同符号である。G′(1)=0G'(1)=0であり、∣G′(s)∣=2∣s−1∣|G'(s)|=2|s-1|であるから、11を端点とする開区間上で∣G′∣|G'|の正の下界は存在しない。η0∈(0,1)\eta_0\in(0,1)に対してG−η0G-\eta_0はGGとの差の絶対値がη0\eta_0であり、零点1±η01\pm\sqrt{\eta_0}をもつ。τ^:=1+η0\hat\tau:=1+\sqrt{\eta_0}は(G−η0)(τ^)=0(G-\eta_0)(\hat\tau)=0、G(τ^)=η0G(\hat\tau)=\eta_0を満たすが、GGの零点11との距離はη0\sqrt{\eta_0}である。η0=10−8\eta_0=10^{-8}では値の差10−810^{-8}に対して時刻の差は10−410^{-4}である。G+η0G+\eta_0は零点をもたない。
  2. [a,b]=[0,1][a,b]=[0,1]、G(t)=(t−15)(t−12)(t−45)G(t)=(t-\frac15)(t-\frac12)(t-\frac45)とする。G(0)=−225<0<225=G(1)G(0)=-\frac2{25}<0<\frac2{25}=G(1)であり、GGは(0,1)(0,1)に三つの零点をもつ。§E20.4 定義 2.2の二分法はm0=12m_0=\frac12でG(m0)=0G(m_0)=0となり、§E20.4 定義 2.2 (1)により12\frac12を出力して停止する。出力12\frac12は(0,1)(0,1)の最小の零点15\frac15と異なる。命題 4.4 (2)により、(0,1)(0,1)上で∣G′∣≥m|G'|\ge mを満たすm>0m>0は存在しない。
  3. [a,b]=[0,1][a,b]=[0,1]、G(t)=(t−310)(t−710)G(t)=(t-\frac3{10})(t-\frac7{10})とする。G(0)=G(1)=21100>0G(0)=G(1)=\frac{21}{100}>0であるが、GGは(0,1)(0,1)に零点310\frac3{10}、710\frac7{10}をもつ。G(s)−G(t)=(s−t)(s+t−1)G(s)-G(t)=(s-t)(s+t-1)であり、s,t∈[0,1]s,t\in[0,1]では∣s+t−1∣≤1|s+t-1|\le1であるから、ΛG=1\Lambda_G=1が[0,1][0,1]とその部分区間で命題 4.4 (3)の Lipschitz 条件を満たす。∣G(0)∣+∣G(1)∣=2150<1|G(0)|+|G(1)|=\frac{21}{50}<1であるから、[0,1][0,1]ではη=0\eta=0の命題 4.4 (3)の仮定は成り立たない。[0,15][0,\frac15]では∣G(0)∣+∣G(15)∣=21100+120=26100>15|G(0)|+|G(\frac15)|=\frac{21}{100}+\frac1{20}=\frac{26}{100}>\frac15であるから、命題 4.4 (3)によりGGは[0,15][0,\frac15]に零点をもたない。

例 4.6.d=2d=2、Ω=R×R2\Omega=\R\times\R^2とし、状態を(x,v)(x,v)と書いてf(t,(x,v)):=(v,−1+v2)f(t,(x,v)):=(v,-1+v^2)と置く。初期値(x,v)(0)=(1,0)(x,v)(0)=(1,0)の解はx(t)=1−log⁡cosh⁡tx(t)=1-\log\cosh t、v(t)=−tanh⁡tv(t)=-\tanh tである。v<0v<0では−1+v2=−1−v∣v∣-1+v^2=-1-v|v|であり、xxとvvは、重力加速度と比例定数を11とした速さの二乗に比例する抵抗を受けて落下する物体の高さと速度である。イベント関数g(t,(x,v)):=xg(t,(x,v)):=xについてG(t)=x(t)G(t)=x(t)、G′(t)=−tanh⁡tG'(t)=-\tanh tであり、G(0)=1G(0)=1とt>0t>0でのG′(t)<0G'(t)<0により、GGの[0,∞)[0,\infty)の零点は

τ=arcosh⁡e=log⁡(e+e2−1)=1.657454454153…\tau=\operatorname{arcosh}e=\log\bigl(e+\sqrt{e^2-1}\bigr)=1.657454454153\ldots

ただ一つである。

Heun 法の二半歩による刻み制御を、p=2p=2、t0=0t_0=0、T=2T=2、u0=(1,0)u_0=(1,0)、a1=a2=r=10−3a_1=a_2=r=10^{-3}、θ=0.8\theta=0.8、αmin⁡=0.2\alpha_{\min}=0.2、αmax⁡=2\alpha_{\max}=2、hmin⁡=10−6h_{\min}=10^{-6}、hinit=0.5h_{\mathrm{init}}=0.5として CPython の float で実行した。最初の試行はk=0.5k=0.5、E=4.3149…E=4.3149\ldotsで棄却されてh=0.245698…h=0.245698\ldotsとなり、以後の8回の試行はすべて受理されてt=Tt=Tで停止した。8回目の受理の刻みは、終点への切詰めによるT−t7T-t_7である。受理後の状態を(xn,vn)(x_n,v_n)、受理の判定に用いた尺度をsn,1,sn,2s_{n,1},s_{n,2}とし、60桁の十進演算で求めた解の値と比べて丸めると次のとおりである。最後の列はmax⁡{∣xn−x(tn)∣/sn,1, ∣vn−v(tn)∣/sn,2}\max\{|x_n-x(t_n)|/s_{n,1},\ |v_n-v(t_n)|/s_{n,2}\}である。

nn tnt_n tn−tn−1t_n-t_{n-1} EE ∣xn−x(tn)∣\lvert x_n-x(t_n)\rvert ∣vn−v(tn)∣\lvert v_n-v(t_n)\rvert 尺度で割った誤差
11 0.2456990.245699 0.2456990.245699 0.52430.5243 7.283×10−57.283\times10^{-5} 6.380×10−46.380\times10^{-4} 0.51440.5144
22 0.4894670.489467 0.2437680.243768 0.56760.5676 2.312×10−42.312\times10^{-4} 1.269×10−31.269\times10^{-3} 0.87370.8737
33 0.7249980.724998 0.2355310.235531 0.52780.5278 3.327×10−43.327\times10^{-4} 1.704×10−31.704\times10^{-3} 1.05301.0530
44 0.9581580.958158 0.2331600.233160 0.46260.4626 3.396×10−43.396\times10^{-4} 1.900×10−31.900\times10^{-3} 1.09121.0912
55 1.1993381.199338 0.2411800.241180 0.41370.4137 2.753×10−42.753\times10^{-4} 1.907×10−31.907\times10^{-3} 1.04111.0411
66 1.4582771.458277 0.2589390.258939 0.37540.3754 1.634×10−41.634\times10^{-4} 1.775×10−31.775\times10^{-3} 0.93620.9362
77 1.7454441.745444 0.2871680.287168 0.34190.3419 2.251×10−52.251\times10^{-5} 1.550×10−31.550\times10^{-3} 0.79900.7990
88 2.0000002.000000 0.2545560.254556 0.14610.1461 1.770×10−41.770\times10^{-4} 1.178×10−31.178\times10^{-3} 0.60010.6001

すべての受理でE≤1E\le1であるが、n=3,4,5n=3,4,5では最後の列が11を超え、vnv_nの真の誤差は受理の判定に用いた尺度を超えている。

x6=0.182000…>0>x7=−0.082338…x_6=0.182000\ldots>0>x_7=-0.082338\ldotsである。η:=1.7×10−4\eta:=1.7\times10^{-4}と置くと、∣x6−x(t6)∣≤η|x_6-x(t_6)|\le\eta、∣x7−x(t7)∣≤η|x_7-x(t_7)|\le\eta、min⁡{∣x6∣,∣x7∣}>η\min\{|x_6|,|x_7|\}>\etaであるから、命題 4.4 (1)によりGGは(t6,t7)(t_6,t_7)に零点をもつ。刻みの端点だけで時刻をt7t_7とすると、誤差はt7−τ=0.087989…t_7-\tau=0.087989\ldotsである。

[t6,t7][t_6,t_7]上でxxをデータ(t6,x6,v6)(t_6,x_6,v_6)、(t7,x7,v7)(t_7,x_7,v_7)の三次 Hermite 補間多項式x~\tilde xで近似する。x′=vx'=vであるから、微分データvnv_nの誤差は∣vn−x′(tn)∣=∣vn−v(tn)∣|v_n-x'(t_n)|=|v_n-v(t_n)|である。σ:=sech⁡2t\sigma:=\operatorname{sech}^2tと置くとx(4)=2σ(3σ−2)x^{(4)}=2\sigma(3\sigma-2)であり、[t6,t7][t_6,t_7]上でσ<13\sigma<\frac13であるから∣x(4)∣=2σ(2−3σ)|x^{(4)}|=2\sigma(2-3\sigma)はσ\sigmaについて増加し、ttについて減少する。したがってM4=∣x(4)(t6)∣=0.5515…M_4=|x^{(4)}(t_6)|=0.5515\ldotsである。命題 3.1 (1)をd=1d=1、εy=1.633…×10−4\varepsilon_y=1.633\ldots\times10^{-4}、εd=1.774…×10−3\varepsilon_d=1.774\ldots\times10^{-3}、h=0.287167…h=0.287167\ldotsとして適用すると、[t6,t7][t_6,t_7]上で

∣x~−x∣≤εy+hεd4+M4h4384=3.005…×10−4|\tilde x-x|\le\varepsilon_y+\frac{h\varepsilon_d}4+\frac{M_4h^4}{384}=3.005\ldots\times10^{-4}

である。

節点の値は二進浮動小数点数であり有理数であるから、x~\tilde xの値を有理数の演算で厳密に計算し、§E20.4 定義 2.2の二分法を[t6,t7][t_6,t_7]上のx~\tilde xに60段適用してτ^:=m60=1.657367744776…\hat\tau:=m_{60}=1.657367744776\ldotsを得た。x~(τ^)\tilde x(\hat\tau)は厳密に計算した値であり、∣x~(τ^)∣<8.9×10−22|\tilde x(\hat\tau)|<8.9\times10^{-22}、∣x~(τ^)−x(τ^)∣=8.0628…×10−5|\tilde x(\hat\tau)-x(\hat\tau)|=8.0628\ldots\times10^{-5}である。∣G′∣=tanh⁡|G'|=\tanhはt>0t>0で増加し、τ^<τ\hat\tau<\tauであるから、m:=tanh⁡τ^=0.929861…m:=\tanh\hat\tau=0.929861\ldotsはτ^\hat\tauとτ\tauの間で∣G′∣≥m|G'|\ge mを満たす。命題 4.3をd=1d=1、I=[t6,t7]I=[t_6,t_7]、U=RU=\R、y=xy=x、y~=x~\tilde y=\tilde x、g(t,x)=xg(t,x)=x、K=1K=1、g^=x~(τ^)\hat g=\tilde x(\hat\tau)、εg=0\varepsilon_g=0、εy=∣x~(τ^)−x(τ^)∣\varepsilon_y=|\tilde x(\hat\tau)-x(\hat\tau)|、r=∣x~(τ^)∣r=|\tilde x(\hat\tau)|として適用すると

∣τ^−τ∣≤∣x~(τ^)−x(τ^)∣+∣x~(τ^)∣m=8.67099…×10−5|\hat\tau-\tau|\le\frac{|\tilde x(\hat\tau)-x(\hat\tau)|+|\tilde x(\hat\tau)|}m=8.67099\ldots\times10^{-5}

であり、実際の誤差は∣τ^−τ∣=8.67093…×10−5|\hat\tau-\tau|=8.67093\ldots\times10^{-5}である。[t6,t7][t_6,t_7]上で∣G′∣≥tanh⁡t6=0.8973…|G'|\ge\tanh t_6=0.8973\ldotsであるから、同じ命題をm=tanh⁡t6m=\tanh t_6として用いると、εt>0\varepsilon_t>0と[t6,t7][t_6,t_7]に属する任意のτ^\hat\tauについて、∣x~(τ^)−x(τ^)∣+∣x~(τ^)∣≤0.89 εt|\tilde x(\hat\tau)-x(\hat\tau)|+|\tilde x(\hat\tau)|\le0.89\,\varepsilon_tならば∣τ^−τ∣≤εt|\hat\tau-\tau|\le\varepsilon_tである。例 4.5 (1)では∣G′∣|G'|の正の下界が存在しないから、この形の十分条件は得られない。上のη\eta、Hermite 補間の評価に用いたεy,εd\varepsilon_y,\varepsilon_d、∣x~(τ^)−x(τ^)∣|\tilde x(\hat\tau)-x(\hat\tau)|は、刻み制御の計算からでなく解の値から得たものである。

5 演習

問題 5.1.命題 2.3の証明を完成させよ。

解答.

κ:=max⁡{αmin⁡,θ}\kappa:=\max\{\alpha_{\min},\theta\}と置くとκ<1\kappa<1である。棄却ではhhがκh\kappa h以下の値に替わる。実際、(t,u,k)∉D^(t,u,k)\notin\hat Dの場合の新しい値はαmin⁡k≤κh\alpha_{\min}k\le\kappa hである。E>1E>1の場合はθE−1/(p+1)<θ≤κ\theta E^{-1/(p+1)}<\theta\le\kappaとαmin⁡≤κ\alpha_{\min}\le\kappaによりq(E)≤max⁡{αmin⁡,θE−1/(p+1)}≤κq(E)\le\max\{\alpha_{\min},\theta E^{-1/(p+1)}\}\le\kappaであり、新しい値はq(E)k≤κhq(E)k\le\kappa hである。受理ではq(E)≤αmax⁡q(E)\le\alpha_{\max}により新しい値はq(E)k≤αmax⁡hq(E)k\le\alpha_{\max}hである。試行ごとにk≤T−tk\le T-tであるから、状態のttはつねにTT以下であり、受理でだけ増加する。

停止はt=Tt=Tの規則かh<hmin⁡h<h_{\min}の規則によってだけ起こるから、停止したときt=Tt=Tまたはh<hmin⁡h<h_{\min}である。

受理された試行がt+k<Tt+k<Tを満たすとする。k=min⁡{h,T−t}<T−tk=\min\{h,T-t\}<T-tであるからk=hk=hであり、試行が行われたことからh≥hmin⁡h\ge h_{\min}である。したがってk≥hmin⁡k\ge h_{\min}である。このような受理の回数をA′A'とすると、これらの受理の後のttはすべてTT未満であり、最後のものの後のttはt0+A′hmin⁡t_0+A'h_{\min}以上であるから、A′<(T−t0)/hmin⁡A'<(T-t_0)/h_{\min}、すなわちA′≤⌈(T−t0)/hmin⁡⌉−1A'\le\lceil(T-t_0)/h_{\min}\rceil-1である。t+k=Tt+k=Tを満たす受理の後はt=Tt=Tであり、次の繰返しで停止するから、そのような受理は高々一回である。したがって受理の回数はAmax⁡:=⌈(T−t0)/hmin⁡⌉A_{\max}:=\lceil(T-t_0)/h_{\min}\rceil以下である。

hhは受理で高々αmax⁡\alpha_{\max}倍になり、棄却で減少するから、つねにh≤H∗:=hinitαmax⁡Amax⁡h\le H^*:=h_{\mathrm{init}}\alpha_{\max}^{A_{\max}}である。κJH∗<hmin⁡\kappa^JH^*<h_{\min}を満たすJ∈N≥1J\in\NNを取る。連続するJJ回の棄却の後ではh≤κJH∗<hmin⁡h\le\kappa^JH^*<h_{\min}であり、棄却はttを変えないからt<Tt<Tのままであって、次の繰返しで停止する。したがって、停止しない繰返しは、高々Amax⁡A_{\max}回の受理と、それらによって分けられた高々Amax⁡+1A_{\max}+1個の区切りの各々での高々JJ回の棄却からなり、その回数はAmax⁡+(Amax⁡+1)JA_{\max}+(A_{\max}+1)J以下である。これで命題 2.3は示された。▨

前提記事

9 本の記事・単元を表示