打靶法

来自testwiki
imported>InternetArchiveBot2018年3月2日 (五) 15:12的版本 (补救1个来源,并将0个来源标记为失效。 #IABot (v1.6.4))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

打靶法Template:Lang-en)是数值分析中在求解边界值问题時,将解归约为求解數個初值问题的方法。下面的讨论在打靶法的解释中有详细注释。

对于一个二阶常微分方程的边界值问题,该方法表述如下: 令

y(t)=f(t,y(t),y(t)),y(t0)=y0,y(t1)=y1

为边界值问题。 令 y(t1; a) 代表下列初值问题的一个解

y(t)=f(t,y(t),y(t)),y(t0)=y0,y(t0)=a

定义函数F(a)为y(t1; a)和给定边界值y1的差

F(a)=y(t1;a)y1

若边界值问题有解,则F有一个根,而这个根就是y'(t0)的给出边界问题解y(t)的取值。

上述問題的求解可以采用通常的求根方法,例如二分法或者牛顿法

线性打靶法

边界值问题是线性的,若f形为

f(t,y(t),y(t))=p(t)y(t)+q(t)y(t)+r(t).

这个情况下,边界值问题的解通常给出为

y(t)=y(1)(t)+y1y(1)(t1)y(2)(t1)y(2)(t)

其中y(1)(t)是下面的初值问题的一个解

y(t)=f(t,y(t),y(t)),y(t0)=y0,y(t0)=0,

y(2)(t)是下面的初值问题的解:

y(t)=p(t)y(t)+q(t)y(t),y(t0)=0,y(t0)=1.

结果成立的精确条件请参看证明

例子

Stoer及Burlisch曾提出一個如下的边界值问题(Section 7.3.1)

w(t)=32w2,w(0)=4,w(1)=1

以下的初值問題

w(t)=32w2,w(0)=4,w(0)=s

s = −1, −2, −3, ..., −100等條件下求解,且令F(s) = w(1;s) − 1,其圖形繪製在第一圖中,根據圖中可知,其解接近−8及−36。 第二圖繪出一些w(t;s)的軌跡。

初值問題的解是由LSODE演算法計算,利用數學軟體GNU Octave實現。

Stoer及Bulirsch列出有二個解,可以用代數法求解。 對應初始條件約w′(0) = −8及 and w′(0) = −35.9時的值。

F(s) = w(1;s) − 1.
w(t;s)的軌跡,s = w'(0)等於−7, −8, −10, −36及−40(顏色分別是紅、綠、藍、淺藍、洋紅),(1,1)有繪製一紅色的菱形。

Template:Clear


参考

  • Josef Stoer and Roland Bulirsch. Introduction to Numerical Analysis. New York: Springer-Verlag, 1980. (See Section 7.3.)