1. 程式人生 > >常微分方程邊值問題:譜方法

常微分方程邊值問題:譜方法

  譜方法(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$$

 當然,譜方法主要用於求解偏微分方程