Chap 1

  • Q-收敛:一个序列p阶Q-收敛到L如果

    limnxn+1LxnLp=c>0\lim_{n\to\infty} \frac{|x_{n+1}-L|}{|x_n-L|^p}=c>0
  • 收敛和收敛阶:一个序列线性收敛到L如果

    c(0,1),d>0,s.t.nN,xnLcnd\exists c \in (0,1),\exists d>0,\text{s.t.}\forall n\in\mathbb{N},|x_n-L|\le c^nd

    收敛阶是满足下面条件最大的pp:

    c>0,NNs.t.n>N,xn+1LxnLp\exists c>0,\exists N\in\mathbb{N}\text{s.t.}\forall n>N,|x_{n+1}-L|\le|x_n-L|^p
  • 牛顿法

    xn+1=xnf(xn)f(xn)x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}

    证明其2阶Q-收敛:泰勒展开

    f(α)=f(xn)+(αxn)f(xn)+(αxn)22f(ξ)f(\alpha) = f(x_n) + (\alpha - x_n)f'(x_n) + \frac{(\alpha - x_n)^2}{2}f''(\xi)

    f(α)=0f(\alpha)=0,

    α=xn+f(xn)f(xn)+(αxn)22f(ξ)f(xn)-\alpha = -x_n + \frac{f(x_n)}{f'(x_n)} + \frac{(\alpha - x_n)^2}{2} \frac{f''(\xi)}{f'(x_n)}

    由牛顿法公式

    xn+1α=xnf(xn)f(xn)α=(xnα)2f(ξ)2f(xn)x_{n+1} - \alpha = x_n - \frac{f(x_n)}{f'(x_n)} - \alpha = (x_n - \alpha)^2 \frac{f''(\xi)}{2f'(x_n)}

    只要证明{xn}\{x_n\}收敛于α\alpha即可。由于 ff' 的连续性以及 f(α)0f'(\alpha) \neq 0 的假设,存在 δ1(0,δ)\delta_1 \in (0, \delta) 使得对于所有 xB1x \in \mathcal{B}_1,满足 f(x)0f'(x) \neq 0,其中 B1=[αδ1,α+δ1]\mathcal{B}_1 = [\alpha - \delta_1, \alpha + \delta_1]。定义M:=maxxB1f(x)2minxB1f(x)M := \frac{\max_{x \in \mathcal{B}_1} |f''(x)|}{2 \min_{x \in \mathcal{B}_1} |f'(x)|},并选取足够接近 α\alpha 的初始值 x0x_0 使得: (i) x0α=δ0<δ1|x_0 - \alpha| = \delta_0 < \delta_1; (ii) Mδ0<1M\delta_0 < 1。由Mx0α<1M|x_0 - \alpha| < 1和数学归纳法知

    xnα1M(Mx0α)2n|x_n - \alpha| \leq \frac{1}{M} (M|x_0 - \alpha|)^{2^n}

    {xn}\{x_n\}收敛。

  • 牛顿法在重根处退化为1阶收敛

    f(x)=(xα)mh(x)    limxαg(x)=limxαf(x)f(x)[f(x)]2=11mf(x)=(x-\alpha)^mh(x)\implies \lim_{x\to\alpha} g'(x)=\lim_{x\to\alpha}\frac{f(x)f''(x)}{[f'(x)]^2}=1-\frac{1}{m}

    limnxn+1αxnα=g(α)\lim_{n\to\infty}\frac{x_{n+1}-\alpha}{x_n-\alpha}=g'(\alpha)

    故一阶收敛。

    • 改进方法
      1. F(x)=f(x)f(x)F(x)=\frac{f(x)}{f'(x)},则α\alphaF(x)F(x)的单根,对其作牛顿迭代
      2. 已知重数mm,修改迭代公式
    xn+1=xnmf(xn)f(xn)x_{n+1}=x_n-m\frac{f(x_n)}{f'(x_n)}
  • 割线法

    xn+1=xnf(xn)xnxn1f(xn)f(xn1)x_{n+1}=x_n-f(x_n)\frac{x_n-x_{n-1}}{f(x_n)-f(x_{n-1})}
  • 不动点

    some α satisfying g(α)=α\text{some } \alpha \text{ satisfying } g(\alpha)=\alpha

    不动点迭代

    xn+1=g(xn)x_{n+1}=g(x_n)
  • 压缩映射f:[a,b][a,b]f:[a,b]\to[a,b]是压缩映射如果

    λ[0,1) s.t. x,y[a,b],f(x)f(y)λxy\exists\lambda\in[0,1)\text{ s.t. }\forall x,y \in[a,b],|f(x)-f(y)|\le \lambda|x-y|

    压缩映射的收敛性:对于[a,b][a,b]上的连续压缩映射g(x)g(x),它在[a,b][a,b]上有唯一的不动点α\alpha,并且对任何的x0[a,b]x_0\in[a,b],不动点迭代收敛至α\alpha

    xnαλn1λx1x0|x_n-\alpha|\le\frac{\lambda^n}{1-\lambda}|x_1-x_0|

    定理1:g:[a,b][a,b]C1g:[a,b]\to[a,b] \in \mathcal{C}^1λ=maxx[a,b]g(x)<1\lambda = \max_{x\in[a,b]}|g'(x)|<1(即gg是压缩映射),则gg[a,b][a,b]上有唯一的不动点α\alpha,并且对任何的x0[a,b]x_0\in[a,b],不动点迭代收敛至α\alpha

    limnxn+1αxnα=g(α)\lim_{n\to\infty}\frac{x_{n+1}-\alpha}{x_n-\alpha}=g'(\alpha)

    定理2: 考虑g:[a,b][a,b]g:[a,b]\to[a,b]有一个不动点g(α)=α[a,b]g(\alpha)=\alpha\in[a,b],则不动点迭代pp阶Q-收敛于α\alpha如果

    {gCp[a,b]k=1,2,,p1,g(k)(α)=0g(p)(α)0\begin{cases}g\in\mathcal{C}^p[a,b] \\ \forall k = 1,2,\ldots,p-1,g^{(k)}(\alpha)=0 \\ g^{(p)}(\alpha)\neq0\end{cases}

    x0x_0充分小。渐近因子

    limnxn+1αxnαp=g(p)(α)p!\lim_{n\to\infty}\frac{|x_{n+1}-\alpha|}{|x_n-\alpha|^p} = \frac{g^{(p)}(\alpha)}{p!}

Chap 2

  • 适用于Lagrange插值、Newton插值、Hermite插值的Cauchy余项

    Rn(f;x)=f(n+1)(ξ)(n+1)!i=0n(xxi)R_n(f;x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)

    其中n+1n+1代表有n+1n+1个限制条件,这会得到n次的插值多项式。在Hermite插值中有重复的xix_i

  • Lagrange插值:

    pn(x)=k=0nfkk(x), where k=i=0,ikn(xxi)(xkxi)p_n(x)=\sum_{k=0}^nf_k\ell_k(x),\text{ where }\ell_k=\prod_{i=0,i\neq k}^n\frac{(x-x_i)}{(x_k-x_i)}
  • Newton插值

    pn(x)=k=0nakπk(x), where πn(x)={1, n=0i=0n1(xxi),n>0p_n(x)=\sum_{k=0}^na_k\pi_k(x),\text{ where }\pi_n(x)=\begin{cases}1,\quad\quad\quad\quad\quad\quad\ n=0\\ \prod_{i=0}^{n-1}(x-x_i),\quad n>0\end{cases}

    aka_k是差商表中的对角元。

  • Hermite插值: 允许出现重复节点的Newton插值。重复节点的nn阶差商为n1n-1阶导数值。

  • Chebyshev多项式

    Tn(x)=cos(narccosx),nN+,Tn+1(x)=2xTn(x)Tn1(x)T_n(x)=\cos(n\arccos x),\quad \forall n \in \mathbb{N}^+,T_{n+1}(x)=2xT_n(x)-T_{n-1}(x)

    零点

    xk=cos2k12nπx_k=\cos\frac{2k-1}{2n}\pi

    选择Chebyshev多项式的零点作为插值节点可以抑制Runge现象。

Chap 3

PP-form样条

  • PP-form 样条(S23\mathbb{S}_2^3)有两种求解方法:对i=2,3,,N1i=2,3,\ldots,N-1有(mim_i是节点xix_i处的一阶导数,MiM_i是节点xix_i处的二阶导数)其中

    λi=xi+1xixi+1xi1,μi=xixi1xi+1xi1\lambda_i = \frac{x_{i+1}-x_i}{x_{i+1}-x_{i-1}},\quad \mu_i=\frac{x_i-x_{i-1}}{x_{i+1}-x_{i-1}}
    • λimi1+2mi+μimi+1=3μif[xi,xi+1]+3λif[xi1,xi]\lambda_im_{i-1}+2m_i+\mu_im_{i+1}=3\mu_if[x_i,x_{i+1}]+3\lambda_if[x_{i-1},x_i]
      • 证明:记pi(x)=s[xi,xi+1],Ki=f[xi,xi+1]p_i(x)=s|_{[x_i,x_{i+1}]},K_i=f[x_i,x_{i+1}]则在每个区间上都可以看作一个Hermite插值。构建差商表如下:
    xifixifimixi+1fi+1KiKimixi+1xixi+1fi+1mi+1mi+1Kixi+1ximi+mi+12Ki(xi+1xi)2\begin{array}{c|cccc}x_i & f_i &&&\\x_i&f_i&m_i&&\\x_{i+1}&f_{i+1}&K_i&\frac{K_i-m_i}{x_{i+1}-x_i}&\\x_{i+1}&f_{i+1}&m_{i+1}&\frac{m_{i+1}-K_i}{x_i+1-x_i}&\frac{m_i+m_{i+1}-2K_i}{(x_{i+1}-x_i)^2}\end{array}

    由牛顿插值公式

    pi(x)=fi+(xxi)mi+(xxi)2Kimixi+1xi+(xxi)2(xxi+1)mi+mi+12Ki(xi+1xi)2=fi+(xxi)mi+(xxi)2Kimixi+1xi+(xxi)2[(xxi)+(xixi1)]mi+mi+12Ki(xi+1xi)2=fi+(xxi)mi+(xxi)23Ki2mimi+1xi+1xi+(xxi)3mi+mi+12Ki(xi+1xi)2\begin{aligned}p_i(x)&=f_i+(x-x_i)m_i+(x-x_i)^2\frac{K_i-m_i}{x_{i+1}-x_i}\\&+(x-x_i)^2(x-x_{i+1})\frac{m_i+m_{i+1}-2K_i}{(x_{i+1}-x_i)^2}\\&=f_i+(x-x_i)m_i+(x-x_i)^2\frac{K_i-m_i}{x_{i+1}-x_i}\\&+(x-x_i)^2\left[(x-x_i)+(x_i-x_{i-1})\right]\frac{m_i+m_{i+1}-2K_i}{(x_{i+1}-x_i)^2}\\&=f_i+(x-x_i)m_i+(x-x_i)^2\frac{3K_i-2m_i-m_{i+1}}{x_{i+1}-x_i}\\&+(x-x_i)^3\frac{m_i+m_{i+1}-2K_i}{(x_{i+1}-x_i)^2}\end{aligned}

    {pi(x)=ci,0+ci,1(xxi)+ci,2(xxi)2+ci,3(xxi)3ci,0=fici,1=mici,2=3Ki2mimi+1xi+1xici,3=mi+mi+12Ki(xi+1xi)2\begin{cases}p_i(x)=c_{i,0}+c_{i,1}(x-x_i)+c_{i,2}(x-x_i)^2+c_{i,3}(x-x_i)^3\\c_{i,0}=f_i\\c_{i,1}=m_i\\c_{i,2}=\frac{3K_i-2m_i-m_{i+1}}{x_{i+1}-x_i}\\c_{i,3}=\frac{m_i+m_{i+1}-2K_i}{(x_{i+1}-x_i)^2}\end{cases}

    因为sC2s\in\mathcal{C}^2pi1(xi)=pi(xi)p_{i-1}''(x_i)=p_i''(x_i)

    2ci1,2+6ci1,3(xixi1)=2ci,22c_{i-1,2}+6c_{i-1,3}(x_i-x_{i-1})=2c_{i,2}

    代入得

    3Ki12mi1mixixi1+3×mi1+mi2Ki1xixi1=3Ki2mimi+1xi+1xi\frac{3K_{i-1}-2m_{i-1}-m_{i}}{x_{i}-x_{i-1}}+3\times\frac{m_{i-1}+m_{i}-2K_{i-1}}{x_{i}-x_{i-1}}=\frac{3K_i-2m_i-m_{i+1}}{x_{i+1}-x_i}

    化简即得λimi1+2mi+μimi+1=3μif[xi,xi+1]+3λif[xi1,xi]\lambda_im_{i-1}+2m_i+\mu_im_{i+1}=3\mu_if[x_i,x_{i+1}]+3\lambda_if[x_{i-1},x_i].

    • μiMi1+2Mi+λiMi+1=6f[xi1,xi,xi+1]\mu_iM_{i-1}+2M_i+\lambda_iM_{i+1}=6f[x_{i-1},x_i,x_{i+1}]
      • 证明:对s(x)s(x)在节点xix_i处作Taylor展开
    s(x)=fi+s(xi)(xxi)+Mi2(xxi)2+s(xi)6(xxi)3s(x)=f_i+s'(x_i)(x-x_i)+\frac{M_i}{2}(x-x_i)^2+\frac{s'''(x_i)}{6}(x-x_i)^3

    我们知道在x=xix=x_i处样条的右三阶导数

    s(xi)=Mi+1Mixi+1xis'''(x_i)=\frac{M_{i+1}-M_i}{x_{i+1}-x_i}

    代入上式,令x=xi+1x=x_{i+1}

    fi+1=fi+s(xi)(xi+1xi)+Mi2(xi+1xi)2+Mi+1Mi6(xi+1xi)2f_{i+1}=f_i+s'(x_i)(x_{i+1}-x_i)+\frac{M_i}{2}(x_{i+1}-x_i)^2+\frac{M_{i+1}-M_i}{6}(x_{i+1}-x_i)^2

    s(xi)=f[xi,xi+1]16(Mi+1+2Mi)(xi+1xi)s'(x_i)=f[x_i,x_{i+1}]-\frac{1}{6}(M_{i+1}+2M_i)(x_{i+1}-x_i)

    同理在x=xix=x_i处样条的左三阶导数

    s(xi)=MiMi1xixi1s'''(x_i)=\frac{M_{i}-M_{i-1}}{x_{i}-x_{i-1}}

    代入上式令x=xi1x=x_{i-1}

    s(xi)=f[xi1,xi]16(Mi1+2Mi)(xi1xi)s'(x_i)=f[x_{i-1},x_{i}]-\frac{1}{6}(M_{i-1}+2M_i)(x_{i-1}-x_i)

    两式相减即得μiMi1+2Mi+λiMi+1=6f[xi1,xi,xi+1]\mu_iM_{i-1}+2M_i+\lambda_iM_{i+1}=6f[x_{i-1},x_i,x_{i+1}] 这些关系提供了N2N-2个方程(针对节点a=x1<x2<<xN=ba=x_1<x_2<\ldots<x_N=b),剩余的两个方程由边界条件提供。

  • 边界条件及处理方法

    • 完全三次样条:m1=f(a),mN=f(b)m_1=f'(a),m_N=f'(b),直接代入一阶导数方程组求解,也可以导出二阶导数的方程
    {2M1+M2=6f[x1,x1,x2]MN1+2MN=6f[xN1,xN,xN]\begin{cases}2M_1+M_2=6f[x_1,x_1,x_2]\\M_{N-1}+2M_N=6f[x_{N-1},x_N,x_N]\end{cases}
    • 指定端点二阶导数的三次样条:M1=f(a),MN=f(b)M_1=f''(a),M_N=f''(b),直接代入二阶导数方程组求解
    • 自然三次样条:M1=MN=0M_1=M_N=0,直接代入二阶导数方程组求解
    • 非节点三次样条:样条的三阶导数在x2,xN1x_2,x_{N-1}处存在。对于三次样条,三阶导数在每个区间是常数。故条件转化为方程:
    {M2M1x2x1=M3M2x3x2MNMN1xNxN1=MN1MN2xN1xN2\begin{cases}\frac{M_2-M_1}{x_2-x_1}=\frac{M_3-M_2}{x_3-x_2}\\ \frac{M_N-M_{N-1}}{x_N-x_{N-1}}=\frac{M_{N-1}-M_{N-2}}{x_{N-1}-x_{N-2}}\end{cases}
    • 周期三次样条:样条在两端点的函数值、一阶导数值与二阶导数值完全相等。若采用二阶导数方程组求解,条件可以转化为方程(一阶导数类似):
    {M1=MNxNxN1x2x1+xNxN1MN1+2M1+x2x1x2x1+xNxN1M2=6x2x1+xNxN1(f[x1,x2]f[xN1,xN])\begin{cases}M_1=M_N\\ \frac{x_N-x_{N-1}}{x_2-x_1+x_N-x_{N-1}}M_{N-1}+2M_1+\frac{x_2-x_1}{x_2-x_1+x_N-x_{N-1}}M_2 = \frac{6}{x_2-x_1+x_N-x_{N-1}}\left(f[x_1,x_2]-f[x_{N-1},x_N]\right)\end{cases}
  • 求解出节点处导数或二阶导数后要计算每段内的系数。设在[xi,xi+1][x_i,x_{i+1}]上表达式为

    si(x)=ai+bi(xxi)+ci(xxi)2+di(xxi)3s_i(x)=a_i+b_i(x-x_i)+c_i(x-x_i)^2+d_i(x-x_i)^3
    • 若求出MiM_i
      • ai=f(xi)a_i=f(x_i)
      • ci=Mi2c_i=\frac{M_i}{2} since f(xi)=2ci=Mif''(x_i)=2c_i=M_i
      • di=Mi+1Mi6(xi+1xi)d_i=\frac{M_{i+1}-M_i}{6(x_{i+1}-x_i)} since f(xi)=6di=Mi+1Mixi+1xif'''(x_i)=6d_i=\frac{M_{i+1}-M_i}{x_{i+1}-x_i}
      • bi=f(xi+1)aixi+1xici(xi+1xi)di(xi+1xi)b_i = \frac{f(x_{i+1})-a_i}{x_{i+1}-x_i}-c_i(x_{i+1}-x_i)-d_i(x_{i+1}-x_i)
    • 若求出mim_i
      • ai=f(xi)a_i=f(x_i)
      • bi=mib_i=m_i since f(xi)=bi=mif'(x_i)=b_i=m_i
      • 对于cic_idid_i,使用右端点处si(xi+1)=f(xi),si(xi+1)=mi+1s_i(x_{i+1})=f(x_i),s_i'(x_{i+1})=m_{i+1}列出方程组求解。

B样条

  • B样条由以下式子递归定义

    Bin+1(x)=xti1ti+nti1Bin(x)+ti+n+1xti+n+1tiBi+1n(x)B_i^{n+1}(x)=\frac{x-t_{i-1}}{t_{i+n}-t_{i-1}}B_i^n(x)+\frac{t_{i+n+1}-x}{t_{i+n+1}-t_i}B_{i+1}^n(x)

    递归的基是0阶B样条

    Bi0(x)={1,x(ti1,ti]0,otherwiseB_i^0(x)=\begin{cases}1,\quad x\in(t_{i-1},t_i]\\ 0,\quad \text{otherwise}\end{cases}
  • B样条的局部支撑BinB_i^n的支撑区间是[ti1,ti+n][t_{i-1},t_{i+n}],有x(ti1,ti+n),Bin(x)>0.\forall x\in(t_{i-1},t_{i+n}),B_i^n(x)>0.(阶数每增加1,支撑区间就向右扩展一个)

  • B样条的光滑性BinCn1B_i^n\in \mathcal{C}^{n-1}.

  • 截断幂函数

    x+n={xn,x00,x<0x_+^n=\begin{cases}x^n,\quad x\ge0\\0,\quad x<0\end{cases}
  • B样条与截断幂函数Bin(x)=(ti+nti1)[ti1,,ti+n](tx)+nB_i^n(x)=(t_{i+n}-t_{i-1})\cdot[t_{i-1},\ldots,t_{i+n}](t-x)_+^n.

    • 证明:归纳证明。n=0n=0
    R.H.S.=(titi1)(tix)+0(ti1x)+0titi1=(tix)+0(ti1x)+0={1,x(ti1,ti]0,otherwise\begin{aligned}R.H.S.&=(t_i-t_{i-1})\cdot\frac{(t_i-x)_+^0-(t_{i-1}-x)_+^0}{t_i-t_{i-1}}\\&=(t_i-x)_+^0-(t_{i-1}-x)_+^0\\&=\begin{cases}1,\quad x\in(t_{i-1},t_i]\\0,\quad \text{otherwise}\end{cases}\end{aligned}

    这正是Bi0B_i^0的定义。下面假设对于nn成立。由截断幂函数的定义(tx)+n+1=(tx)(tx)+n(t-x)_+^{n+1}=(t-x)\cdot(t-x)_+^n.使用差商的Leibniz公式

    [ti1,,ti+n](tx)+n+1=[ti1,,ti+n](tx)(tx)+n=k=i1i+n[ti1,,tk](tx)[tk,ti+n](tx)+n=(ti1x)[ti1,,ti+n](tx)+n+[ti,,ti+n](tx)+n\begin{aligned}\left[t_{i-1},\ldots,t_{i+n}\right](t-x)_+^{n+1}&=\left[t_{i-1},\ldots,t_{i+n}\right](t-x)\cdot(t-x)_+^{n}\\&=\sum_{k=i-1}^{i+n}[t_{i-1},\ldots,t_k](t-x)\cdot[t_k,\ldots t_{i+n}](t-x)_+^{n}\\&=(t_{i-1}-x)\cdot\left[t_{i-1},\ldots,t_{i+n}\right](t-x)_+^{n}+\left[t_{i},\ldots,t_{i+n}\right](t-x)_+^{n}\end{aligned}

    使用Bin+1(x)B_i^{n+1}(x)的递归定义

    Bin+1(x)=xti1ti+nti1Bin+ti+n+1xti+n+1tiBi+1nB_i^{n+1}(x)=\frac{x-t_{i-1}}{t_{i+n}-t_{i-1}}B_i^n+\frac{t_{i+n+1}-x}{t_{i+n+1}-t_{i}}B_{i+1}^n

    由归纳假设

    xti1ti+nti1Bin=xti1ti+nti1(ti+nti1)[ti1,,ti+n](tx)+n=(xti1)[ti1,,ti+n](tx)+n=[ti,,ti+n](tx)+n[ti1,,ti+n](tx)+n+1ti+n+1xti+n+1tiBi+1n=ti+n+1xti+n+1ti(ti+n+1ti)[ti,,ti+n+1](tx)+n=(ti+n+1x)[ti,,ti+n+1](tx)+n=(ti+n+1ti)[ti,,ti+n+1](tx)+n+(tix)[ti,,ti+n+1](tx)+n=[ti+1,,ti+n+1](tx)+n[ti,,ti+n](tx)+n+[ti,,ti+n+1](tx)+n+1[ti+1,,ti+n+1](tx)+n=[ti,,ti+n+1](tx)+n+1[ti,,ti+n](tx)+n\begin{aligned}\frac{x-t_{i-1}}{t_{i+n}-t_{i-1}}B_i^n&=\frac{x-t_{i-1}}{t_{i+n}-t_{i-1}}(t_{i+n}-t_{i-1})\cdot[t_{i-1},\ldots,t_{i+n}](t-x)_+^n\\&=(x-t_{i-1})\cdot[t_{i-1},\ldots,t_{i+n}](t-x)_+^n\\&=\left[t_{i},\ldots,t_{i+n}\right](t-x)_+^{n}-\left[t_{i-1},\ldots,t_{i+n}\right](t-x)_+^{n+1}\\\frac{t_{i+n+1}-x}{t_{i+n+1}-t_{i}}B_{i+1}^n&=\frac{t_{i+n+1}-x}{t_{i+n+1}-t_{i}}(t_{i+n+1}-t_{i})\cdot[t_{i},\ldots,t_{i+n+1}](t-x)_+^n\\&=(t_{i+n+1}-x)\cdot[t_{i},\ldots,t_{i+n+1}](t-x)_+^n\\&=(t_{i+n+1}-t_i)\cdot[t_{i},\ldots,t_{i+n+1}](t-x)_+^n+(t_{i}-x)\cdot[t_{i},\ldots,t_{i+n+1}](t-x)_+^n\\&=[t_{i+1},\ldots,t_{i+n+1}](t-x)_+^n-[t_{i},\ldots,t_{i+n}](t-x)_+^n\\&+\left[t_{i},\ldots,t_{i+n+1}\right](t-x)_+^{n+1}-\left[t_{i+1},\ldots,t_{i+n+1}\right](t-x)_+^{n}\\&=\left[t_{i},\ldots,t_{i+n+1}\right](t-x)_+^{n+1}-[t_{i},\ldots,t_{i+n}](t-x)_+^n\end{aligned}

    所以

    Bin+1(x)=[ti,,ti+n+1](tx)+n+1[ti1,,ti+n](tx)+n+1=(ti+n+1ti1)[ti1,,ti+n+1](tx)+n+1\begin{aligned}B_i^{n+1}(x)&=\left[t_{i},\ldots,t_{i+n+1}\right](t-x)_+^{n+1}-\left[t_{i-1},\ldots,t_{i+n}\right](t-x)_+^{n+1}\\&=(t_{i+n+1}-t_{i-1})\left[t_{i-1},\ldots,t_{i+n+1}\right](t-x)_+^{n+1}\end{aligned}
  • Marsden恒等式

    (tx)n=i=+(tti)(tti+n1)Bin(x)(t-x)^n=\sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n-1})B_i^n(x)
  • 样条空间Snn1(t1,t2,,tN)\mathbb{S}_n^{n-1}(t_1,t_2,\ldots,t_N)

    • n+N1n+N-1维:
      • 每个区间内是nn阶多项式,有n+1n+1个系数;
      • N1N-1个区间,故有(n+1)(N1)(n+1)(N-1)个系数;
      • N2N-2个内部节点要求函数值、一阶导数值、…、n1n-1阶导数值相等,共n(N2)n(N-2)个限制条件 故dim(Snn1)=(n+1)(N1)n(N2)=n+N1\dim(\mathbb{S}_n^{n-1})=(n+1)(N-1)-n(N-2)=n+N-1.
    • Snn1=span{1,x,x2,,xn,(xt2)+n,(xt3)+n,,(xtN1)+n}\mathbb{S}_n^{n-1}=\text{span}\{1,x,x^2,\ldots,x^n,(x-t_2)_+^n,(x-t_3)_+^n,\ldots,(x-t_{N-1})_+^n\}
      • 证明:假设
    i=0naixi+j=2N1an+j(xtj)+n=0(x)\sum_{i=0}^na_ix^i+\sum_{j=2}^{N-1}a_{n+j}(x-t_j)^n_+=\mathbf{0}(x)

    x<t2x<t_2时截断幂函数均为0,则需要ai=0,i=0,1,,na_i=0,\forall i=0,1,\ldots,n.当x(t2,t3)x\in(t_2,t_3)时上式变为an+2(xt2)+na_{n+2}(x-t_2)^n_+,则an+2=0a_{n+2}=0.这样下去可以得到所有系数均为0.由此{1,x,x2,,xn,(xt2)+n,(xt3)+n,,(xtN1)+n}\{1,x,x^2,\ldots,x^n,(x-t_2)_+^n,(x-t_3)_+^n,\ldots,(x-t_{N-1})_+^n\}是一个线性无关组,而元素个数等于维数,所以构成一组基。

    • 用前面提到的B样条与截断幂函数的关系以及Marsden恒等式,结合对称多项式的技巧,可以证明B样条B2nn(x),B3nn(x),,BNn(x)B^n_{2-n}(x),B^n_{3-n}(x),\ldots,B^n_N(x)也构成样条空间的一组基。
  • 基数B样条nn阶基数B样条,记作Bi,ZnB^n_{i,\mathbb{Z}},是节点选为Z\mathbb{Z}的B样条。

    • 基数B样条之间可以通过平移得到:xR,Bi,Zn(x)=Bi+1,Zn(x+1)\forall x \in \mathbb{R},\quad B_{i,\mathbb{Z}}^n(x)=B_{i+1,\mathbb{Z}}^n(x+1) .
      • 证明:对n归纳即可。这一性质对于等距节点上的B样条基函数都成立。
    • 基数B样条是关于支撑区间中点对称的:n>0,xR,Bi,Zn(x)=Bi,Zn(2i+n1x)\forall n>0,\forall x \in \mathbb{R},\quad B_{i,\mathbb{Z}}^n(x)=B_{i,\mathbb{Z}}^n(2i+n-1-x).
      • 证明:同样对n归纳。这一性质对于等距节点上的B样条基函数都成立。
    • 存在唯一的 B 样条 S(x)S32S(x) \in \mathbb{S}_3^2 在点 1,2,,N1, 2, \dots, N 处插值 f(x)f(x),并满足 S(1)=f(1)S'(1) = f'(1)S(N)=f(N)S'(N) = f'(N)。此外,该 B 样条表示为
    S(x)=i=1NaiBi,Z3(x)S(x) = \sum_{i=-1}^{N} a_i B_{i, \mathbb{Z}}^3(x)

    其中

    a1=a12f(1),aN=aN2+2f(N)a_{-1} = a_1 - 2f'(1), \quad a_N = a_{N-2} + 2f'(N)

    a=[a0,,aN1]\mathbf{a}^\top = [a_0, \dots, a_{N-1}] 是线性方程组 Ma=bM\mathbf{a} = \mathbf{b} 的解,其中

    b=[3f(1)+f(1),6f(2),,6f(N1),3f(N)f(N)],\mathbf{b}^\top = [3f(1) + f'(1), 6f(2), \dots, 6f(N-1), 3f(N) - f'(N)], M=[2114114112].M = \begin{bmatrix} 2 & 1 & & & \\ 1 & 4 & 1 & & \\ & \ddots & \ddots & \ddots & \\ & & 1 & 4 & 1 \\ & & & 1 & 2 \end{bmatrix} .
    • 存在唯一的 B 样条 S(x)S21S(x) \in \mathbb{S}_2^1 在每个 i=1,2,,N1i = 1, 2, \dots, N-1ti=i+12t_i = i + \frac{1}{2} 处插值 f(x)f(x),并满足边界条件 S(1)=f(1)S(1) = f(1)S(N)=f(N)S(N) = f(N)。此外,该 B 样条表示为
    S(x)=i=0NaiBi,Z2(x),(3.75)S(x) = \sum_{i=0}^{N} a_i B_{i, \mathbb{Z}}^2(x), \tag{3.75}

    其中

    a0=2f(1)a1,aN=2f(N)aN1,(3.76)a_0 = 2f(1) - a_1, \quad a_N = 2f(N) - a_{N-1}, \tag{3.76}

    a=[a1,,aN1]\mathbf{a}^\top = [a_1, \dots, a_{N-1}] 是线性方程组 Ma=bM\mathbf{a} = \mathbf{b} 的解,其中

    b=[8f(32)2f(1),8f(52),,8f(N32),8f(N12)2f(N)],\mathbf{b}^\top = \left[ 8f\left(\frac{3}{2}\right) - 2f(1), 8f\left(\frac{5}{2}\right), \dots, 8f\left(N-\frac{3}{2}\right), 8f\left(N-\frac{1}{2}\right) - 2f(N) \right], M=[5116116115].M = \begin{bmatrix} 5 & 1 & & & \\ 1 & 6 & 1 & & \\ & \ddots & \ddots & \ddots & \\ & & 1 & 6 & 1 \\ & & & 1 & 5 \end{bmatrix} .

Chap 4

  • 基数:用于表示数值的唯一符号的数量

  • 浮点数: x=±m×βex = \pm m \times \beta^e,其中

    • β\beta是基数
    • 指数e[L,U]e\in[L,U]
    • 尾数
    m=(d0+d1β++dp1βp1)m = \left( d_0 + \frac{d_1}{\beta} + \dots + \frac{d_{p-1}}{\beta^{p-1}} \right)

    其中整数 did_i 满足对于所有 i[0,p1]i \in [0, p-1],均有 di[0,β1]d_i \in [0, \beta-1]

  • 浮点数系统:浮点数系统F\mathcal{F}是有理数Q\mathbb{Q}的真子集,由四元组(β,p,L,U)(\beta,p,L,U)决定

    • 基数β\beta
    • 精度pp
    • 指数的范围[L,U][L,U]
  • 规格化浮点数1m<β1\le m<\beta

  • 欠规格化浮点数e=L,m(0,1)e=L,m\in(0,1)

  • 机器精度:一个规格化浮点数系统F\mathcal{F}的机器精度是1.0和下一个浮点数之间的距离

    ϵM:=β1p\epsilon_M:=\beta^{1-p}
  • 下溢极限(UFL)和上溢极限(OFL):

    UFL(F):=minF{0}=βL,OFL(F):=maxF=βU(ββ1p).\begin{aligned}\text{UFL}(\mathcal{F})&:=\min|\mathcal{F}-\{0\}|=\beta^L,\\ OFL(\mathcal{F})&:=\max|\mathcal{F}|=\beta^U(\beta-\beta^{1-p}).\end{aligned}

    分别是最小的正规格化浮点数和最大的规格化浮点数

  • 最小的非规格化正浮点数:β1p+L\beta^{1-p+L}

  • 注意: 浮点数在数轴上的分布是不均匀的。比如,在[1,β][1,\beta]之间,两个相邻浮点数的距离是β1p=ϵM\beta^{1-p}=\epsilon_M,在[β,β2][\beta,\beta^2]之间,两个相邻浮点数的的距离是βϵM\beta\epsilon_M.

  • 舍入规则

    • 对于xRx\in\mathbb{R},映射fl:RF{+,,NaN}\text{fl}:\mathbb{R}\to\mathcal{F}\cup\{+\infty,-\infty,\text{NaN}\}总是把xx映射到离它最近的浮点数。有一些特殊情况
      • 平局:当xx恰好是两个相邻浮点数的中点时,总是把xx舍入到dp1d_{p-1}为偶数的那个浮点数上。(我们默认β\beta是偶数,因为当β\beta为奇数时,可能出现这两个相邻浮点数一个dp1=β1d_{p-1}=\beta-1,另一个dp1=0d_{p-1}=0的“双偶”情况,这时约定向0舍入)
      • 上溢OFL=βU(ββ1p)\text{OFL}=\beta^U(\beta-\beta^{1-p}),还存在一个理论上的下一个浮点数β1+U\beta^{1+U},当xx大于这两数的中点时,fl(x)=+\text{fl}(x)=+\infty.
      • 下溢
        • 规格化FPN:当x<12βLx<\frac12\beta^L时,fl(x)=0\text{fl}(x)=0.
        • 扩展FPN:当x<12β1p+Lx<\frac{1}{2}\beta^{1-p+L}时,fl(x)=0\text{fl}(x)=0.
  • 单位舍入误差:ϵu:=12ϵM=12β1p\epsilon_u:=\frac12\epsilon_M=\frac12\beta^{1-p}

  • 误差分析

    • 前向:fl(x)=x(1+δ)\text{fl}(x)=x(1+\delta)
    • 后向:fl(x)=x1+δ\text{fl}(x)=\frac{x}{1+\delta}

Chap 5

  • 最佳逼近的定义:对于函数赋范向量空间YY和子空间XYX \subset Y,称函数 φ^X\hat{\varphi} \in XfYf \in YXX 中关于范数 \|\cdot\| 的最佳逼近当且仅当:

    φX,fφ^fφ\forall \varphi \in X, \quad \|f - \hat{\varphi}\| \le \|f - \varphi\|
  • 最佳逼近的存在性:设XX是赋范向量空间(Y,)(Y,\|\cdot\|)的有限维子空间,则

    yY,φ^X,φ^yφy\forall y\in Y,\exists\hat{\varphi}\in X,\|\hat{\varphi}-y\|\le\|\varphi-y\|

    证明:对于给定的yYy\in Y定义闭球By:={xX:x2y}B_y:=\{x\in X:\|x\|\le2\|y\|\}则显然0By0\in B_y,故

    dist(y,By):=infxByyxy0=y\text{dist}(y,B_y):=\inf_{x\in B_y}\|y-x\|\le\|y-0\|=\|y\|

    根据定义zX,zBy\forall z\in X ,z\notin B_yz>2y\|z\|>2\|y\|,则

    zyzy>y\|z-y\|\ge\|z\|-\|y\|>\|y\|

    所以如果yy的最佳逼近存在,那一定在ByB_y中。ByB_y作为XX的子空间,是有限维、闭的并且是有界的。所以ByB_y是紧的。定义函数d:ByR+{0},d(x)=xyd:B_y\to \mathbb{R}^+\cup\{0\},d(x) = \|x-y\|,则ddByB_y上的连续函数。故dd一定在ByB_y上取得最小值。

  • Gram-Schmidt正交化:在预定义的范数\|\cdot\|和内积,\langle\cdot,\cdot\rangle下,对线性无关组(u1,u2,)(u_1,u_2,\cdots)作如下操作,可以得到span{u1,u2,}\text{span}\{u_1,u_2,\ldots\}的一组标准正交基:

    vn+1=un+1k=1nun+1,ukukun+1=vn+1vn+1\begin{aligned}v_{n+1}&=u_{n+1}-\sum_{k=1}^n\langle u_{n+1},u^*_k\rangle u^*_k\\u^*_{n+1}&=\frac{v_{n+1}}{\|v_{n+1}\|}\end{aligned}

    :也可以选择不生成模长均为1的标准正交基,比如生成Legendre多项式,可以约束系数之和为1.但此时正交化过程发生变化:

    Qn+1=Pn+1k=1nPn+1,PkPk,PkPkPn+1=Qn+1i=0n+1ai\begin{aligned}Q_{n+1}&=P_{n+1}-\sum_{k=1}^n\frac{\langle P_{n+1},P^*_k\rangle}{\langle P^*_k,P^*_k\rangle} P^*_k\\P^*_{n+1}&=\frac{Q_{n+1}}{\sum_{i=0}^{n+1}a_i}\end{aligned}
  • Fourier展开:设 (u1,u2,)(u_1^*, u_2^*, \dots) 为一个有限或无限的标准正交序列。对于任意元素 ww,其Fourier展开为:

    n=1mw,unun,(5.18)\sum_{n=1}^m \langle w, u_n^* \rangle u_n^*, \tag{5.18}
    • wspan{u1,u2,un}w\in\text{span}\{u_1,u_2,\ldots u_n\},设{u1,u2,,un}\{u^*_1,u^*_2,\ldots,u^*_n\}是由{u1,u2,un}\{u_1,u_2,\ldots u_n\}经Gram-Schmidt正交化得到的标准正交基,则
    w=i=1nw,uiuiw = \sum_{i=1}^n \langle w, u_i^* \rangle u_i^*
    • 最小二乘逼近性质:对于任意向量 ww,傅里叶展开 w,uiui\sum \langle w, u_i^* \rangle u_i^* 满足:
    wi=1Nw,uiuiwi=1Naiui\|w - \sum_{i=1}^N \langle w, u_i^* \rangle u_i^*\| \le \|w - \sum_{i=1}^N a_i u_i^*\|

    证明:考虑

    wi=1Naiui2=wiaiui,wiaiui=w,ww,iaiuiiaiui,w+iaiui,iaiui=w2iaˉiw,uiiaiui,w+ijaˉiaj=w2iaˉiw,uiiaiui,w+iai2+iui,ww,uiiui,ww,ui=w2iw,ui2+iaiw,ui2\begin{aligned}\|w - \sum_{i=1}^N a_i u_i^*\|^2&=\langle w-\sum_i a_iu^*_i, w-\sum_i a_iu^*_i\rangle\\&=\langle w,w\rangle-\langle w,\sum_i a_iu^*_i\rangle-\langle \sum_i a_iu^*_i,w\rangle+\langle\sum_i a_iu^*_i,\sum_i a_iu^*_i\rangle\\&=\|w\|^2-\sum_i\bar{a}_i\langle w,u_i^*\rangle-\sum_ia_i\langle u_i^*,w\rangle+\sum_i\sum_j\bar{a}_ia_j\\&=\|w\|^2-\sum_i\bar{a}_i\langle w,u_i^*\rangle-\sum_ia_i\langle u_i^*,w\rangle+\sum_i|a_i|^2\\&+\sum_i\langle u_i^*,w\rangle\langle w,u_i^*\rangle-\sum_i\langle u_i^*,w\rangle\langle w,u_i^*\rangle\\&=\|w\|^2-\sum_i|\langle w,u_i^*\rangle|^2+\sum_i|a_i-\langle w,u_i^*\rangle|^2\end{aligned}

    则当且仅当i,ai=w,ui\forall i,a_i = \langle w,u_i^*\rangle时取得最小值。

    • 最小二乘残量
    wφ^2=w2k=1nw,uk2\|w - \hat{\varphi}\|^2 = \|w\|^2 - \sum_{k=1}^n |\langle w, u_k^* \rangle|^2

    给定内积空间中的子空间 VV,向量 wwVV 上的Fourier展开是 VV 中唯一使得 L2L^2 误差范数最小化的元素。

  • 正规方程组:当要求在非标准正交基下的最佳逼近时,要使用正规方程组来求解。设φ^=i=1naiui\hat{\varphi}=\sum_{i=1}^na_iu_iww在基(u1,u2,,un)(u_1,u_2,\ldots,u_n)下的最佳逼近,则系数a=[a1,a2,,an]T\mathbf{a}=[a_1,a_2,\ldots,a_n]^T满足

    G(u1,u2,,un)Ta=cG(u_1,u_2,\ldots,u_n)^T\mathbf{a}=\mathbf{c}

    其中c=[w,u1,w,u2,,w,un]T\mathbf{c}=[\langle w,u_1\rangle,\langle w,u_2\rangle,\ldots,\langle w,u_n\rangle]^T,G(u1,u2,,un)G(u_1,u_2,\ldots,u_n)是Gram矩阵

    G=[u1,u1u1,u2u1,unu2,u1u2,u2u2,unun,u1un,u2un,un]G=\begin{bmatrix}\langle u_1,u_1\rangle & \langle u_1,u_2\rangle & \cdots&\langle u_1,u_n\rangle\\\langle u_2,u_1\rangle&\langle u_2,u_2\rangle&\cdots&\langle u_2,u_n\rangle\\\vdots&\vdots&\ddots&\vdots\\\langle u_n,u_1\rangle&\langle u_n,u_2\rangle&\cdots&\langle u_n,u_n\rangle\end{bmatrix}
  • 线性离散最小二乘:可以理解为有特殊内积和范数定义的连续最小二乘。

    • 内积:f,g=i=1mf(xi)g(xi)\langle f,g\rangle=\sum_{i=1}^mf(x_i)g(x_i)

    • 范数:f=[i=1mf2(xi)]1/2\|f\|=\left[\sum_{i=1}^mf^2(x_i)\right]^{1/2} 设给定的基为[u1(x),u2(x),,un(x)],(n<m)\left[u_1(x),u_2(x),\ldots,u_n(x)\right],\quad(n<m),目标函数满足y(xi)=yiy(x_i)=y_i。要最小化yj=1najuj(x)2=i=1m(yij=1najuj(xi))2\|y-\sum_{j=1}^n a_ju_j(x)\|^2=\sum_{i=1}^m\left(y_i-\sum_{j=1}^na_ju_j(x_i)\right)^2 可以采用两种方法:

    • 正规方程组:构建Gram矩阵G(u1,u2,,un)G(u_1,u_2,\ldots,u_n)c=[y,u1,y,u2,,y,un]\mathbf{c}=[\langle y,u_1\rangle,\langle y,u_2\rangle,\ldots,\langle y,u_n\rangle]a=G1c\mathbf{a}=G^{-1}\mathbf{c}

    • QR分解:记b=[y1,y2,,ym]T,a=[a1,a2,,an]T,A=(uj(xi))m×n\mathbf{b}=[y_1,y_2,\ldots,y_m]^T,\mathbf{a}=[a_1,a_2,\ldots,a_n]^T,\mathbf{A}=(u_j(x_i))_{m\times n},则可以写成超定方程组

      [u1(x1)u2(x1)un(x1)u1(x2)u2(x2)un(x2)u1(xm)u2(xm)un(xm)][a1a2an]=[y1y2ym]\begin{bmatrix}u_1(x_1)&u_2(x_1)&\cdots&u_n(x_1)\\u_1(x_2)&u_2(x_2)&\cdots&u_n(x_2)\\\vdots&\vdots&\ddots&\vdots\\u_1(x_m)&u_2(x_m)&\cdots&u_n(x_m)\end{bmatrix}\begin{bmatrix}a_1\\a_2\\\vdots\\a_n\end{bmatrix}=\begin{bmatrix}y_1\\y_2\\\vdots\\y_m\end{bmatrix}

    A\mathbf{A}进行QR分解:A=Q(R0)\mathbf{A}=Q\begin{pmatrix}R\\\mathbf{0}\end{pmatrix} 其中QRm×m,RRn×nQ\in\mathbb{R}^{m\times m},R\in\mathbb{R}^{n\times n}QQ为正交阵,RR为上三角矩阵。则最小二乘解为Ra=b1R\mathbf{a}=\mathbf{b}_1的解。其中b1\mathbf{b}_1QTbQ^T\mathbf{b}的前nn个元素组成的向量。

Chap 6

  • 加权求积公式In(f)I_n(f)是一个线性泛函

    In(f):=k=1nwkf(xk)I_n(f):=\sum_{k=1}^n w_kf(x_k)

    用来逼近积分

    I(f):=abf(x)ρ(x)dxI(f):=\int_a^bf(x)\rho(x)\mathrm{d}x
  • In(f)I_n(f)C[a,b]\mathcal{C}[a,b]收敛当且仅当

    fC[a,b],limn+In(f)=I(f)\forall f\in\mathcal{C}[a,b],\lim_{n\to+\infty}I_n(f)=I(f)
  • 精度:加权求积公式有dEd_E阶精度当且仅当

    {fPdE,En(f)=0gPdE+1,En(g)0\begin{cases}\forall f\in\mathbb{P}_{d_E},\quad E_n(f)=0\\\exists g\in\mathbb{P}_{d_E+1},\quad E_n(g)\neq0\end{cases}
  • 定理: 设 x1,,xnx_1, \dots, x_n 是区间 [a,b][a, b]nn 个互不相同的节点。求积公式 In(f)=k=1nwkf(xk)I_n(f) = \sum_{k=1}^n w_k f(x_k) 具有至少 n1n-1 阶代数精度的充分必要条件是:

    wk=abρ(x)k(x)dx,k=1,,nw_k = \int_a^b \rho(x) \ell_k(x) dx, \quad k=1, \dots, n

    其中 k(x)\ell_k(x) 是关于这些节点的 Lagrange 插值基函数。即

    k(x)=i=1,iknxxixkxi\ell_k(x)=\prod_{i=1,i\neq k}^n\frac{x-x_i}{x_k-x_i}

    此时的求积公式事实上就是对插值多项式的加权积分。

  • Newton-Cotes公式:在等距节点上插值导出的公式。

    • 梯形公式:插值点为左右两端点。
      • 精度:1阶
      • 误差:ζ(a,b), s.t. ET(f)=(ba)312f(ζ)\exists\zeta\in(a,b), \text{ s.t. }E^T(f)=-\frac{(b-a)^3}{12}f''(\zeta)
        • 证明:插值误差R=f(ξ(x))2(xa)(xb)R=\frac{f''(\xi(x))}{2}(x-a)(x-b),积分
    ET(f)=abf(ξ(x))2(xa)(xb)dx=f(ζ)2ab(xa)(xb)dx=(ba)32f(ζ)\begin{aligned}E^T(f)&=\int_a^b\frac{f''(\xi(x))}{2}(x-a)(x-b)\mathrm{d}x\\&=\frac{f''(\zeta)}{2}\int_a^b(x-a)(x-b)\mathrm{d}x=-\frac{(b-a)^3}{2}f''(\zeta)\end{aligned}
    • 中点公式:插值点为区间中点。在区间内为常数。
      • 精度:1阶
    • Simpson公式:插值点为区间的两端点和区间中点。
      • 精度:3阶
      • 误差:ζ(a,b), s.t. ET(f)=(ba)52880f(4)(ζ)\exists\zeta\in(a,b), \text{ s.t. }E^T(f)=-\frac{(b-a)^5}{2880}f^{(4)}(\zeta)
  • 复化求积公式:把求积区间切分成多个,在子区间上应用Newton-Cotes公式

    • 复化梯形公式:在每个子区间上应用梯形公式
      • 误差:ξ(a,b)s.t. EnT(f)=ba12h2f(ξ)\exists \xi\in(a,b)\quad \text{s.t. }E_n^T(f)=-\frac{b-a}{12}h^2f''(\xi)
        • 证明:对梯形公式的误差求和,运用介值定理。
    • 复化Simpson公式:在每两个相邻子区间上应用Simpson公式
      • 误差:ξ(a,b)s.t. EnS(f)=ba180h4f(4)(ξ)\exists \xi\in(a,b)\quad \text{s.t. }E_n^S(f)=-\frac{b-a}{180}h^4f^{(4)}(\xi) 注意:复化公式并不能提高代数精度,但是能减小截断误差。
  • 代数精度的提高:一个插值型公式,即代数精度 dEn1d_E \geq n-1 的求积公式,当且仅当其节点多项式和权函数满足以下附加条件时,其代数精度可以提高到 dEn+j1d_E \geq n+j-1(其中 j=1,2,,nj = 1, 2, \dots, n):

    pPj1,abvn(x)p(x)ρ(x)dx=0.\forall p \in \mathbb{P}_{j-1}, \quad \int_{a}^{b} v_n(x) p(x) \rho(x) \mathrm dx = 0.
    • 证明:若dEn+j1d_E\ge n+j-1,由于deg(vn)=n,deg(p)j1\deg(v_n)=n,\deg(p)\le j-1,则deg(vnp)n+j1\deg(v_np)\le n+j-1,故求积公式对于vn(x)p(x)v_n(x)p(x)是精确的。即
    abvn(x)p(x)ρ(x)dx=k=1nwkvn(xk)p(xk)=0\int_{a}^{b} v_n(x) p(x) \rho(x) \mathrm dx=\sum_{k=1}^nw_kv_n(x_k)p(x_k)=0

    vn(x)v_n(x)Pj1\mathbb{P}_{j-1}正交,考虑pPn+j1\forall p \in\mathbb{P}_{n+j-1} ,由多项式的带余除法有

    q(x)Pj1,r(x)Pn1,p(x)=q(x)vn(x)+r(x)\exists q(x)\in\mathbb{P}_{j-1},\exists r(x)\in\mathbb{P}_{n-1},\quad p(x)=q(x)v_n(x)+r(x)

    abp(x)ρ(x)dx=abq(x)vn(x)ρ(x)dx+abr(x)ρ(x)dx\int_a^bp(x)\rho(x)\mathrm dx=\int_a^bq(x)v_n(x)\rho(x)\mathrm dx+\int_a^br(x)\rho(x)\mathrm dx

    由于vn(x)v_n(x)Pj1\mathbb{P}_{j-1}正交,则前一项积分为0.有

    abp(x)ρ(x)dx=abr(x)ρ(x)dx\int_a^bp(x)\rho(x)\mathrm dx=\int_a^br(x)\rho(x)\mathrm dx

    考虑求积公式有

    k=1nwkp(xk)=k=1nwk[vn(xk)q(xk)+r(xk)]=k=1nwkr(xk)\sum_{k=1}^nw_kp(x_k)=\sum_{k=1}^nw_k\left[v_n(x_k)q(x_k)+r(x_k)\right]=\sum_{k=1}^nw_kr(x_k)

    r(x)r(x)是次数不超过n1n-1的多项式,故自然成立

    abr(x)ρ(x)dx=k=1nwkr(xk)    abp(x)ρ(x)dx=k=1nwkp(xk)\int_a^br(x)\rho(x)\mathrm dx=\sum_{k=1}^nw_kr(x_k)\implies \int_a^bp(x)\rho(x)\mathrm dx=\sum_{k=1}^nw_kp(x_k)
  • Gauss积分公式:由上述定理,只要取vn(x)v_n(x)为权函数ρ(x)\rho(x)Pn1\mathbb{P}_{n-1}的正交多项式,即取节点为正交多项式的零点,则可以获得2n12n-1阶精度。

    • Gauss积分公式有正权重。
      • 证明:Lagrange插值基函数k(x)\ell_k(x)在节点xkx_k处为1,在其它节点处为0.则
    wk=j=1nwjk2(xj)=abρ(x)k2(x)dx>0w_k=\sum_{j=1}^nw_j\ell_k^2(x_j)=\int_a^b\rho(x)\ell_k^2(x)\mathrm dx>0

    第二个等号成立是因为k2(x)P2n2\ell_k^2(x)\in\mathbb{P}_{2n-2}

    • Gauss积分公式的截断误差
    ξ(a,b) s.t. EnG(f)=f(2n)(ξ)(2n)!abρ(x)vn2(x)dx\exists\xi\in(a,b)\text{ s.t. }E_n^G(f)=\frac{f^{(2n)}(\xi)}{(2n)!}\int_a^b\rho(x)v_n^2(x)\mathrm dx
  • 数值微分的待定系数法:用于推导近似 u(k)(xˉ)u^{(k)}(\bar{x}) 的有限差分公式的通用方法,是基于由 n>kn > k 个互异点 x1,x2,,xnx_1, x_2, \dots, x_n 组成的任意型值点集 。将 uu 在型值点集中的每个点 xix_i 处绕 u(xˉ)u(\bar{x}) 进行泰勒展开

    u(xi)=u(xˉ)+(xixˉ)u(xˉ)++1k!(xixˉ)ku(k)(xˉ)+u(x_i) = u(\bar{x}) + (x_i - \bar{x})u'(\bar{x}) + \dots + \frac{1}{k!}(x_i - \bar{x})^k u^{(k)}(\bar{x}) + \dots

    u(xi)u(x_i)乘以系数cic_i后求和,令求和后小于kk阶的导数的系数全为0.则- 数值微分的待定系数法:用于推导近似 u(k)(xˉ)u^{(k)}(\bar{x}) 的有限差分公式的通用方法,是基于由 n>kn > k 个互异点 x1,x2,,xnx_1, x_2, \dots, x_n 组成的任意型值点集 。将 uu 在型值点集中的每个点 xix_i 处绕 u(xˉ)u(\bar{x}) 进行泰勒展开

    u(xi)=u(xˉ)+(xixˉ)u(xˉ)++1k!(xixˉ)ku(k)(xˉ)+u(x_i) = u(\bar{x}) + (x_i - \bar{x})u'(\bar{x}) + \dots + \frac{1}{k!}(x_i - \bar{x})^k u^{(k)}(\bar{x}) + \dots

    u(xi)u(x_i)乘以系数cic_i后求和,令求和后小于kk阶的导数的系数全为0.则

    u(k)(xˉ)=c1u(x1)+c2u(x2)++cnu(xn)+O(hp)u^{(k)}(\bar{x}) = c_1 u(x_1) + c_2 u(x_2) + \dots + c_n u(x_n) + O(h^p)

    其中

    i=0,,p1,1i!j=1ncj(xjxˉ)i={1if i=k,0otherwise.\forall i = 0, \dots, p-1, \quad \frac{1}{i!} \sum_{j=1}^{n} c_j (x_j - \bar{x})^i = \begin{cases} 1 & \text{if } i = k, \\ 0 & \text{otherwise.} \end{cases}

    p>kp>k

  • 数值微分的总误差:考虑公式

    D2u(xˉ)=u(xˉh)2u(xˉ)+u(xˉ+h)h2D^2 u(\bar{x}) = \frac{u(\bar{x} - h) - 2u(\bar{x}) + u(\bar{x} + h)}{h^2}

    具有二阶精度。此外,如果输入的函数值 u(xˉh)u(\bar{x} - h)u(xˉ)u(\bar{x})u(xˉ+h)u(\bar{x} + h) 受到范围在 ϵ[E,E]\epsilon \in [-E, E] 内的随机误差扰动,则存在 ξ(xˉh,xˉ+h)\xi \in (\bar{x} - h, \bar{x} + h) 使得:

    u(xˉ)D2u(xˉ)h212u(4)(ξ)+4Eh2.|u''(\bar{x}) - D^2 u(\bar{x})| \leq \frac{h^2}{12}|u^{(4)}(\xi)| + \frac{4E}{h^2}.
    • 证明
      • 截断误差:考虑泰勒展开
    u(xˉ+h)=u(xˉ)+hu(xˉ)+h22u(xˉ)+h36u(xˉ)+h424u(4)(ξ1)u(xˉh)=u(xˉ)hu(xˉ)+h22u(xˉ)h36u(xˉ)+h424u(4)(ξ2)\begin{aligned}u(\bar{x}+h) &= u(\bar{x}) + h u'(\bar{x}) + \frac{h^2}{2} u''(\bar{x}) + \frac{h^3}{6} u'''(\bar{x}) + \frac{h^4}{24} u^{(4)}(\xi_1)\\u(\bar{x}-h) &= u(\bar{x}) - h u'(\bar{x}) + \frac{h^2}{2} u''(\bar{x}) - \frac{h^3}{6} u'''(\bar{x}) + \frac{h^4}{24} u^{(4)}(\xi_2)\end{aligned}

    相加利用介值定理得

    ζ(xˉh,xˉ+h),u(xˉ+h)+u(xˉh)=2u(xˉ)+h2u(xˉ)+h412u(4)(ζ)\exists \zeta \in(\bar{x}-h,\bar{x}+h),\quad u(\bar{x}+h) + u(\bar{x}-h) = 2 u(\bar{x}) + h^2 u''(\bar{x}) + \frac{h^4}{12} u^{(4)}(\zeta)

    u(xˉh)2u(xˉ)+u(xˉ+h)h2=u(xˉ)+h212u(4)(ξ)\frac{u(\bar{x}-h) - 2u(\bar{x}) + u(\bar{x}+h)}{h^2} = u''(\bar{x}) + \frac{h^2}{12} u^{(4)}(\xi)

    考虑舍入误差 u~(xi)=u(xi)+ϵi\tilde{u}(x_i) = u(x_i) + \epsilon_i,其中 ϵiE|\epsilon_i| \le E

    D2~uD2u=ϵ12ϵ0+ϵ1h2ϵ1+2ϵ0+ϵ1h24Eh2|\tilde{D^2}u - D^2 u| = \left| \frac{\epsilon_{-1} - 2\epsilon_0 + \epsilon_1}{h^2} \right| \le \frac{|\epsilon_{-1}| + 2|\epsilon_0| + |\epsilon_1|}{h^2} \le \frac{4E}{h^2}

    则总误差

    u(xˉ)D2u(xˉ)h212u(4)(ξ)+4Eh2.|u''(\bar{x}) - D^2 u(\bar{x})| \leq \frac{h^2}{12}|u^{(4)}(\xi)| + \frac{4E}{h^2}.
  • Richardson外推:假设我们要近似未知常数MM,有公式N1(h)N_1(h)满足

    MN1(h)=K1h+K2h2+K3h3+,M - N_1(h) = K_1 h + K_2 h^2 + K_3 h^3 + \dots ,

    其中K1,K2,K3,K_1, K_2, K_3, \dots 是一组(未知的)常数。截断误差为O(h)O(h)。我们可以组合 N1(h)N_1(h) 公式来产生一个关于 MMO(h2)O(h^2) 近似公式 N2(h)N_2(h),这个过程叫做外推。考虑

    M=N1(h2)+K1h2+K2h24+K3h38+M = N_1\left(\frac{h}{2}\right) + K_1 \frac{h}{2} + K_2 \frac{h^2}{4} + K_3 \frac{h^3}{8} + \dots

    用这个式子的两倍减去第一个式子,可以得到

    M=N1(h2)+[N1(h2)N1(h)]+K2(h22h2)+K3(h34h3)+M = N_1\left(\frac{h}{2}\right) + \left[N_1\left(\frac{h}{2}\right) - N_1(h)\right] + K_2 \left(\frac{h^2}{2} - h^2\right) + K_3 \left(\frac{h^3}{4} - h^3\right) + \dots

    定义

    N2(h)=N1(h2)+[N1(h2)N1(h)].N_2(h) = N_1\left(\frac{h}{2}\right) + \left[N_1\left(\frac{h}{2}\right) - N_1(h)\right] .

    则其是 MM 的一个 O(h2)O(h^2) 近似公式。

ODE初值问题

  • Euler法

    yi+1=yi+hf(xi,yi)y_{i+1} = y_i + h\cdot f(x_i,y_i)

    局部截断误差:

    τi=y(xi+1)yi+1=y(xi+h)y(xi)hy(xi)=h2y(ξ)2=O(h2)\begin{aligned}\tau_i &= y(x_{i+1})- y_{i+1}\\&=y(x_i+h)-y(x_i)-hy'(x_i)\\&=h^2\frac{y''(\xi)}{2}=O(h^2)\end{aligned}
  • 高阶Taylor方法:

    yi+1=y(ti)+hy(ti)+h22y(ti)+=y(ti)+hf(ti,yi)+h22[ft(ti,yi)+fy(ti,yi)f(ti,yi)]\begin{aligned}y_{i+1}&=y(t_i)+hy'(t_i)+\frac{h^2}{2}y''(t_i)+\cdots\\&=y(t_i)+hf(t_i,y_i)+\frac{h^2}{2}[f_t(t_i,y_i)+f_y(t_i,y_i)\cdot f(t_i,y_i)]\end{aligned}

    有更高阶的截断误差,但求高阶导太麻烦。

  • Runge-Kutta方法:设

    yi+1=yi+af(ti+b,yi+c)y_{i+1}=y_i+af(t_i+b,y_i+c)

    泰勒展开得

    yi+1=yi+af(ti,yi)+abft(ti,yi)+acfy(ti,yi)+ab22ftt(ti,yi)+abcfty(ti,yi)+ac22fyy(ti,yi)y_{i+1}=y_i+af(t_i,y_i)+abf_t(t_i,y_i)+acf_y(t_i,y_i)+\frac{ab^2}{2}f_{tt}(t_i,y_i)+abcf_{ty}(t_i,y_i)+\frac{ac^2}{2}f_{yy}(t_i,y_i)

    与二阶Taylor法对比系数得

    a=h,b=h2,c=h2f(ti,yi)a=h,b=\frac{h}{2},c=\frac{h}{2}f(t_i,y_i)

    等效于高阶Taylor法。

  • 线性k步法的一般形式:

yi+1=j=1kαjyi+1j+hj=0kβjf(xi+1j,yi+1j)=α1yi+α2yi1++αkyi+1k+h[β0f(ti+1,yi+1)+β1f(ti,yi)++βf(ti+1k,yi+1k)]\begin{aligned} y_{i+1} &= \sum_{j=1}^k\alpha_jy_{i+1-j}+h\sum_{j=0}^k\beta_jf(x_{i+1-j},y_{i+1-j})\\ &=\alpha_1 y_i + \alpha_2 y_{i-1} + \ldots + \alpha_k y_{i+1-k} \\ &+h[\beta_0f(t_{i+1},y_{i+1}) + \beta_1f(t_i,y_i) + \ldots + \beta f(t_{i+1-k}, y_{i+1-k})] \end{aligned}
  • 稳定性

    • 零稳定:若对某个固定的T>0T >0,当h0h \to 0时,某方法对y(T)y(T)的数值解保持有界,则称该数值方法是零稳定的
    • 绝对稳定:若对某个固定的h>0h>0,当TT \to \infty时,某方法对y(T)y(T)的数值解保持有界,则称该数值方法是绝对稳定的
  • 判定

    • 判定零稳定性:去掉全部的hβjh\beta_j项,保留全部的αj\alpha_j项,代入yi=Aziy_i = Az^izkαizk1α2zk2αk=0z^{k} - \alpha_iz^{k-1} - \alpha_2z^{k-2} - \ldots -\alpha_k = 0,其kk个根记作zjCz_j \in \mathbb{C}
      • 若这些根互异,则通解为yi=A1z1i+A2z2i++Akzkiy_i = A_1z_1^i+A_2z_2^i+\ldots+A_kz_k^i
      • 对重根z1=z2z_1=z_2,则A2z2iA_2z_2^i应替换为A2iz2iA_2^iz_2^i
      • 根条件:一个线性多步法是稳定的当且仅当其特征多项式所有根zj1|z_j| \leq 1,并且所有满足zj=1|z_j|=1的根的重数为1.
  • Thm(Dahl Quist)若一个线性多步法具有局部截断误差O(hp+1)O(h^{p+1})且是零稳定的,则其全局误差为O(hp)O(h^p).若p>0p > 0,当h0h \to 0时,该方法收敛到精确解,称其为具有精度阶pp的收敛方法。

  • Def 若一个线性多步法的局部截断误差比hh更快地趋于0,则称该方法是相容的,即p>0p>0。一个方法是收敛的当且仅当它既相容又稳定。

  • Thm(第一代Dahl Quist稳定性障碍):一个稳定的线性kk步法,其精度阶数最多为:

    • kk,若为显性式
    • k+1k+1,若为隐性式,且kk为奇数
    • k+2k+2,若为隐性式,且kk为奇数
  • 零稳定性:事实上关心齐次方程

    y=0,0<t<T,y(0)=1y'=0,\quad 0<t<T,y(0)=1
  • 时间稳定性:保留一项hh

    y=λy(t),t>0,y(0)=cy'=\lambda y(t),\quad t>0, y(0)=c

    其中λC\lambda \in \mathbb{C},且Re{λ}<0\text{Re}\{\lambda\} < 0 .

  • Def 若对固定的h>0h>0λC\lambda \in \mathbb{C},且Re{λ}<0\text{Re}\{\lambda\} < 0 ,数值方法当tt \to \infty时,对标准问题的数值解也趋于0,则称该方法是时间稳定的。

    • 对一般的线性kk步法
    yi+1=α1yi++αkyik+1+hλβ0yi+1+hλβ1yi++hλβkyi+1ky_{i+1}=\alpha_1y_i + \ldots +\alpha_ky_{i-k+1}+h\lambda\beta_0y_{i+1}+h\lambda\beta_1y_i+\ldots+h\lambda\beta_ky_{i+1-k}

    代入yi=Aziy_i=Az^i

    (1hλβ0)zk(α1+hλβ1)zk1(αk1+hλβk1)z(αk+hλβk)=0(1-h\lambda\beta_0)z^k-(\alpha_1+h\lambda\beta_1)z^{k-1}-\ldots-(\alpha_{k-1}+h\lambda\beta_{k-1})z-(\alpha_k+h\lambda\beta_k)=0

    (稳定多项式)

    • Defhˉ=hλ\bar{h} = h\lambda的复平面上,使稳定多项式的全部根z<1|z|<1hˉ\bar{h}的区域称为时间稳定区域
    • 变换稳定多项式,用zz表示hˉ\bar{h},令z=eiθz = e^{i\theta},让θ\theta绕一圈,hˉ\bar{h}会围成一个封闭曲线,可以分别带入范围内外的hˉ\bar{h}求出稳定多项式的根看模长。
  • 刚性方程

    • 考虑初值问题
    dydt=100(ycost)sint,t>0,y(0)=1\frac{dy}{dt}=-100(y-\cos t)-\sin t, \quad t>0,y(0)=1

    作变量替换:x(t)=y(t)costx'(t) = y(t) - \cos t

    x(t)=λx(t),λ=100x'(t)=\lambda x(t), \quad \lambda=-100

    用AB2:

    yi+1=yi+h2(3fifi1)y_{i+1}=y_i+\frac{h}{2}(3f_i-f_{i-1})

    yi+1=(1150h)yi+50hyi1y_{i+1}=(1-150h)y_i+50hy_{i-1}

    稳定多项式

    z2(1150h)z50h=0    h=z2z50150zz^2-(1-150h)z-50h=0 \implies h = \frac{z^2-z}{50-150z}

    代入z=±1z = \pm1

    h={0,z=10.01,z=1h=\begin{cases}0,z=1 \\ 0.01,z=-1\end{cases}

    即当0<h<0.010<h<0.01时算法是时间稳定的

细节

  • 误差项中ξ\xi的范围能否包含边界:
    • 数值积分包含
    • 插值、数值微分、牛顿迭代不包含

Chap 7 边值问题的有限差分方法

  • 经过有限差分法,我们有数值解(xi,Ui),i=1,2,,m(x_i,U_i),i=1,2,\ldots,m。现任取xΩx \in \Omega

    u(x){Uixi is the nearest knotx[xi,xi+1]use (xi,Ui),(xi+1,Ui+1) to generate an interpolating polynomialu(x)\approx\begin{cases}U_i \quad x_i\text{ is the nearest knot}\\x\in[x_i,x_{i+1}] \quad \text{use }(x_i,U_i),(x_{i+1},U_{i+1})\text{ to generate an interpolating polynomial}\end{cases}
  • 有限差分格式的局部截断误差是指用差商代替对应微分算子所产生的误差。如使用中心差分格式代替二阶导数时,局部截断误差就是O(h2)O(h^2)