DG方法:一维ODE

DG方法:一维ODE

考虑一维ODE的边值问题:
{ u x = f ( x ) u ( 0 ) = a   ,   x ∈ [ 0 , 1 ] \left\{\begin{matrix}u_x=f(x)\\ u(0)=a\end{matrix}\right. \space,\space x\in [0,1] {ux​=f(x)u(0)=a​ , x∈[0,1]

有限差分方法

对 x ∈ [ 0 , 1 ] x\in[0,1] x∈[0,1]做uniform划分: x j = j Δ x = j 1 N x_j=j\Delta x=j \frac{1}{N} xj​=jΔx=jN1​

如果是一阶FD:对于第 j j j个网格点,需要利用 u j − 1 , u j , u j + 1 u_{j-1}, u_j, u_{j+1} uj−1​,uj​,uj+1​等信息逼近 u x u_x ux​,其中 u j u_j uj​表示准确解 u ( x j ) u(x_j) u(xj​)的近似,则

u x ∣ x j ≈ u j − u j − 1 Δ x u_x|_{x_j} \approx\frac{u_j-u_{j-1}}{\Delta x} ux​∣xj​​≈Δxuj​−uj−1​​

要选择用 x j − 1 x_{j-1} xj−1​是因为边界条件定义在左侧,信息从迎风的左边来。代入原式有

u j − u j − 1 Δ x = f ( x j ) ⇒ u j = u j − 1 + Δ x f ( x j ) \frac{u_j-u_{j-1}}{\Delta x}=f(x_j) \Rightarrow u_j=u_{j-1}+\Delta x f(x_j) Δxuj​−uj−1​​=f(xj​)⇒uj​=uj−1​+Δxf(xj​)

所以求解过程可以从左向右扫描(sweep,最左边是 u 0 = a u_0=a u0​=a),非常易于计算。

但只有一阶精度:

∣ u ( x j ) − u j ∣ ≈ O ( Δ x ) |u(x_j)-u_j|\approx O(\Delta x) ∣u(xj​)−uj​∣≈O(Δx)

当从 N N N个网格点加密到 2 N 2N 2N时,工作量增加一倍,但误差仅能减少一半。

而如果使用更高阶精度的差分方法,同理,将 u x ( x j ) u_x(x_j) ux​(xj​)表示为 u j − 2 , u j − 1 , u j u_{j-2}, u_{j-1}, u_{j} uj−2​,uj−1​,uj​的线性组合(可通过Taylor展开推导)。这对于 j = 2 , 3 , . . . , N j=2,3,...,N j=2,3,...,N是可行的,但 j = 1 j=1 j=1处显然没有这么多stencil可供构造,所以在边界上使用一阶格式,但这又会导致计算降阶!因为 u 1 u_1 u1​只有一阶精度,那么根据 u 1 u_1 u1​计算出的 u 2 u_2 u2​也达不到二阶,如此类推。

Discrete Galerkin

格式导出

DG希望既易于计算,又能有高阶精度。它首先定义一系列半网格点 x 2 k + 1 2 ( k = 0 , 1 , . . . , N ) x_{\frac{2k+1}{2}}(k=0,1,...,N) x22k+1​​(k=0,1,...,N),将区间划分为很多个单元,单元 I j = [ x j − 1 2 , x j + 1 2 ] I_j=[x_{j-\frac{1}{2}}, x_{j+\frac{1}{2}}] Ij​=[xj−21​​,xj+21​​]。注意仅要求 0 = x 1 2 < x 3 2 < . . . < x N − 1 2 < x N + 1 2 = 1 0=x_{\frac{1}{2}}<x_{\frac{3}{2}}<...<x_{N-\frac{1}{2}}<x_{N+\frac{1}{2}}=1 0=x21​​<x23​​<...<xN−21​​<xN+21​​=1,而不需要每个单元都是均匀长度的。每个单元的中点 x j = 1 2 ( x j − 1 2 + x j + 1 2 ) x_j=\frac{1}{2}(x_{j-\frac{1}{2}}+x_{j+\frac{1}{2}}) xj​=21​(xj−21​​+xj+21​​),长度 Δ x j = x j − 1 2 − x j + 1 2 \Delta x_j=x_{j-\frac{1}{2}}-x_{j+\frac{1}{2}} Δxj​=xj−21​​−xj+21​​。记 h = max ⁡ j Δ x j h=\underset{j}{\max} \Delta x_j h=jmax​Δxj​。

定义解空间(solution space):
V h k : = { v : v ∣ I j ∈ P k ( I j ) , j = 1 , 2 , . . . , N } \bm{V}_h^k:=\{v: v|_{I_j} \in \bm{P}^k(I_j),j=1,2,...,N\} Vhk​:={v:v∣Ij​​∈Pk(Ij​),j=1,2,...,N}

其中 P k ( I j ) \bm{P}^k(I_j) Pk(Ij​)表示第 j j j个单元上的次数小于等于 k k k的多项式空间。当 k = 1 k=1 k=1时即为分片线性函数(piecewise linear functions)。注意在cell边界处,函数值时可以间断的,而区别于传统有限元要求内部单元的边界值连续。

由于解在单元边界处可以完全不连续,因此 x j + 1 2 x_{j+\frac{1}{2}} xj+21​​处存在一个左值 u j + 1 2 − u_{j+\frac{1}{2}}^- uj+21​−​和一个右值 u j + 1 2 + u_{j+\frac{1}{2}}^+ uj+21​+​,分别属于左右两个单元。

不同单元的多项式空间 P k \bm{P}^k Pk的阶数 k k k可以不同( P \bm{P} P adaptivity)。

定义测试函数(test function) v ( x ) v(x) v(x),原问题成立,则如下积分式一定成立:

∫ I j u x v = ∫ I j f ( x ) v   ,   j = 1 , 2 , . . . , N \int _{I_j} u_xv =\int_{I_j}f(x)v \space, \space j=1,2,...,N ∫Ij​​ux​v=∫Ij​​f(x)v , j=1,2,...,N

假定 v ( x ) v(x) v(x)是至少可微的,那么分部积分:

∫ I j f ( x ) v = ∫ I j u x v = − ∫ I j u v x + u ( x j + 1 2 ) v ( x j + 1 2 ) − u ( x j − 1 2 ) v ( x j − 1 2 ) \int_{I_j}f(x)v=\int _{I_j} u_xv =-\int _{I_j} uv_x + u(x_{j+\frac{1}{2}})v(x_{j+\frac{1}{2}}) - u(x_{j-\frac{1}{2}})v(x_{j-\frac{1}{2}}) ∫Ij​​f(x)v=∫Ij​​ux​v=−∫Ij​​uvx​+u(xj+21​​)v(xj+21​​)−u(xj−21​​)v(xj−21​​)

所以问题转换为:

find u h ( x ) ∈ V h k u_h(x) \in \bm{V}_h^k uh​(x)∈Vhk​来逼近 u ( x ) u(x) u(x),代入上式有

− ∫ I j u v x + ( u h v ) ∣ x j + 1 2 − ( u h v ) ∣ x j − 1 2 = ∫ I j f ( x ) v -\int _{I_j} uv_x +(u_hv)|_{x_{j+\frac{1}{2}}} - (u_hv)|_{x_{j-\frac{1}{2}}}=\int_{I_j}f(x)v −∫Ij​​uvx​+(uh​v)∣xj+21​​​−(uh​v)∣xj−21​​​=∫Ij​​f(x)v

但问题是 v ∈ v\in v∈?,如果任意的可微函数都可以,那么*度太多会造成over-determined!注意到

u h k ∈ V h k : = { v : v ∣ I j ∈ P k ( I j ) , j = 1 , 2 , . . . , N } u_h^k \in \bm{V}_h^k:=\{v: v|_{I_j} \in \bm{P}^k(I_j),j=1,2,...,N\} uhk​∈Vhk​:={v:v∣Ij​​∈Pk(Ij​),j=1,2,...,N}

在每个单元 I j I_j Ij​上确定 P k ( I j ) \bm{P}^k(I_j) Pk(Ij​)需要 k + 1 k+1 k+1个参数,将 P k ( I j ) \bm{P}^k(I_j) Pk(Ij​)这个线性空间的基取为 φ j 0 ( x ) , φ j 1 ( x ) , . . . , φ j k ( x ) \varphi_j^0(x),\varphi_j^1(x),...,\varphi_j^k(x) φj0​(x),φj1​(x),...,φjk​(x),则线性表出为

u h ( x ) ∣ I j = ∑ l = 0 k u j l φ j l ( x ) u_h(x)|_{I_j}=\sum_{l=0}^k u_j^l\varphi_j^l(x) uh​(x)∣Ij​​=l=0∑k​ujl​φjl​(x)

因为共有 N N N个单元,则 dim ⁡ V h k = N ( k + 1 ) \dim V_h^k=N(k+1) dimVhk​=N(k+1)。需要求解的值是线性组合的系数 u j l   ,   l = 0 , 1 , . . . , k ,   j = 1 , 2 , . . . , N u_j^l\space,\space l=0,1,...,k,\space j=1,2,...,N ujl​ , l=0,1,...,k, j=1,2,...,N,因此需要有 N ( k + 1 ) N(k+1) N(k+1)个约束条件。假定 v ∈ W h v\in \bm{W}_h v∈Wh​,那么应该要有 dim ⁡ W h = dim ⁡ V h k = N ( k + 1 ) \dim \bm{W}_h=\dim \bm{V}_h^k=N(k+1) dimWh​=dimVhk​=N(k+1)。

这两者是可以取成不一样的线性空间的,而如果取成一样的( W h = V h k \bm{W}_h=\bm{V}_h^k Wh​=Vhk​,都来自分片线性多项式的空间),则成为Galerkin方法

于是问题转换为:find u h ∈ V h k   ,   v ∈ V h k u_h \in \bm{V}_h^k\space, \space v \in \bm{V}_h^k uh​∈Vhk​ , v∈Vhk​ ……

但仍不对,因为单元边界上有两个值(左值 u j + 1 2 − u_{j+\frac{1}{2}}^- uj+21​−​和右值 u j + 1 2 + u_{j+\frac{1}{2}}^+ uj+21​+​)。需要额外加条件。而我们希望当 k = 0 k=0 k=0时,DG方法能还原回普通的一阶(迎风)有限差分方法: u j − u j − 1 Δ x = f ( x j ) \frac{u_j - u_{j-1}}{\Delta x} = f(x_j) Δxuj​−uj−1​​=f(xj​)。

此时解空间和测试函数空间都为分片常值函数。由于测试函数是任意的,取 v = { 1   ,     I j 0 ,   o t h e r v=\left\{\begin{matrix}1\space,\space \space \space I_j\\ 0, \space\rm{other} \end{matrix}\right. v={1 ,   Ij​0, other​,则 v x = 0 v_x=0 vx​=0, ∫ I j u h v x = 0 \int_{I_j}u_hv_x=0 ∫Ij​​uh​vx​=0。于是有

u h ( x j + 1 2 ) v ( x j + 1 2 ) − u h ( x j − 1 2 ) v ( x j − 1 2 ) = ∫ I j f ( x ) u_h(x_{j+\frac{1}{2}})v(x_{j+\frac{1}{2}})-u_h(x_{j-\frac{1}{2}})v(x_{j-\frac{1}{2}})=\int_{I_j}f(x) uh​(xj+21​​)v(xj+21​​)−uh​(xj−21​​)v(xj−21​​)=∫Ij​​f(x)

希望能还原出: u j − u j − 1 = Δ x f ( x j ) u_j-u_{j-1}=\Delta x f(x_j) uj​−uj−1​=Δxf(xj​)。而在 k = 0 k=0 k=0时, u j u_j uj​就是第 j j j个单元的函数近似解的值 u h ( I j ) u_h(I_j) uh​(Ij​)。

注意到 v ( x ) v(x) v(x)的取值方式,因此取 v ( x j + 1 2 ) = v ( x j + 1 2 − ) , u h ( x j + 1 2 ) = u h ( x j + 1 2 − ) = u j v(x_{j+\frac{1}{2}})=v(x_{j+\frac{1}{2}}^-), u_h(x_{j+\frac{1}{2}})=u_h(x_{j+\frac{1}{2}}^-)=u_j v(xj+21​​)=v(xj+21​−​),uh​(xj+21​​)=uh​(xj+21​−​)=uj​,和 v ( x j − 1 2 ) = v ( x j − 1 2 + ) , u h ( x j − 1 2 ) = u h ( x j − 1 2 − ) = u j − 1 v(x_{j-\frac{1}{2}})=v(x_{j-\frac{1}{2}}^+), u_h(x_{j-\frac{1}{2}})=u_h(x_{j-\frac{1}{2}}^-)=u_{j-1} v(xj−21​​)=v(xj−21​+​),uh​(xj−21​​)=uh​(xj−21​−​)=uj−1​。

所以完整的DG格式为:

find u h ( x ) ∈ V h k u_h(x) \in \bm{V}_h^k uh​(x)∈Vhk​,使得对于任意的测试函数 v ∈ V h k v\in\bm{V}_h^k v∈Vhk​和任意的单元 I j I_j Ij​,都有

− ∫ I j u h ( x ) v x d x + u j + 1 2 − v j + 1 2 − − u j − 1 2 − v j − 1 2 + = ∫ I j f ( x ) v ( x ) d x (1) -\int_{I_j}u_h(x)v_x {\rm d}x + u_{j+\frac{1}{2}}^{-} v_{j+\frac{1}{2}}^{-} - u_{j-\frac{1}{2}}^{-} v_{j-\frac{1}{2}}^{+}=\int_{I_j}f(x)v(x){\rm d}x \tag{1} −∫Ij​​uh​(x)vx​dx+uj+21​−​vj+21​−​−uj−21​−​vj−21​+​=∫Ij​​f(x)v(x)dx(1)

此时的格式与计算中如何选取 P k \bm{P}^k Pk的基函数的具体形式无关!基函数可以有多种选择,例如Legendre多项式函数,Lagrange插值基函数,自然幂函数( 1 , x , x 2 , . . . , x k 1,x,x^2,...,x^k 1,x,x2,...,xk),和 1 , x − x j Δ x j , ( x − x j Δ x j ) 2 , . . . , ( x − x j Δ x j ) k 1,\frac{x-x_j}{\Delta x_j}, \left(\frac{x-x_j}{\Delta x_j}\right)^2, ..., \left(\frac{x-x_j}{\Delta x_j}\right)^k 1,Δxj​x−xj​​,(Δxj​x−xj​​)2,...,(Δxj​x−xj​​)k等等。

求解方式

一般地,假定选取的基函数为 φ j 0 ( x ) , φ j 1 ( x ) , . . . , φ j k ( x ) \varphi_j^0(x),\varphi_j^1(x),...,\varphi_j^k(x) φj0​(x),φj1​(x),...,φjk​(x),线性表出 u h ( x ) ∣ I j = ∑ l = 0 k u j l φ j l ( x ) u_h(x)|_{I_j}=\sum_{l=0}^k u_j^l \varphi_j^l(x) uh​(x)∣Ij​​=∑l=0k​ujl​φjl​(x)。需要求解向量
u j = [ u j 0 u j 1 . . . u j k ] \bm{u}_j=\left[ \begin{matrix} u_j^0\\ u_j^1\\ ...\\u_j^k \end{matrix} \right] uj​=⎣⎢⎢⎡​uj0​uj1​...ujk​​⎦⎥⎥⎤​

由于测试函数是任意的,只要在线性空间 W h = V h k \bm{W}_h=\bm{V}_h^k Wh​=Vhk​内就行。所以不妨取 v = φ j m ( x ) ,   m = 0 , 1 , . . . , k v=\varphi_j^m(x), \space m=0,1,...,k v=φjm​(x), m=0,1,...,k,则上一节中的格式写为

− ∫ I j ∑ l = 0 k u j l φ j l ( x ) ( φ j m ) x d x + ∑ l = 0 k u j l φ j l ( x j + 1 2 ) φ j m ( x j + 1 2 ) − u j − 1 2 − φ j m ( x j − 1 2 ) = ∫ I j f ( x ) φ j m ( x ) d x -\int_{I_j}\sum_{l=0}^k u_j^l \varphi_j^l(x) (\varphi_j^m)_x {\rm d}x + \sum_{l=0}^k u_j^l \varphi_j^l(x_{j+\frac{1}{2}}) \varphi_j^m(x_{j+\frac{1}{2}}) - u_{j-\frac{1}{2}}^{-} \varphi_j^m(x_{j-\frac{1}{2}})=\int_{I_j}f(x) \varphi_j^m(x) {\rm d}x −∫Ij​​l=0∑k​ujl​φjl​(x)(φjm​)x​dx+l=0∑k​ujl​φjl​(xj+21​​)φjm​(xj+21​​)−uj−21​−​φjm​(xj−21​​)=∫Ij​​f(x)φjm​(x)dx

上式要对于 m = 0 , 1 , . . . , k m=0,1,...,k m=0,1,...,k均成立。注意其中的 u j − 1 2 − u_{j-\frac{1}{2}}^{-} uj−21​−​是隔壁单元算出来的结果值,传给本单元的。上式提取出 ∑ l = 0 k u j l \sum_{l=0}^k u_j^l ∑l=0k​ujl​,有

∑ l = 0 k u j l [ − ∫ I j φ j l ( x ) ( φ j m ) x d x + φ j l ( x j + 1 2 ) φ j m ( x j + 1 2 ) ] = u j − 1 2 − φ j m ( x j − 1 2 ) + ∫ I j f ( x ) φ j m ( x ) d x (2) \sum_{l=0}^k u_j^l\left[ - \int_{I_j} \varphi_j^l(x) (\varphi_j^m)_x {\rm d}x + \varphi_j^l(x_{j+\frac{1}{2}}) \varphi_j^m(x_{j+\frac{1}{2}}) \right] = u_{j-\frac{1}{2}}^{-} \varphi_j^m(x_{j-\frac{1}{2}}) + \int_{I_j}f(x) \varphi_j^m(x) {\rm d}x \tag{2} l=0∑k​ujl​[−∫Ij​​φjl​(x)(φjm​)x​dx+φjl​(xj+21​​)φjm​(xj+21​​)]=uj−21​−​φjm​(xj−21​​)+∫Ij​​f(x)φjm​(x)dx(2)

记:
a m l = − ∫ I j φ j l ( x ) ( φ j m ) x d x + φ j l ( x j + 1 2 ) φ j m ( x j + 1 2 ) (2-1) a_{ml}=- \int_{I_j} \varphi_j^l(x) (\varphi_j^m)_x {\rm d}x + \varphi_j^l(x_{j+\frac{1}{2}}) \varphi_j^m(x_{j+\frac{1}{2}}) \tag{2-1} aml​=−∫Ij​​φjl​(x)(φjm​)x​dx+φjl​(xj+21​​)φjm​(xj+21​​)(2-1)

b m = u j − 1 2 − φ j m ( x j − 1 2 ) + ∫ I j f ( x ) φ j m ( x ) d x (2-2) b_{m} = u_{j-\frac{1}{2}}^{-} \varphi_j^m(x_{j-\frac{1}{2}}) + \int_{I_j}f(x) \varphi_j^m(x) {\rm d}x \tag{2-2} bm​=uj−21​−​φjm​(xj−21​​)+∫Ij​​f(x)φjm​(x)dx(2-2)

则在每个单元内都组成一个线性方程组: A j u j = b j \bm{A}_j\bm{u}_j=\bm{b}_j Aj​uj​=bj​,其中 A j = ( a m l ) \bm{A}_j = (a_{ml}) Aj​=(aml​)是一个 ( k + 1 ) × ( k + 1 ) (k+1)\times(k+1) (k+1)×(k+1)的矩阵。

一旦 u j − 1 2 − u_{j-\frac{1}{2}}^{-} uj−21​−​给定,就可以求解该线性方程组。由此可见,DG的好处在于可以从左(给定了边界条件的一侧)向右逐次求解各个单元。

分析单元矩阵 A j \bm{A}_j Aj​的性质。由于不同单元 I j I_j Ij​中的基函数 φ j m ( x ) \varphi_j^m(x) φjm​(x)映射到参考单元(reference element)后是一样的,
所以元素 a m l a_{ml} aml​通过坐标参数变换(一维中的 ξ = 2 x − x j Δ x j \xi=2 \frac{x-x_j}{\Delta x_j} ξ=2Δxj​x−xj​​能将physical element中的坐标 x ∈ [ x j − 1 2 , x j + 1 2 ] x\in[x_{j-\frac{1}{2}}, x_{j+\frac{1}{2}}] x∈[xj−21​​,xj+21​​]转成reference element的坐标 ξ ∈ [ − 1 , 1 ] \xi\in[-1,1] ξ∈[−1,1])映射到参考单元后,它的数值是一样的。这意味着, A j \bm{A}_j Aj​与实际的单元 I j I_j Ij​的具体性质无关(independent of j j j),整体只要计算一次 A j \bm{A}_j Aj​即可。下面简记为 A \bm{A} A。

解的存在唯一性

A u j = b j \bm{A}\bm{u}_j=\bm{b}_j Auj​=bj​的解存在唯一等价于 A u j = 0 \bm{A}\bm{u}_j=\bm{0} Auj​=0有且仅有零解。

这对应到原方程,相当于已知 f = 0 f=0 f=0和边界条件 a = 0 a=0 a=0时,能否推出解 u = 0 u=0 u=0。

  1. 先证两端点为0。由测试函数的任意性,取 v ∣ I 1 = u h ∣ I 1 ∈ P k ( I 1 ) v|_{I_1}=u_h|_{I_1}\in\bm{P}^k(I_1) v∣I1​​=uh​∣I1​​∈Pk(I1​)。代入式(1)即为:
    − ∫ I j u h ( u h ) x d x + ( u h ) x 3 2 − ( u h ) x 3 2 − = 0 -\int_{I_j}u_h(u_h)_x {\rm d}x + (u_h)_{x_\frac{3}{2}}^{-} (u_h)_{x_\frac{3}{2}}^{-}=0 −∫Ij​​uh​(uh​)x​dx+(uh​)x23​​−​(uh​)x23​​−​=0
    推出 ( u h 2 ) 2 ∣ x 1 2 x 3 2 + [ ( u h ) x 3 2 − ] 2 = 0 \left( \frac{u_h}{2} \right)^2|_{x_\frac{1}{2}}^{x_\frac{3}{2}}+\left[(u_h)_{x_\frac{3}{2}}^{-}\right]^2=0 (2uh​​)2∣x21​​x23​​​+[(uh​)x23​​−​]2=0,显然有 ( u h ) x 3 2 − = ( u h ) x 1 2 + = a = 0 (u_h)_{x_\frac{3}{2}}^{-}=(u_h)_{x_\frac{1}{2}}^{+}=a=0 (uh​)x23​​−​=(uh​)x21​​+​=a=0。

  2. 再证在整个单元内为0。由上一步知道有 ∫ I 1 u h v x d x = 0 \int_{I_1}u_hv_x {\rm d}x =0 ∫I1​​uh​vx​dx=0。而由条件知道近似解 u h u_h uh​多项式有 ( x − x 1 2 ) (x-x_\frac{1}{2}) (x−x21​​)的因子,可写为 u h ( x ) = ( x − x 1 2 ) u ^ ( x ) u_h(x)=(x-x_\frac{1}{2})\hat{u}(x) uh​(x)=(x−x21​​)u^(x),其中 u ^ ( x ) ∈ P k − 1 ( I 1 ) \hat{u}(x)\in \bm{P}^{k-1}(I_1) u^(x)∈Pk−1(I1​)。由测试函数的任意性,取 v ( x ) = ∫ x 1 2 x u ^ ( ξ ) d ξ v(x)=\int_{x_\frac{1}{2}}^x\hat{u}(\xi) {\rm d} \xi v(x)=∫x21​​x​u^(ξ)dξ。则因为 ( x − x 1 2 ) (x-x_\frac{1}{2}) (x−x21​​)恒大于0,积分 ∫ I 1 ( x − x 1 2 ) u ^ ( x ) v x d x = 0 \int_{I_1}(x-x_\frac{1}{2})\hat{u}(x)v_x {\rm d}x=0 ∫I1​​(x−x21​​)u^(x)vx​dx=0当且仅当 u ^ ( x ) = 0 \hat{u}(x)=0 u^(x)=0,故整个单元 I 1 I_1 I1​均为0.

  3. 以此类推逐个单元。

误差量度

L 2 L_2 L2​范数误差:
L 2 : = ∣ ∣ u − u h ∣ ∣ L 2 = ( ∫ 0 1 ( u ( x ) − u h ( x ) ) 2 d x ) 1 2 L_2:=||u-u_h||_{L_2}=\left( \int_0^1 \left( u(x) - u_h(x)\right)^2 {\rm d}x \right)^\frac{1}{2} L2​:=∣∣u−uh​∣∣L2​​=(∫01​(u(x)−uh​(x))2dx)21​

如何说明一个格式的阶数 r r r呢?假定在 h h h宽度下计算得到 e h ≈ C h r e_h\approx Ch^r eh​≈Chr,加密一倍得到 e 2 h ≈ C ( 2 h ) r e_{2h} \approx C(2h)^r e2h​≈C(2h)r,则

e 2 h e h = 2 r   ⇒   r = log ⁡ 2 ( e 2 h e h ) \frac{e_{2h}}{e_h}=2^r \space \Rightarrow \space r = \log_2\left(\frac{e_{2h}}{e_h}\right) eh​e2h​​=2r ⇒ r=log2​(eh​e2h​​)

上一篇:设计模式_21 中介者模式


下一篇:特征金字塔技术初识