一些思想介绍 假设你有一个简单的问题,如: dv v dt λ=,其中, 0 (0)vv= (1) 对于应用,你所感兴趣的是从0t =积分到 0 tt= v的特性,对于这个问题,结果是 众所周知的: 0 () t vt ve λ = (2) 但是,对于我们所关心的大多数问题,其精确的结果是不知道的,对于这种 问题用数值方法去近似求解就显得比较重要了。我们将在本课中研究这些复杂的 问题,但通常,我们能够通过一些简单而又典型的问题(如(1))学到很多有关 数值方法的特性。 假设我们用一种简单的数值方法去解问题(1): 1nn n VV V t λ + ? = Δ ,其中: 0 0 (), n VVntVv= Δ= (3) 这种方法通常称为向前欧拉方法,它是基于下面的近似: ()( n nn t dV V t t V t dt t +Δ ? ≈ ) Δ 为了了解向前欧拉方法有多么的精确和有效,我们可以算一下误差大小。特别地, 我们定义: () nn Vvt v≈≡ n ,0 tT≤ ≤ 这样,作为一种合理的误差估计: 2 0 () ( ) T ET V v dt=? ∫ 其离散化问题为: 2 0 () ( ) N nn n E TtVv = =Δ ? ∑ ,其中,TN t=Δ 对于一般问题,我们无法计算v(的精确解),因此,我们无法具体知道 的特性。但是,对于这个问题我们可以。让我们举一个特例子并画出结果。 ()ET 例: 1λ =? 1000T = 0 1v = () t vt e ? ?= 由向前欧拉方法可以得到: 让我们用分析的思路看一下向前欧拉方法: 1nn n VV V t λ + ? = Δ ? 1 (1 ) nn Vtλ + =+ΔV ? 0 (1 ) nn VV tλ=+Δ 对于这个例子: (1 ) n V=?Δ n t (4) 而对其误差,我们有: 2 0 () [(1 ) ] N nnt n ET t t e ?Δ = =Δ ?Δ ? ∑ 再简化一些,我们注意到: 1000T = , 1000T N tt == Δ Δ , 这里我们假设取值可以满足使得N取整数。 tΔ ? 1000 2 0 ( ) (1000) [(1 ) ] t nnt n ET E t t e Δ ?Δ = ==Δ?Δ? ∑ (5) 注释: * 如果足够大的话,实际上(当n增加时)是随时间增大的。特别, tΔ n V 如果 ,那么,2tΔ> 1nn VV + > 这个问题一个有趣的方面是,如果我们让2tΔ =,则积分500步可以达到 t=T=1000,这样是合理的。但是,实际的问题是tλΔ,如果λ <0, 那么为了使 1n VV + < n ,我们要求2tλΔ<。 n V随着增长这种特性被认为是数值方法的稳 定性。 n * 如果,与2tΔ> n V增长紧密相关的,我们注意到当1tΔ >时, n V是震荡的, 这由(4)式可以得到: 1n (1 ) (1 ) nn Vt + =?Δ =?ΔtV 如果,则和的符号是相反的(即1tΔ> 1n V + n V 1 0 nn VV + × <)。