常微分方程边值问题:谱方法

  谱方法(Spectral Method)配点法(Collocation Method)的一种。一般来说,配点法包括有限元方法(Finite Element)和谱方法(Spectral Method)。配点法的一般思路是:选取合适的函数基底,这些函数基底的导数都是已知的,求得叠加系数,将这些函数基底的组合作为边界条件下常微分方程的近似解。其中,有限元方法选用的函数基底是局域的(localized support),即这些基底往往只在局部几个点处非零,比如B-样条;而谱方法选用的函数基底是全域的(global support),即这些基底在整个实数域上大部分非零,比如多项式和三角函数

  对于一个线性常系数的常微分方程,一般都可以求得解析解的;但是对于线性但非常系数的情形,解析解不容易求。有的可以用特殊的换元方法(比如欧拉方程),有的必须用泰勒级数或者洛朗级数展开的方法求解,这种解一般也不会是初等函数,而是特殊函数/无穷级数这一类。不过只要是线性方程,使用谱方法求解总能化成线性方程组,因此特别简单。具体地说:

1. 线性常微分方程边值问题+以多项式为基底的谱方法

  常微分方程:$f(y^{(m)}, y^{(m-1)}, ..., y^{(3)}, y'', y',y, t)=0$ ,其中 $f$ 关于 $y$ 的任意阶的导数都是线性的,即所有导数(包括零阶的原函数)的幂次都是1,所有项的次数也都是1。像这样的线性形式,我们或者也可以写成:$A_m(t)y^{(m)}+A_{m-1}(t)y^{(m-1)}+...+A_2(t)y''+A_1(t)y'+A_0(t)y+A(t)=0$ 。

  如果选择在两个上下界之中插入k个点进行配点,则总计配点个数为k+2=n,我们预计用这n个点的信息产生n个方程,此时可以确定含有n个未定参数的解析式,因此设:$\hat{y}(t)=x_0+x_1t+x_2t^2+...+x_{n-1}t^{n-1}$ ,并用它作为 $y(t)$ 的估计值。这样一来,$\hat{y}(t)$ 的任意阶导数总是很容易求得的,它就是: $$\hat{y}^{(k)}(t)=\sum\limits_{i\geq k}^{n-1}P_i^kx_it^{i-k}=\sum\limits_{i\geq k}^{n-1}\frac{i!}{(i-k)!}x_it^{i-k}$$  以上仅仅是一个最一般的表达式,事实上在使用过程中非常高阶的导数是很罕见的(至少在绝大多数物理问题中),最高阶为2是最为常见的,这些情形下 $y(t)$ 的导数的表达式都很简单。

  现在,我们拥有了可以求任意阶导数的估计值 $\hat{y}(t)$ 的表达式,其中有n个未定参数 $x_i$ ,我们设上下界分别是 $t_1$ 和 $t_n$ ,然后可以在区间内选取n-2个点 $t_2, t_3, ..., t_{n-1}$ 。我们将用这n个点(配点)和 估计值$\hat{y}(t)$ 的表达式,将线性的微分方程写成一个线性的代数方程。我们记:

$$f(y^{(m)}, ... y'', y', y, t)=0\quad \Rightarrow \quad A_m(t)\hat{y}^{(m)}(t)+...A_2(t)\hat{y}''(t)+A_1(t)\hat{y}'(t)+A_0(t)\hat{y}(t)+A(t)=\sum\limits_{k=0}^mA_k(t)\hat{y}^{(k)}(t)+A(t)=0$$  只需要在n个配点上分别把 $t=t_i$ 和 $\hat{y}^{(m)}(t)$ 的导数形式带入方程就可以了。我们得到:

$$\sum\limits_{k=0}^mA_k(t)\hat{y}^{(k)}(t)+A(t)=\sum\limits_{k=0}^mA_k(t)\sum\limits_{j\geq k}^{n-1}P_j^kx_jt^{j-k}=\sum\limits_{k=0}^m\sum\limits_{j\geq k}^{n-1}x_jA_k(t)P_j^kt^{j-k}=0$$  代入n个配点$t_i$ 就得到了关于 $x_j$ 的线性方程组:$$\sum\limits_{k=0}^m\sum\limits_{j\geq k}^{n-1}A_k(t_i)P_j^kt_i^{j-k}x_j=0$$  这里除了 $x_j$ 以外,其他所有数据都是已知量(或者可以直接求出);同时关于 $x_j$ 均为一次关系,为关于 $x_j$ 的线性方程组。利用解线性方程组的方法求得 $x_j$ 后,就可以得到关于t的微分方程解的估计值表达式:$$\hat{y}(t)=\sum\limits_{k=0}^nx_kt^k$$

 当然,谱方法主要用于求解偏微分方程

 

posted @ 2018-11-07 12:29  GentleMin  阅读(6712)  评论(1编辑  收藏  举报