November 21, 2013 - Xiaoping Zhang, Wuhan Universityxpzhang.me/teach/CM18_Fall/review.pdf · 2019....

285
p<¡ ;Ss November 21, 2013 Ss () p<¡ November 21, 2013 1 / 152

Transcript of November 21, 2013 - Xiaoping Zhang, Wuhan Universityxpzhang.me/teach/CM18_Fall/review.pdf · 2019....

  • 数值计算方法总复习

    张晓平

    November 21, 2013

    张晓平 () 数值计算方法 November 21, 2013 1 / 152

  • 目录

    1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 2 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 3 / 152

  • 1 1 范数、谱半径与条件数1.1 向量范数1.2 矩阵范数1.3 谱半径1.4 条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 4 / 152

  • 1.1 向量范数

    定义 (p范数)

    ‖x‖p =(|x1|p + · · · + |xn|p) 1p , p ≥ 1

    1范数‖x‖1 = |x1| + · · · + |xn|

    2范数‖x‖2 =

    (|x1|2 + · · · + |xn|2

    ) 12 =√

    xT x

    ∞范数‖x‖∞ = max

    i=1,··· ,n{|xi|}

    张晓平 () 数值计算方法 November 21, 2013 5 / 152

  • 1 1 范数、谱半径与条件数1.1 向量范数1.2 矩阵范数1.3 谱半径1.4 条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 6 / 152

  • 1.2 矩阵范数

    定理

    设A = (ai j) ∈ Rn×n,则列范数

    ‖A‖1 = max1≤ j≤n

    n∑i=1

    |ai j|

    行范数

    ‖A‖∞ = max1≤i≤n

    n∑j=1

    |ai j|

    谱范数‖A‖2 =

    √λmax(AT A)

    其中λmax(AT A)表示AT A的最大特征值。

    张晓平 () 数值计算方法 November 21, 2013 7 / 152

  • 1.2 矩阵范数

    定义 (Frobenius范数)

    ‖A‖F =√√ n∑

    i, j=1

    |ai j|2

    它是向量2范数的自然推广。

    张晓平 () 数值计算方法 November 21, 2013 8 / 152

  • 1 1 范数、谱半径与条件数1.1 向量范数1.2 矩阵范数1.3 谱半径1.4 条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 9 / 152

  • 1.3 谱半径

    定义 (谱半径)设A ∈ Cn×n,则称

    ρ(A) = max{|λ| : λ ∈ λ(A)}为A的谱半径,其中λ(A)表示A的特征值的全体。

    张晓平 () 数值计算方法 November 21, 2013 10 / 152

  • 1.3 谱半径谱半径与矩阵范数的关系

    定理

    设A ∈ Cn×n,则(1) 对Cn×n上的任意矩阵范数‖ · ‖,有

    ρ(A) ≤ ‖A‖

    (2) ∀� > 0,存在Cn×n上的矩阵范数‖ · ‖使得

    ‖A‖ ≤ ρ(A) + �

    张晓平 () 数值计算方法 November 21, 2013 11 / 152

  • 1 1 范数、谱半径与条件数1.1 向量范数1.2 矩阵范数1.3 谱半径1.4 条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 12 / 152

  • 1.4 条件数

    定义 (条件数)

    cond(A) = ‖A−1‖ · ‖A‖称为线性方程组Ax = b的条件数。

    条件数在一定程度上刻画了扰动对解的影响程度。

    若cond(A)很大,则我们就说该线性方程组的求解问题是病态的,或者说A是病态的;

    若cond(A)很小,则我们就说该线性方程组的求解问题是良态的,或者说A是良态的。

    张晓平 () 数值计算方法 November 21, 2013 13 / 152

  • 1.4 条件数

    定义 (条件数)

    cond(A) = ‖A−1‖ · ‖A‖称为线性方程组Ax = b的条件数。

    条件数在一定程度上刻画了扰动对解的影响程度。

    若cond(A)很大,则我们就说该线性方程组的求解问题是病态的,或者说A是病态的;

    若cond(A)很小,则我们就说该线性方程组的求解问题是良态的,或者说A是良态的。

    张晓平 () 数值计算方法 November 21, 2013 13 / 152

  • 1.4 条件数

    定义 (条件数)

    cond(A) = ‖A−1‖ · ‖A‖称为线性方程组Ax = b的条件数。

    条件数在一定程度上刻画了扰动对解的影响程度。

    若cond(A)很大,则我们就说该线性方程组的求解问题是病态的,或者说A是病态的;

    若cond(A)很小,则我们就说该线性方程组的求解问题是良态的,或者说A是良态的。

    张晓平 () 数值计算方法 November 21, 2013 13 / 152

  • 1.4 条件数

    定义 (条件数)

    cond(A) = ‖A−1‖ · ‖A‖称为线性方程组Ax = b的条件数。

    条件数在一定程度上刻画了扰动对解的影响程度。

    若cond(A)很大,则我们就说该线性方程组的求解问题是病态的,或者说A是病态的;

    若cond(A)很小,则我们就说该线性方程组的求解问题是良态的,或者说A是良态的。

    张晓平 () 数值计算方法 November 21, 2013 13 / 152

  • 1.4 条件数

    条件数与范数有关!cond(A)1 = ‖A−1‖1 · ‖A‖1cond(A)2 = ‖A−1‖2 · ‖A‖2cond(A)∞ = ‖A−1‖∞ · ‖A‖∞.

    张晓平 () 数值计算方法 November 21, 2013 14 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 15 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法2.1 矩阵的三角分解2.2 平方根法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 16 / 152

  • 2.1 矩阵的三角分解

    定义 (矩阵三角分解)将矩阵A分解为一个下三角阵L和一个上三角阵U的乘积,最自然的做法是通过一系列初等变换,逐步将A约化为上三角阵,并且保证这些初等变换的乘积是一个下三角阵。

    张晓平 () 数值计算方法 November 21, 2013 17 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    定义 (Gauss变换(矩阵))

    Lk =

    1. . .

    1−lk+1,k 1...

    . . .

    −ln,k 1

    , Lk = I − lkeTk

    lk = (0, · · · , 0, lk+1,k, · · · , lnk)T → Gauss向量

    张晓平 () 数值计算方法 November 21, 2013 18 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    定义 (Gauss变换(矩阵))

    Lk =

    1. . .

    1−lk+1,k 1...

    . . .

    −ln,k 1

    , Lk = I − lkeTk

    lk = (0, · · · , 0, lk+1,k, · · · , lnk)T → Gauss向量

    张晓平 () 数值计算方法 November 21, 2013 18 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    对于x = (x1, · · · , xn)T ∈ Rn,

    Lkx = (x1, · · · , xk, xk+1 − lk+1,kxk, · · · , xn − lnkxk)T .

    取lik =

    xixk, i = k + 1, · · · , n, xk , 0

    便有Lkx = (x1, · · · , xk, 0, · · · , 0)T .

    张晓平 () 数值计算方法 November 21, 2013 19 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (1→ Lk)Lk的逆为

    L−1k = I + lkeTk

    证明.

    ∵ eTk lk = 0,

    ∴ (I + lkeTk )(I − lkeTk ) = I − lk eTk lk eTk = I.

    张晓平 () 数值计算方法 November 21, 2013 20 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (1→ Lk)Lk的逆为

    L−1k = I + lkeTk

    证明.

    ∵ eTk lk = 0,

    ∴ (I + lkeTk )(I − lkeTk ) = I − lk eTk lk eTk = I.

    张晓平 () 数值计算方法 November 21, 2013 20 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (2→ Lk)设A ∈ Rn×n,有

    LkA = (I − lkeTk )A = A − lk(eTk A),

    注意eTk A为A的第k行。

    例 1−2 1−3 1 1 2 32 3 4

    4 5 7

    = 1 2 3−1 −2−2 −5

    张晓平 () 数值计算方法 November 21, 2013 21 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (2→ Lk)设A ∈ Rn×n,有

    LkA = (I − lkeTk )A = A − lk(eTk A),

    注意eTk A为A的第k行。

    例 1−2 1−3 1 1 2 32 3 4

    4 5 7

    = 1 2 3−1 −2−2 −5

    张晓平 () 数值计算方法 November 21, 2013 21 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (3→ Lk)若 j < k,则

    L jLk = (I − l jeTj )(I − lkeTk ) = I − l jeTj − lkeTk .

    证明.因为当 j < k时,有eTj lk = 0。 �

    例 1−1 1−2 1−3 1

    11

    14 1

    =

    1−1 1−2 1−3 4 1

    张晓平 () 数值计算方法 November 21, 2013 22 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (3→ Lk)若 j < k,则

    L jLk = (I − l jeTj )(I − lkeTk ) = I − l jeTj − lkeTk .

    证明.因为当 j < k时,有eTj lk = 0。 �

    例 1−1 1−2 1−3 1

    11

    14 1

    =

    1−1 1−2 1−3 4 1

    张晓平 () 数值计算方法 November 21, 2013 22 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    性质 (3→ Lk)若 j < k,则

    L jLk = (I − l jeTj )(I − lkeTk ) = I − l jeTj − lkeTk .

    证明.因为当 j < k时,有eTj lk = 0。 �

    例 1−1 1−2 1−3 1

    11

    14 1

    =

    1−1 1−2 1−3 4 1

    张晓平 () 数值计算方法 November 21, 2013 22 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    ∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗

    ︸ ︷︷ ︸A

    L1−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗

    ︸ ︷︷ ︸L1A

    L2−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗

    ︸ ︷︷ ︸L2L1A

    L3−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗

    ︸ ︷︷ ︸L3L2L1A

    张晓平 () 数值计算方法 November 21, 2013 23 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    ∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗

    ︸ ︷︷ ︸A

    L1−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗

    ︸ ︷︷ ︸L1A

    L2−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗

    ︸ ︷︷ ︸L2L1A

    L3−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗

    ︸ ︷︷ ︸L3L2L1A

    张晓平 () 数值计算方法 November 21, 2013 23 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    ∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗

    ︸ ︷︷ ︸A

    L1−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗

    ︸ ︷︷ ︸L1A

    L2−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗

    ︸ ︷︷ ︸L2L1A

    L3−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗

    ︸ ︷︷ ︸L3L2L1A

    张晓平 () 数值计算方法 November 21, 2013 23 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    ∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗∗ ∗ ∗ ∗

    ︸ ︷︷ ︸A

    L1−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗∗ ∗ ∗

    ︸ ︷︷ ︸L1A

    L2−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗ ∗

    ︸ ︷︷ ︸L2L1A

    L3−−→

    ∗ ∗ ∗ ∗∗ ∗ ∗∗ ∗∗

    ︸ ︷︷ ︸L3L2L1A

    张晓平 () 数值计算方法 November 21, 2013 23 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    A =

    2 1 1 04 3 3 18 7 9 56 7 9 8

    l1 = (0, 2, 4, 3)T → L1 =

    1−2 1−4 1−3 1

    L1A =

    1−2 1−4 1−3 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    =

    2 1 1 01 1 13 5 54 6 8

    张晓平 () 数值计算方法 November 21, 2013 24 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    A =

    2 1 1 04 3 3 18 7 9 56 7 9 8

    l1 = (0, 2, 4, 3)T → L1 =

    1−2 1−4 1−3 1

    L1A =

    1−2 1−4 1−3 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    =

    2 1 1 01 1 13 5 54 6 8

    张晓平 () 数值计算方法 November 21, 2013 24 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    A =

    2 1 1 04 3 3 18 7 9 56 7 9 8

    l1 = (0, 2, 4, 3)T → L1 =

    1−2 1−4 1−3 1

    L1A =

    1−2 1−4 1−3 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    =

    2 1 1 01 1 13 5 54 6 8

    张晓平 () 数值计算方法 November 21, 2013 24 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    A =

    2 1 1 04 3 3 18 7 9 56 7 9 8

    l1 = (0, 2, 4, 3)T → L1 =

    1−2 1−4 1−3 1

    L1A =

    1−2 1−4 1−3 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    =

    2 1 1 01 1 13 5 54 6 8

    张晓平 () 数值计算方法 November 21, 2013 24 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L1A =

    2 1 1 0

    1 1 13 5 54 6 8

    l2 = (0, 0, 3, 4)T → L2 =

    1

    1−3 1−4 1

    L2L1A =

    1

    1−3 1−4 1

    2 1 1 01 1 13 5 54 6 8

    =

    2 1 1 01 1 1

    2 22 4

    张晓平 () 数值计算方法 November 21, 2013 25 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L1A =

    2 1 1 0

    1 1 13 5 54 6 8

    l2 = (0, 0, 3, 4)T → L2 =

    1

    1−3 1−4 1

    L2L1A =

    1

    1−3 1−4 1

    2 1 1 01 1 13 5 54 6 8

    =

    2 1 1 01 1 1

    2 22 4

    张晓平 () 数值计算方法 November 21, 2013 25 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L1A =

    2 1 1 0

    1 1 13 5 54 6 8

    l2 = (0, 0, 3, 4)T → L2 =

    1

    1−3 1−4 1

    L2L1A =

    1

    1−3 1−4 1

    2 1 1 01 1 13 5 54 6 8

    =

    2 1 1 01 1 1

    2 22 4

    张晓平 () 数值计算方法 November 21, 2013 25 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L1A =

    2 1 1 0

    1 1 13 5 54 6 8

    l2 = (0, 0, 3, 4)T → L2 =

    1

    1−3 1−4 1

    L2L1A =

    1

    1−3 1−4 1

    2 1 1 01 1 13 5 54 6 8

    =

    2 1 1 01 1 1

    2 22 4

    张晓平 () 数值计算方法 November 21, 2013 25 / 152

  • 2.1 矩阵的三角分解方式一

    L2L1A =

    2 1 1 0

    1 1 12 22 4

    l3 = (0, 0, 0, 1)T → L3 =

    1

    11−1 1

    L3L2L1A =

    1

    11−1 1

    2 1 1 01 1 1

    2 22 4

    =

    2 1 1 01 1 1

    2 22

    = U.

    张晓平 () 数值计算方法 November 21, 2013 26 / 152

  • 2.1 矩阵的三角分解方式一

    L2L1A =

    2 1 1 0

    1 1 12 22 4

    l3 = (0, 0, 0, 1)T → L3 =

    1

    11−1 1

    L3L2L1A =

    1

    11−1 1

    2 1 1 01 1 1

    2 22 4

    =

    2 1 1 01 1 1

    2 22

    = U.

    张晓平 () 数值计算方法 November 21, 2013 26 / 152

  • 2.1 矩阵的三角分解方式一

    L2L1A =

    2 1 1 0

    1 1 12 22 4

    l3 = (0, 0, 0, 1)T → L3 =

    1

    11−1 1

    L3L2L1A =

    1

    11−1 1

    2 1 1 01 1 1

    2 22 4

    =

    2 1 1 01 1 1

    2 22

    = U.

    张晓平 () 数值计算方法 November 21, 2013 26 / 152

  • 2.1 矩阵的三角分解方式一

    L2L1A =

    2 1 1 0

    1 1 12 22 4

    l3 = (0, 0, 0, 1)T → L3 =

    1

    11−1 1

    L3L2L1A =

    1

    11−1 1

    2 1 1 01 1 1

    2 22 4

    =

    2 1 1 01 1 1

    2 22

    = U.

    张晓平 () 数值计算方法 November 21, 2013 26 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L−11 =

    12 14 13 1

    , L−12 =

    113 14 1

    , L−13 =

    11

    1−1 1

    L−11 L

    −12 L

    −13 =

    12 14 3 13 4 1 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    ︸ ︷︷ ︸A

    =

    12 14 3 13 4 1 1

    ︸ ︷︷ ︸L

    2 1 1 0

    1 1 12 2

    2

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 27 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L−11 =

    12 14 13 1

    , L−12 =

    113 14 1

    , L−13 =

    11

    1−1 1

    L−11 L

    −12 L

    −13 =

    12 14 3 13 4 1 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    ︸ ︷︷ ︸A

    =

    12 14 3 13 4 1 1

    ︸ ︷︷ ︸L

    2 1 1 0

    1 1 12 2

    2

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 27 / 152

  • 2.1 矩阵的三角分解方式一:Gauss变换

    L−11 =

    12 14 13 1

    , L−12 =

    113 14 1

    , L−13 =

    11

    1−1 1

    L−11 L

    −12 L

    −13 =

    12 14 3 13 4 1 1

    2 1 1 04 3 3 18 7 9 56 7 9 8

    ︸ ︷︷ ︸A

    =

    12 14 3 13 4 1 1

    ︸ ︷︷ ︸L

    2 1 1 0

    1 1 12 2

    2

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 27 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    A =

    1l21 1...

    .... . .

    ln1 ln2 · · · 1

    u11 u12 · · · u1n

    u22 · · · u2n. . .

    ...unn

    张晓平 () 数值计算方法 November 21, 2013 28 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j (i, j = 1, 2, · · · , n),

    注意到lii = 1, li j = 0(i < j), ui j = 0(i > j),可得

    先行后列

    for k = 1:n

    for j = k, · · ·, n % 计算第k行uk j = ak j −

    ∑k−1r=1 llrur j

    end

    for i = k+1, · · ·, n % 计算第k列lik = (aik −

    ∑k−1r=1 lirurk)/ukk

    end

    end

    张晓平 () 数值计算方法 November 21, 2013 29 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    u11 u12 · · · u1n u1nl21 u22 · · · u1n u2nl31 l32 · · · u1n u2n...

    .... . .

    ......

    ln−1,1 ln−1,2 · · · un−1,n−1 un−1,nln1 ln2 · · · ln−1,n unn

    张晓平 () 数值计算方法 November 21, 2013 30 / 152

  • 2.1 矩阵的三角分解

    利用Doolittle分解求解线性方程组1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    x1

    x2

    x3

    x4

    =

    −25

    10

    7

    张晓平 () 数值计算方法 November 21, 2013 31 / 152

  • 解 (一)

    l1 = (0, −3, 2, 4)T → L1 =

    13 1−2 1−4 1

    L1A =

    13 1−2 1−4 1

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    张晓平 () 数值计算方法 November 21, 2013 32 / 152

  • 解 (一)

    l1 = (0, −3, 2, 4)T → L1 =

    13 1−2 1−4 1

    L1A =

    13 1−2 1−4 1

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    张晓平 () 数值计算方法 November 21, 2013 32 / 152

  • 解 (一)

    l1 = (0, −3, 2, 4)T → L1 =

    13 1−2 1−4 1

    L1A =

    13 1−2 1−4 1

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    张晓平 () 数值计算方法 November 21, 2013 32 / 152

  • 解 (一)

    l2 = (0, 0, 3, 3)T → L2 =

    1

    1−3 1−3 1

    L2L1A =

    1

    1−3 1−3 1

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    =

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    张晓平 () 数值计算方法 November 21, 2013 33 / 152

  • 解 (一)

    l2 = (0, 0, 3, 3)T → L2 =

    1

    1−3 1−3 1

    L2L1A =

    1

    1−3 1−3 1

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    =

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    张晓平 () 数值计算方法 November 21, 2013 33 / 152

  • 解 (一)

    l2 = (0, 0, 3, 3)T → L2 =

    1

    1−3 1−3 1

    L2L1A =

    1

    1−3 1−3 1

    1 2 3 −40 2 −3 10 6 −6 50 6 −3 3

    =

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    张晓平 () 数值计算方法 November 21, 2013 33 / 152

  • 解 (一)

    l3 = (0, 0, 0, 2)T → L3 =

    1

    11−2 1

    L3L2L1A =

    1

    11−2 1

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    =

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    张晓平 () 数值计算方法 November 21, 2013 34 / 152

  • 解 (一)

    l3 = (0, 0, 0, 2)T → L3 =

    1

    11−2 1

    L3L2L1A =

    1

    11−2 1

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    =

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    张晓平 () 数值计算方法 November 21, 2013 34 / 152

  • 解 (一)

    l3 = (0, 0, 0, 2)T → L3 =

    1

    11−2 1

    L3L2L1A =

    1

    11−2 1

    1 2 3 −40 2 −3 10 0 3 20 0 6 0

    =

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    张晓平 () 数值计算方法 November 21, 2013 34 / 152

  • 2.1 矩阵的三角分解

    L−11 =

    1−3 12 14 1

    , L−12 =

    113 13 1

    , L−13 =

    11

    12 1

    L = L−11 L−12 L

    −13 =

    1−3 12 3 14 3 2 1

    1 2 3 −4−3 −4 −12 132 10 0 −34 14 9 −13

    ︸ ︷︷ ︸A

    =

    1−3 12 3 14 3 2 1

    ︸ ︷︷ ︸L

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 35 / 152

  • 2.1 矩阵的三角分解

    L−11 =

    1−3 12 14 1

    , L−12 =

    113 13 1

    , L−13 =

    11

    12 1

    L = L−11 L−12 L

    −13 =

    1−3 12 3 14 3 2 1

    1 2 3 −4−3 −4 −12 132 10 0 −34 14 9 −13

    ︸ ︷︷ ︸A

    =

    1−3 12 3 14 3 2 1

    ︸ ︷︷ ︸L

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 35 / 152

  • 2.1 矩阵的三角分解

    L−11 =

    1−3 12 14 1

    , L−12 =

    113 13 1

    , L−13 =

    11

    12 1

    L = L−11 L−12 L

    −13 =

    1−3 12 3 14 3 2 1

    1 2 3 −4−3 −4 −12 132 10 0 −34 14 9 −13

    ︸ ︷︷ ︸A

    =

    1−3 12 3 14 3 2 1

    ︸ ︷︷ ︸L

    1 2 3 −40 2 −3 10 0 3 20 0 0 −4

    ︸ ︷︷ ︸U

    张晓平 () 数值计算方法 November 21, 2013 35 / 152

  • 解 (二)1 计算U的第一行,L的第一列,得

    u11 = 1, u12 = 2, u13 = 3, u14 = −4,

    l21 =a21u11

    = −3, l31 =a31u11

    = 2, l31 =a31u11

    = 4.

    张晓平 () 数值计算方法 November 21, 2013 36 / 152

  • 解 (二)2 计算U的第二行,L的第二列,得

    u22 = a22 − l21u12 = 2, u23 = a23 − l21u13 = −3,

    u24 = a24 − l21u14 = 1,

    l32 =a32 − l31u12

    u22= 3, l42 =

    a42 − l41u12u22

    = 3.

    张晓平 () 数值计算方法 November 21, 2013 37 / 152

  • 解 (二)3 计算U的第三行,L的第三列,得

    u33 = a33 − l31u13 − l32u23 = 3,u34 = a34 − l31u14 − l32u24 = 2,

    l43 =a43 − l41u13 − l42u23

    u33= 2.

    4 计算U的第四行,得

    u44 = a44 − l41u14 − l42u24 − l43u34 = −4,

    张晓平 () 数值计算方法 November 21, 2013 38 / 152

  • 解 (二)3 计算U的第三行,L的第三列,得

    u33 = a33 − l31u13 − l32u23 = 3,u34 = a34 − l31u14 − l32u24 = 2,

    l43 =a43 − l41u13 − l42u23

    u33= 2.

    4 计算U的第四行,得

    u44 = a44 − l41u14 − l42u24 − l43u34 = −4,

    张晓平 () 数值计算方法 November 21, 2013 38 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1

    −3 12 3 1

    4 3 2 1

    1 2 3 −4

    2 −3 13 2

    −4

    张晓平 () 数值计算方法 November 21, 2013 39 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1

    −3 12 3 1

    4 3 2 1

    1 2 3 −4

    2 −3 13 2

    −4

    1

    −3 12 3 1

    4 3 2 1

    y1

    y2

    y3

    y4

    =

    −25

    10

    7

    求得

    Y = (−2, −1, 17, −16)T .

    张晓平 () 数值计算方法 November 21, 2013 39 / 152

  • 2.1 矩阵的三角分解方式二:Doolittle分解

    1 2 3 −4−3 −4 −12 13

    2 10 0 −34 14 9 −13

    =

    1

    −3 12 3 1

    4 3 2 1

    1 2 3 −4

    2 −3 13 2

    −4

    1 2 3 −42 −3 1

    3 2

    −4

    x1

    x2

    x3

    x4

    =

    −2−117

    −16

    求得

    X = (1, 2, 3, 4)T .

    张晓平 () 数值计算方法 November 21, 2013 39 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法2.1 矩阵的三角分解2.2 平方根法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 40 / 152

  • 2.2 平方根法

    定理 (Cholesky分解)

    对称矩阵A正定 =⇒ 存在惟一的主对角元皆正的下三角阵L,使得A = LLT .

    张晓平 () 数值计算方法 November 21, 2013 41 / 152

  • 2.2 平方根法

    a11 a12 · · · a1na21 a22 · · · a2n...

    ......

    an1 an2 · · · ann

    =

    l11l21 l22...

    .... . .

    ln1 ln2 · · · lnn

    l11 l21 · · · ln1l22 · · · ln2

    . . ....

    lnn

    张晓平 () 数值计算方法 November 21, 2013 42 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    图: 平方根法运算次序

    l11l21 l22l31 l32 l33...

    .... . .

    . . .

    ln−1,1 ln−1,2 · · · ln−1,n−1ln1 ln2 · · · ln−1,n lnn

    张晓平 () 数值计算方法 November 21, 2013 43 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    由矩阵乘法

    ai j =n∑

    k=1

    likuk j =n∑

    k=1

    likl jk (i, j = 1, 2, · · · , n),

    注意到li j = 0( j > i),知计算第 j行时当i = j时,

    a j j =j∑

    k=1

    l2jk =⇒ l j j =a j j − j−1∑

    k=1

    l jkl jk

    1/2

    当i > j时,

    ai j =j∑

    k=1

    likl jk =⇒ li jl j j = ai j −j−1∑k=1

    likl jk =⇒ li j =ai j −

    ∑ j−1k=1 likl jk

    l j j

    张晓平 () 数值计算方法 November 21, 2013 44 / 152

  • 2.2 平方根法

    用平方根法求解 1 2 12 8 41 4 6

    x1x2

    x3

    = 0−2

    3

    张晓平 () 数值计算方法 November 21, 2013 45 / 152

  • 2.2 平方根法

    用平方根法求解 1 2 12 8 41 4 6

    x1x2

    x3

    = 0−2

    3

    验证A的对称正定性:

    a11 = 1 > 0,∣∣∣∣∣∣ 1 22 8∣∣∣∣∣∣ = 8 − 4 > 0,∣∣∣∣∣∣∣∣∣

    1 2 12 8 41 4 6

    ∣∣∣∣∣∣∣∣∣ = 16 > 0张晓平 () 数值计算方法 November 21, 2013 45 / 152

  • 2.2 平方根法

    用平方根法求解 1 2 12 8 41 4 6

    x1x2

    x3

    = 0−2

    3

    1 分解A = LLT . 可算得

    l11 = 1,

    l21 = 2, l22 = 2,

    l31 = 1, l32 = 1, l33 = 2⇒ L =

    12 21 1 2

    张晓平 () 数值计算方法 November 21, 2013 45 / 152

  • 2.2 平方根法

    用平方根法求解 1 2 12 8 41 4 6

    x1x2

    x3

    = 0−2

    3

    2 求解LY = b,得Y = (0,−1, 2)T .

    3 求解LT X = Y,得X = (1,−1, 1)T .

    张晓平 () 数值计算方法 November 21, 2013 45 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 46 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法3.1 Jacobi迭代法3.2 G-S迭代法3.2 SOR迭代法3.4 迭代法的收敛性

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 47 / 152

  • 3.1 Jacobi迭代法

    aii , 0

    a11x1 + a12x2 + a13x3 = b1

    a21x1 + a22x2 + a23x3 = b2

    a31x1 + a32x2 + a33x3 = b3

    =⇒

    x1 =1

    a11( −a12x2 −a13x3 +b1)

    x2 =1

    a22( −a21x1 −a23x3 +b2)

    x3 =1

    a33( −a31x1 −a32x2 +b3)

    张晓平 () 数值计算方法 November 21, 2013 48 / 152

  • 3.1 Jacobi迭代法

    aii , 0

    a11x1 + a12x2 + a13x3 = b1

    a21x1 + a22x2 + a23x3 = b2

    a31x1 + a32x2 + a33x3 = b3

    =⇒

    x1 =1

    a11( −a12x2 −a13x3 +b1)

    x2 =1

    a22( −a21x1 −a23x3 +b2)

    x3 =1

    a33( −a31x1 −a32x2 +b3)

    张晓平 () 数值计算方法 November 21, 2013 48 / 152

  • 3.1 Jacobi迭代法

    aii , 0

    a11x1 + a12x2 + a13x3 = b1

    a21x1 + a22x2 + a23x3 = b2

    a31x1 + a32x2 + a33x3 = b3

    =⇒

    x1 =1

    a11( −a12x2 −a13x3 +b1)

    x2 =1

    a22( −a21x1 −a23x3 +b2)

    x3 =1

    a33( −a31x1 −a32x2 +b3)

    张晓平 () 数值计算方法 November 21, 2013 48 / 152

  • 3.1 Jacobi迭代法

    取x(0) = (x(0)1 , x(0)2 , x

    (0)3 )

    T,代入上式右端得

    x(k+1)1 =1

    a11( −a12x(k)2 −a13x

    (k)3 +b1)

    x(k+1)2 =1

    a22( −a21x(k)1 −a23x

    (k)3 +b2)

    x(k+1)3 =1

    a33( −a31x(k)1 −a32x

    (k)2 +b3)

    张晓平 () 数值计算方法 November 21, 2013 49 / 152

  • 3.1 Jacobi迭代法雅克比迭代法的矩阵描述

    考察线性方程组Ax = b (1)

    令A = D + L + U

    张晓平 () 数值计算方法 November 21, 2013 50 / 152

  • 3.1 Jacobi迭代法雅克比迭代法的矩阵描述

    考察线性方程组Ax = b (1)

    令A = D + L + U

    其中

    D = diag(a11, a22, · · · , ann), aii , 0

    L =

    0

    a21 0...

    . . .. . .

    an1 · · · an,n−1 0

    , U =

    0 a12 · · · a1n0

    . . ....

    . . . an−1,n0

    张晓平 () 数值计算方法 November 21, 2013 50 / 152

  • 3.1 Jacobi迭代法雅克比迭代法的矩阵描述

    考察线性方程组Ax = b (1)

    令A = D + L + U

    方程(2)可写成x = Bx + g

    其中B = −D−1(L + U),g = −D−1b.

    张晓平 () 数值计算方法 November 21, 2013 50 / 152

  • 3.1 Jacobi迭代法雅克比迭代法的矩阵描述

    定义 (雅克比迭代格式)给定初始向量

    x0 = (x(0)1 , x

    (0)2 , · · · , x

    (0)n )

    T ,

    迭代序列

    xk = Bxk−1 + g, k = 1, 2, 3, · · · ,B = −D−1(L + U) →雅克比迭代矩阵,g = −D−1b.

    称为解Ax = b的雅克比迭代法。

    张晓平 () 数值计算方法 November 21, 2013 51 / 152

  • 3.1 Jacobi迭代法雅克比迭代的分量形式

    任给x(0)i (i = 1, 2, · · · , n),

    x(k+1)i = x(k)i +

    1aii

    bi − n∑j=1

    ai jx(k)j

    i = 1, 2, · · · , n; k = 0, 1, 2, · · ·

    张晓平 () 数值计算方法 November 21, 2013 52 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法3.1 Jacobi迭代法3.2 G-S迭代法3.2 SOR迭代法3.4 迭代法的收敛性

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 53 / 152

  • 3.2 G-S迭代法

    迭代方法

    取x(0) = (x(0)1 , x(0)2 , x

    (0)3 )

    T,代入上式右端得

    Jacobi迭代法⇒

    x(k+1)1 =1

    a11( −a12x(k)2 −a13x

    (k)3 +b1)

    x(k+1)2 =1

    a22( −a21x(k)1 −a23x

    (k)3 +b2)

    x(k+1)3 =1

    a33( −a31x(k)1 −a32x

    (k)2 +b3)

    G-S迭代法⇒

    x(k+1)1 =1

    a11( −a12x(k)2 −a13x

    (k)3 +b1)

    x(k+1)2 =1

    a22( −a21x(k+1)1 −a23x

    (k)3 +b2)

    x(k+1)3 =1

    a33( −a31x(k+1)1 −a32x

    (k+1)2 +b3)

    张晓平 () 数值计算方法 November 21, 2013 54 / 152

  • 3.2 G-S迭代法

    考察线性方程组Ax = b (2)

    令A = D + L + U

    其中

    D = diag(a11, a22, · · · , ann), aii , 0

    L =

    0

    a21 0...

    . . .. . .

    an1 · · · an,n−1 0

    , U =

    0 a12 · · · a1n0

    . . ....

    . . . an−1,n0

    张晓平 () 数值计算方法 November 21, 2013 55 / 152

  • 3.2 G-S迭代法

    定义 (G-S迭代)给定初始向量

    x(0) = (x(0)1 , x(0)2 , · · · , x

    (0)n )

    T ,

    迭代公式

    xk = Gxk−1 + d1, k = 1, 2, 3, · · · ,G = −(D + L)−1U →高斯-赛德尔迭代矩阵,d1 = (D + L)−1b.

    称为解Ax = b的Gauss-Seidel迭代法。

    张晓平 () 数值计算方法 November 21, 2013 56 / 152

  • 3.2 G-S迭代法

    任给x(0)i (i = 1, 2, · · · , n),

    x(k+1)i = x(k)i +

    1aii

    bi − i−1∑j=1

    ai jx(k+1)j −

    n∑j=i+1

    ai jx(k)j

    i = 1, 2, · · · , n; k = 0, 1, 2, · · ·

    张晓平 () 数值计算方法 November 21, 2013 57 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法3.1 Jacobi迭代法3.2 G-S迭代法3.2 SOR迭代法3.4 迭代法的收敛性

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 58 / 152

  • 3.2 SOR迭代法

    考虑到Gauss-Seidel迭代法编程简单,且已经充分利用了最新算出的分量信息,故依上述加速收敛思想,对Gauss-Seidel迭代法加以修正,便得逐次超松弛法(SOR)

    x(k+1)i = x(k)i +

    ω

    aii

    bi − i−1∑j=1

    ai jx(k)j −

    n∑j=i

    ai jx(k)j

    , i = 1, 2, · · · , n; k = 0, 1, 2, · · ·ω = 1 → Gauss-Seidel迭代法0 < ω < 1 → 低松弛迭代法(SUR)ω > 1 → 超松弛迭代法(SOR)

    张晓平 () 数值计算方法 November 21, 2013 59 / 152

  • 3.2 SOR迭代法

    考虑到Gauss-Seidel迭代法编程简单,且已经充分利用了最新算出的分量信息,故依上述加速收敛思想,对Gauss-Seidel迭代法加以修正,便得逐次超松弛法(SOR)

    x(k+1)i = x(k)i +

    ω

    aii

    bi − i−1∑j=1

    ai jx(k)j −

    n∑j=i

    ai jx(k)j

    , i = 1, 2, · · · , n; k = 0, 1, 2, · · ·ω = 1 → Gauss-Seidel迭代法0 < ω < 1 → 低松弛迭代法(SUR)ω > 1 → 超松弛迭代法(SOR)

    张晓平 () 数值计算方法 November 21, 2013 59 / 152

  • 3.2 SOR迭代法

    考虑到Gauss-Seidel迭代法编程简单,且已经充分利用了最新算出的分量信息,故依上述加速收敛思想,对Gauss-Seidel迭代法加以修正,便得逐次超松弛法(SOR)

    x(k+1)i = x(k)i +

    ω

    aii

    bi − i−1∑j=1

    ai jx(k)j −

    n∑j=i

    ai jx(k)j

    , i = 1, 2, · · · , n; k = 0, 1, 2, · · ·ω = 1 → Gauss-Seidel迭代法0 < ω < 1 → 低松弛迭代法(SUR)ω > 1 → 超松弛迭代法(SOR)

    张晓平 () 数值计算方法 November 21, 2013 59 / 152

  • 3.2 SOR迭代法

    考虑到Gauss-Seidel迭代法编程简单,且已经充分利用了最新算出的分量信息,故依上述加速收敛思想,对Gauss-Seidel迭代法加以修正,便得逐次超松弛法(SOR)

    x(k+1)i = x(k)i +

    ω

    aii

    bi − i−1∑j=1

    ai jx(k)j −

    n∑j=i

    ai jx(k)j

    , i = 1, 2, · · · , n; k = 0, 1, 2, · · ·ω = 1 → Gauss-Seidel迭代法0 < ω < 1 → 低松弛迭代法(SUR)ω > 1 → 超松弛迭代法(SOR)

    张晓平 () 数值计算方法 November 21, 2013 59 / 152

  • 3.2 SOR迭代法

    分别用Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法,求解线性方程组

    5 1 −1 −22 8 1 3

    1 −2 −4 −1−1 3 2 7

    x1

    x2

    x3

    x4

    =

    −2−6

    6

    12

    终止条件:

    max |∆xi| < max |x(k+1)i − x(k)i | < 10

    −5

    精确解:x? = (1, −2, −1, 3)T

    张晓平 () 数值计算方法 November 21, 2013 60 / 152

  • 3.2 SOR迭代法

    解 (Jacobi)

    x(k+1)1 = x(k)1 +

    15 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    18 ( −6 −2x

    (k)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    14 ( 6 −x

    (k)1 +2x

    (k)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    17 ( 12 +x

    (k)1 −3x

    (k)2 −2x

    (k)3 −7x

    (k)4 )

    迭代24次后,近似解为

    x(24) = (0.9999941, −1.9999950, −1.0000040, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 61 / 152

  • 3.2 SOR迭代法

    解 (Jacobi)

    x(k+1)1 = x(k)1 +

    15 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    18 ( −6 −2x

    (k)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    14 ( 6 −x

    (k)1 +2x

    (k)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    17 ( 12 +x

    (k)1 −3x

    (k)2 −2x

    (k)3 −7x

    (k)4 )

    迭代24次后,近似解为

    x(24) = (0.9999941, −1.9999950, −1.0000040, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 61 / 152

  • 3.2 SOR迭代法

    解 (GS)

    x(k+1)1 = x(k)1 +

    15 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    18 ( −6 −2x

    (k+1)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    14 ( 6 −x

    (k+1)1 +2x

    (k+1)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    17 ( 12 x

    (k+1)1 −3x

    (k+1)2 −2x

    (k+1)3 −7x

    (k)4 )

    迭代14次后,近似解为

    x(14) = (0.9999966, −1.9999970, −1.0000040, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 62 / 152

  • 3.2 SOR迭代法

    解 (GS)

    x(k+1)1 = x(k)1 +

    15 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    18 ( −6 −2x

    (k+1)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    14 ( 6 −x

    (k+1)1 +2x

    (k+1)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    17 ( 12 x

    (k+1)1 −3x

    (k+1)2 −2x

    (k+1)3 −7x

    (k)4 )

    迭代14次后,近似解为

    x(14) = (0.9999966, −1.9999970, −1.0000040, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 62 / 152

  • 3.2 SOR迭代法

    解 (SOR)

    x(k+1)1 = x(k)1 +

    ω5 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    ω8 ( −6 −2x

    (k+1)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    ω4 ( 6 −x

    (k+1)1 +2x

    (k+1)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    ω7 ( 12 x

    (k+1)1 −3x

    (k+1)2 −2x

    (k+1)3 −7x

    (k)4 )

    取ω = 1.15,迭代8次后,近似解为

    x(8) = (0.9999965, −1.9999970, −1.0000010, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 63 / 152

  • 3.2 SOR迭代法

    解 (SOR)

    x(k+1)1 = x(k)1 +

    ω5 ( −2 −5x

    (k)1 −x

    (k)2 +x

    (k)3 +2x

    (k)4 )

    x(k+1)2 = x(k)2 +

    ω8 ( −6 −2x

    (k+1)1 −8x

    (k)2 −x

    (k)3 −3x

    (k)4 )

    x(k+1)3 = x(k)3 −

    ω4 ( 6 −x

    (k+1)1 +2x

    (k+1)2 +4x

    (k)3 +x

    (k)4 )

    x(k+1)4 = x(k)4 +

    ω7 ( 12 x

    (k+1)1 −3x

    (k+1)2 −2x

    (k+1)3 −7x

    (k)4 )

    取ω = 1.15,迭代8次后,近似解为

    x(8) = (0.9999965, −1.9999970, −1.0000010, 2.9999990)T

    张晓平 () 数值计算方法 November 21, 2013 63 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法3.1 Jacobi迭代法3.2 G-S迭代法3.2 SOR迭代法3.4 迭代法的收敛性

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 64 / 152

  • 3.4 迭代法的收敛性

    定义

    Ax = b转换为等价方程组

    ===================⇒ x = Mx + g (3)则可得到迭代格式

    x(k+1) = Mx(k) + g, k = 0, 1, 2, · · · (4)其中

    M ∈ Rn×n →迭代矩阵, g ∈ Rn →常数项, x0 ∈ Rn →初始向量.

    张晓平 () 数值计算方法 November 21, 2013 65 / 152

  • 3.4 迭代法的收敛性

    定义

    Ax = b转换为等价方程组

    ===================⇒ x = Mx + g (3)则可得到迭代格式

    x(k+1) = Mx(k) + g, k = 0, 1, 2, · · · (4)其中

    M ∈ Rn×n →迭代矩阵, g ∈ Rn →常数项, x0 ∈ Rn →初始向量.

    若对任意初始向量,由(4)产生的迭代序列都有极限,则称该迭代法是收敛的;否则称为发散的。

    张晓平 () 数值计算方法 November 21, 2013 65 / 152

  • 3.4 迭代法的收敛性

    定义

    Ax = b转换为等价方程组

    ===================⇒ x = Mx + g (3)则可得到迭代格式

    x(k+1) = Mx(k) + g, k = 0, 1, 2, · · · (4)其中

    M ∈ Rn×n →迭代矩阵, g ∈ Rn →常数项, x0 ∈ Rn →初始向量.

    雅克比迭代M = −D−1(L + U), g = D−1b

    高斯-赛德尔迭代

    M = −(D + L)−1U, g = (D + L)−1b

    张晓平 () 数值计算方法 November 21, 2013 65 / 152

  • 3.4 迭代法的收敛性

    定义

    Ax = b转换为等价方程组

    ===================⇒ x = Mx + g (3)则可得到迭代格式

    x(k+1) = Mx(k) + g, k = 0, 1, 2, · · · (4)其中

    M ∈ Rn×n →迭代矩阵, g ∈ Rn →常数项, x0 ∈ Rn →初始向量.

    定理

    迭代法(4)收敛的充分必要条件是

    ρ(M) < 1

    张晓平 () 数值计算方法 November 21, 2013 65 / 152

  • 3.4 迭代法的收敛性一般线性迭代法收敛的充分条件

    定理

    对于迭代格式x(k+1) = Mx(k) + g, k = 0, 1, · · · .

    若‖M‖ < 1,则该迭代格式收敛.

    张晓平 () 数值计算方法 November 21, 2013 66 / 152

  • 3.4 迭代法的收敛性一般线性迭代法收敛的充分条件

    用‖M‖ < 1作为收敛性的判别是方便的,但要注意这只是一个充分条件。判断一种迭代格式不收敛,需要用到谱半径。

    x = Mx + d, M =[

    0.8 00.5 0.7

    ], d =

    [11

    ]‖M‖1 = 1.3, ‖M‖2 = 1.09, ‖M‖∞ = 1.2

    虽然这些范数都大于1,但M的特征值为λ1 = 0.8, λ2 = 0.7,即ρ(M) = 0.8,于是此方程组的迭代法是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 67 / 152

  • 3.4 迭代法的收敛性一般线性迭代法收敛的充分条件

    用‖M‖ < 1作为收敛性的判别是方便的,但要注意这只是一个充分条件。判断一种迭代格式不收敛,需要用到谱半径。

    x = Mx + d, M =[

    0.8 00.5 0.7

    ], d =

    [11

    ]‖M‖1 = 1.3, ‖M‖2 = 1.09, ‖M‖∞ = 1.2

    虽然这些范数都大于1,但M的特征值为λ1 = 0.8, λ2 = 0.7,即ρ(M) = 0.8,于是此方程组的迭代法是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 67 / 152

  • 3.4 迭代法的收敛性一般线性迭代法收敛的充分条件

    用‖M‖ < 1作为收敛性的判别是方便的,但要注意这只是一个充分条件。判断一种迭代格式不收敛,需要用到谱半径。

    x = Mx + d, M =[

    0.8 00.5 0.7

    ], d =

    [11

    ]‖M‖1 = 1.3, ‖M‖2 = 1.09, ‖M‖∞ = 1.2

    虽然这些范数都大于1,但M的特征值为λ1 = 0.8, λ2 = 0.7,即ρ(M) = 0.8,于是此方程组的迭代法是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 67 / 152

  • 3.4 迭代法的收敛性一般线性迭代法收敛的充分条件

    用‖M‖ < 1作为收敛性的判别是方便的,但要注意这只是一个充分条件。判断一种迭代格式不收敛,需要用到谱半径。

    x = Mx + d, M =[

    0.8 00.5 0.7

    ], d =

    [11

    ]‖M‖1 = 1.3, ‖M‖2 = 1.09, ‖M‖∞ = 1.2

    虽然这些范数都大于1,但M的特征值为λ1 = 0.8, λ2 = 0.7,即ρ(M) = 0.8,于是此方程组的迭代法是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 67 / 152

  • 3.4 迭代法的收敛性

    定理

    对于严格对角占优矩阵,雅克比和高斯-赛德尔迭代法均收敛。

    定理

    对于对称正定矩阵,高斯-赛德尔迭代法均收敛。

    定理

    超松弛迭代法收敛 =⇒ 0 < ω < 2.

    定理

    对于对称正定矩阵,当0 < ω < 2时超松弛迭代法收敛。

    张晓平 () 数值计算方法 November 21, 2013 68 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 69 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法4.1 不动点迭代法4.2 牛顿迭代法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 70 / 152

  • 4.1 不动点迭代法

    求f (x) = 0, (1)

    在隔根区间[a, b]上的一个近似根。

    将(1)改写成等价形式x = ϕ(x). (2)

    为了求得(1)的根,可由(2)构造迭代序列

    x1 = ϕ(x0),x2 = ϕ(x1),

    ...

    xk+1 = ϕ(xk),...

    该方法成为迭代法,ϕ(x)称为迭代函数。张晓平 () 数值计算方法 November 21, 2013 71 / 152

  • 4.1 不动点迭代法

    求f (x) = 0, (1)

    在隔根区间[a, b]上的一个近似根。

    将(1)改写成等价形式x = ϕ(x). (2)

    为了求得(1)的根,可由(2)构造迭代序列

    x1 = ϕ(x0),x2 = ϕ(x1),

    ...

    xk+1 = ϕ(xk),...

    该方法成为迭代法,ϕ(x)称为迭代函数。张晓平 () 数值计算方法 November 21, 2013 71 / 152

  • 4.1 不动点迭代法

    求f (x) = 0, (1)

    在隔根区间[a, b]上的一个近似根。

    将(1)改写成等价形式x = ϕ(x). (2)

    为了求得(1)的根,可由(2)构造迭代序列

    x1 = ϕ(x0),x2 = ϕ(x1),

    ...

    xk+1 = ϕ(xk),...

    该方法成为迭代法,ϕ(x)称为迭代函数。张晓平 () 数值计算方法 November 21, 2013 71 / 152

  • 4.1 不动点迭代法

    求f (x) = 0, (1)

    在隔根区间[a, b]上的一个近似根。

    将(1)改写成等价形式x = ϕ(x). (2)

    为了求得(1)的根,可由(2)构造迭代序列

    x1 = ϕ(x0),x2 = ϕ(x1),

    ...

    xk+1 = ϕ(xk),...

    该方法成为迭代法,ϕ(x)称为迭代函数。张晓平 () 数值计算方法 November 21, 2013 71 / 152

  • 若由迭代法产生的序列{xk}的极限存在,即

    limk→∞

    xk = x?,

    则称迭代法收敛,否则称迭代法发散。

    张晓平 () 数值计算方法 November 21, 2013 72 / 152

  • 已知10x − x − 2 = 0在[0.3, 0.4]内有一个根,用两种不同的迭代公式,

    (1) xk+1 = 10xk − 2(2) xk+1 = log(xk + 2)

    Table: 计算结果

    k 迭代格式(1) 迭代格式(2)0 x0 = 0.3 x0 = 0.31 x1 = −0.0047 x1 = 0.36172 x2 = −1.0108 x2 = 0.37323 x3 = 0.37534 x4 = 0.3757

    张晓平 () 数值计算方法 November 21, 2013 73 / 152

  • 已知10x − x − 2 = 0在[0.3, 0.4]内有一个根,用两种不同的迭代公式,

    (1) xk+1 = 10xk − 2(2) xk+1 = log(xk + 2)

    Table: 计算结果

    k 迭代格式(1) 迭代格式(2)0 x0 = 0.3 x0 = 0.31 x1 = −0.0047 x1 = 0.36172 x2 = −1.0108 x2 = 0.37323 x3 = 0.37534 x4 = 0.3757

    张晓平 () 数值计算方法 November 21, 2013 73 / 152

  • 定理

    设有方程x = ϕ(x),若

    (1) 当x ∈ [a, b]时,ϕ(x) ∈ [a, b](2) ϕ(x)在[a, b]上可导,且有|ϕ′(x)| ≤ L < 1, x ∈ [a, b]则

    (1) x = ϕ(x)存在惟一解x?

    (2) 对任意初值x0 ∈ [a, b],迭代公式

    xk+1 = ϕ(xk), k = 0, 1, 2, · · ·

    产生的数列{xk}收敛于方程的惟一根x?,即 limk→∞ xk = x?

    (3) 误差估计

    |xk − x?| ≤Lk

    1 − L |x1 − x0|

    张晓平 () 数值计算方法 November 21, 2013 74 / 152

  • 定理

    设有方程x = ϕ(x),若

    (1) 当x ∈ [a, b]时,ϕ(x) ∈ [a, b](2) ϕ(x)在[a, b]上可导,且有|ϕ′(x)| ≤ L < 1, x ∈ [a, b]则

    (1) x = ϕ(x)存在惟一解x?

    (2) 对任意初值x0 ∈ [a, b],迭代公式

    xk+1 = ϕ(xk), k = 0, 1, 2, · · ·

    产生的数列{xk}收敛于方程的惟一根x?,即 limk→∞ xk = x?

    (3) 误差估计

    |xk − x?| ≤Lk

    1 − L |x1 − x0|

    张晓平 () 数值计算方法 November 21, 2013 74 / 152

  • 利用

    |xk − x?| ≤Lk

    1 − L |x1 − x0|,

    可用于

    估计迭代k次时的误差

    估计达到给定精度要求�时,所需迭代的次数k

    若欲使|xk − x?| ≤ �,只要

    Lk

    1 − L |x1 − x0| ≤ � =⇒ k >ln �(1−L)|x1−x0 |

    ln L

    张晓平 () 数值计算方法 November 21, 2013 75 / 152

  • 利用

    |xk − x?| ≤Lk

    1 − L |x1 − x0|,

    可用于

    估计迭代k次时的误差

    估计达到给定精度要求�时,所需迭代的次数k

    若欲使|xk − x?| ≤ �,只要

    Lk

    1 − L |x1 − x0| ≤ � =⇒ k >ln �(1−L)|x1−x0 |

    ln L

    张晓平 () 数值计算方法 November 21, 2013 75 / 152

  • 利用

    |xk − x?| ≤Lk

    1 − L |x1 − x0|,

    可用于

    估计迭代k次时的误差

    估计达到给定精度要求�时,所需迭代的次数k

    若欲使|xk − x?| ≤ �,只要

    Lk

    1 − L |x1 − x0| ≤ � =⇒ k >ln �(1−L)|x1−x0 |

    ln L

    张晓平 () 数值计算方法 November 21, 2013 75 / 152

  • 4.1 不动点迭代法局部收敛性

    定理 (设x?是方程x = ϕ(x)的根)条件:

    ϕ′(x)在x?的某一邻域连续

    |ϕ′(x?)| < 1结论:

    ∃x?的一个邻域S = {x : |x − x?| ≤ δ},∀x0 ∈ S,迭代公式

    xk+1 = ϕ(xk), k = 0, 1, 2, · · ·

    产生的数列{xk}收敛于方程的根x?。

    张晓平 () 数值计算方法 November 21, 2013 76 / 152

  • 求 f (x) = 2x − log x − 7 = 0的最大根,要求精度为10−4。

    y

    x0 1 2 3 4 5

    y = lg x

    y = 2x − 7

    x?

    张晓平 () 数值计算方法 November 21, 2013 77 / 152

  • 求 f (x) = 2x − log x − 7 = 0的最大根,要求精度为10−4。

    y

    x0 1 2 3 4 5

    y = lg x

    y = 2x − 7

    x?

    张晓平 () 数值计算方法 November 21, 2013 77 / 152

  • (1) 等价方程为2x − 7 = log x

    由示意图知方程的最大根在[3.5, 4]内。

    张晓平 () 数值计算方法 November 21, 2013 78 / 152

  • 解 (续)(2) 建立迭代公式,判别收敛性

    将方程等价变形为

    x =12

    (log x + 7)

    迭代公式为

    xk+1 =12

    (log xk + 7)

    因ϕ′(x) = 12 ln 10 ·1x,故ϕ(x)在[3.5, 4]内可导。因ϕ(x)在[3.5, 4]内为增

    函数,且ϕ(3.5) ≈ 3.77, ϕ(4) ≈ 3.80

    故当x ∈ [3.5, 4]时,ϕ(x) ∈ [3.5, 4]。因为

    L = max |ϕ′(x)| ≈ ϕ′(3.5) ≈ 0.06 < 1

    故迭代法收敛。

    张晓平 () 数值计算方法 November 21, 2013 79 / 152

  • 解 (续)(2) 建立迭代公式,判别收敛性

    将方程等价变形为

    x =12

    (log x + 7)

    迭代公式为

    xk+1 =12

    (log xk + 7)

    因ϕ′(x) = 12 ln 10 ·1x,故ϕ(x)在[3.5, 4]内可导。因ϕ(x)在[3.5, 4]内为增

    函数,且ϕ(3.5) ≈ 3.77, ϕ(4) ≈ 3.80

    故当x ∈ [3.5, 4]时,ϕ(x) ∈ [3.5, 4]。因为

    L = max |ϕ′(x)| ≈ ϕ′(3.5) ≈ 0.06 < 1

    故迭代法收敛。

    张晓平 () 数值计算方法 November 21, 2013 79 / 152

  • 解 (续)(3) 计算

    取x0 = 3.5,有

    x1 = 12 (log x0 + 7) ≈ 3.78989,x2 = 12 (log x1 + 7) ≈ 3.78931,x3 = 12 (log x2 + 7) ≈ 3.78928.

    因为|x3 − x2| ≤ 10−4,故方程的最大根为

    x? ≈ x3 = 3.789.

    张晓平 () 数值计算方法 November 21, 2013 80 / 152

  • 用迭代法求x3 − x2 − 1 = 0在隔根区间[1.4, 1.5]内的根,要求精确到小数点后第4位。

    (1) 构造迭代公式

    方程的等价形式为x = (x2 + 1)1/3 = ϕ(x)

    迭代公式为xk+1 = (x2k + 1)

    1/3

    张晓平 () 数值计算方法 November 21, 2013 81 / 152

  • 用迭代法求x3 − x2 − 1 = 0在隔根区间[1.4, 1.5]内的根,要求精确到小数点后第4位。

    (1) 构造迭代公式

    方程的等价形式为x = (x2 + 1)1/3 = ϕ(x)

    迭代公式为xk+1 = (x2k + 1)

    1/3

    张晓平 () 数值计算方法 November 21, 2013 81 / 152

  • 解 (续)(2) 判断迭代法的收敛性

    ϕ′(x) =2x

    3(x2 + 1)2/3

    因ϕ(x)在区间[1.4, 1.5]内可导,且

    |ϕ′(x)| ≤ 0.5 < 1

    故迭代法收敛

    张晓平 () 数值计算方法 November 21, 2013 82 / 152

  • 解 (续)(3) 计算结果

    k xk |xk+1 − xk| ≤ 12 × 10−40 x0 = 1.51 x1 = 1.4812480 |x1 − x0| ≈ 0.022 x2 = 1.4727057 |x2 − x1| ≈ 0.0093 x3 = 1.4688173 |x2 − x1| ≈ 0.0044 x4 = 1.4670480 |x2 − x1| ≈ 0.0025 x5 = 1.4662430 |x2 − x1| ≈ 0.00096 x6 = 1.4658786 |x2 − x1| ≈ 0.00047 x7 = 1.4657020 |x2 − x1| ≈ 0.00028 x8 = 1.4656344 |x2 − x1| ≈ 0.000079 x9 = 1.4656000 |x2 − x1| ≤ 12 × 10−4

    张晓平 () 数值计算方法 November 21, 2013 83 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法4.1 不动点迭代法4.2 牛顿迭代法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 84 / 152

  • 4.2 牛顿迭代法

    定义 (牛顿迭代公式)

    xn+1 = xn −f (xn)f ′(xn)

    , n = 0, 1, 2, · · · . (5)

    张晓平 () 数值计算方法 November 21, 2013 85 / 152

  • 4.2 牛顿迭代法

    定理 (局部收敛性定理)设x?为 f (x) = 0的根,若

    1 f (x)在x?的邻域内有连续的二阶导数

    2 在x?的邻域内 f ′(x) , 0

    则∃S = {x| |x− x?| ≤ δ}, s.t. ∀x0 ∈ S,牛顿迭代所产生的数列收敛到x?。

    张晓平 () 数值计算方法 November 21, 2013 86 / 152

  • 4.2 牛顿迭代法

    定理

    设x?为 f (x) = 0在[a, b]内的根,若

    ∀x ∈ [a, b], f ′(x), f ′′(x)连续且不变号选取x0 ∈ [a, b],使 f (x0) f ′′(x0) > 0

    则牛顿迭代所产生的数列收敛到x?。

    张晓平 () 数值计算方法 November 21, 2013 87 / 152

  • 4.2 牛顿迭代法初值的选取

    初值的选取

    若在x0处, f (x)满足

    [ f ′(x0)]2 >∣∣∣∣∣ f ′′(x0)2

    ∣∣∣∣∣ · | f (x0)| (∗)且 f ′(x0) , 0,就可用x0作为牛顿法的初值。

    张晓平 () 数值计算方法 November 21, 2013 88 / 152

  • 4.2 牛顿迭代法例题

    例 (1)用牛顿迭代法求解x3 − x2 − 1 = 0在[1.4, 1.5]内的根

    令 f (x) = x3 − x2 − 1

    (1) 牛顿迭代公式为xn+1 =2x3n − x2n + 1

    3x2n − 2xn(2) 判断牛顿迭代法的收敛性

    f (1.4) ≈ −0.2, f (1.5) ≈ 0.2,f ′(x) = 3x2 − 2x > 0 (x ∈ [1.4, 1.5]),f ′′(x) = 6x − 2 > 0 (x ∈ [1.4, 1.5]),

    因为 f (1.5) f ′′(1.5) > 0,故可选取初值x0 = 1.5,此时牛顿迭代法收敛。张晓平 () 数值计算方法 November 21, 2013 89 / 152

  • 4.2 牛顿迭代法例题

    例 (1)用牛顿迭代法求解x3 − x2 − 1 = 0在[1.4, 1.5]内的根

    令 f (x) = x3 − x2 − 1

    (1) 牛顿迭代公式为xn+1 =2x3n − x2n + 1

    3x2n − 2xn(2) 判断牛顿迭代法的收敛性

    f (1.4) ≈ −0.2, f (1.5) ≈ 0.2,f ′(x) = 3x2 − 2x > 0 (x ∈ [1.4, 1.5]),f ′′(x) = 6x − 2 > 0 (x ∈ [1.4, 1.5]),

    因为 f (1.5) f ′′(1.5) > 0,故可选取初值x0 = 1.5,此时牛顿迭代法收敛。张晓平 () 数值计算方法 November 21, 2013 89 / 152

  • 4.2 牛顿迭代法例题

    Table: 计算结果

    n xn |xn+1 − xn| ≤ 12 × 10−40 x0 = 1.5

    1 x1 = 1.466667 |x2 − x1| ≈ 0.042 x2 = 1.465572 |x3 − x2| ≈ 0.0023 x3 = 1.465571 |x4 − x3| ≤ 12 × 10−4

    张晓平 () 数值计算方法 November 21, 2013 90 / 152

  • 4.2 牛顿迭代法例题

    例 (2)用牛顿法求方程

    f (x) = x41 + x3 + 1 = 0

    在x0 = −1附近的实根,精确到小数点后第4位。

    (1) 牛顿迭代公式为

    xn+1 = xn −x41n + x

    3n + 1

    41x40n + 3x2n(2) 判断收敛性

    f ′(x) = 41x40 + 3x2, 12 f′′(x) = 820x39 + 3x,

    f (−1) = −1, f ′(−1) = 44, 12 f ′′(−1) = −823,[ f ′(−1)]2 = 442 = 1936 > |12 f ′′(−1)| · | f (−1)| = 823

    故可取x0 = −1为初始值。张晓平 () 数值计算方法 November 21, 2013 91 / 152

  • 4.2 牛顿迭代法例题

    例 (2)用牛顿法求方程

    f (x) = x41 + x3 + 1 = 0

    在x0 = −1附近的实根,精确到小数点后第4位。

    (1) 牛顿迭代公式为

    xn+1 = xn −x41n + x

    3n + 1

    41x40n + 3x2n(2) 判断收敛性

    f ′(x) = 41x40 + 3x2, 12 f′′(x) = 820x39 + 3x,

    f (−1) = −1, f ′(−1) = 44, 12 f ′′(−1) = −823,[ f ′(−1)]2 = 442 = 1936 > |12 f ′′(−1)| · | f (−1)| = 823

    故可取x0 = −1为初始值。张晓平 () 数值计算方法 November 21, 2013 91 / 152

  • 4.2 牛顿迭代法例题

    Table: 计算结果

    n xn

    0 x0 = −11 x1 = −0.97732 x2 = −0.96053 x3 = −0.95254 x4 = −0.9525

    张晓平 () 数值计算方法 November 21, 2013 92 / 152

  • 4.2 牛顿迭代法例题

    例 (3)

    用牛顿法建立计算√

    C(C > 0)近似值的迭代公式。

    x =√

    C =⇒ f (x) = x2 −C = 0

    (1) 牛顿迭代公式为

    xn+1 = xn −x2n −C

    2xn=

    12

    (xn +

    Cxn

    )(2) 收敛性判别

    当x > 0时, f ′(x) > 0, f ′′ = 2 > 0,故任意选取x0 >√

    C作为初值,迭代序列必收敛到

    √C,故迭代公式是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 93 / 152

  • 4.2 牛顿迭代法例题

    例 (3)

    用牛顿法建立计算√

    C(C > 0)近似值的迭代公式。

    x =√

    C =⇒ f (x) = x2 −C = 0

    (1) 牛顿迭代公式为

    xn+1 = xn −x2n −C

    2xn=

    12

    (xn +

    Cxn

    )(2) 收敛性判别

    当x > 0时, f ′(x) > 0, f ′′ = 2 > 0,故任意选取x0 >√

    C作为初值,迭代序列必收敛到

    √C,故迭代公式是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 93 / 152

  • 4.2 牛顿迭代法例题

    例 (3)

    用牛顿法建立计算√

    C(C > 0)近似值的迭代公式。

    x =√

    C =⇒ f (x) = x2 −C = 0

    (1) 牛顿迭代公式为

    xn+1 = xn −x2n −C

    2xn=

    12

    (xn +

    Cxn

    )(2) 收敛性判别

    当x > 0时, f ′(x) > 0, f ′′ = 2 > 0,故任意选取x0 >√

    C作为初值,迭代序列必收敛到

    √C,故迭代公式是收敛的。

    张晓平 () 数值计算方法 November 21, 2013 93 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    图: 用牛顿法求√

    2 图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0

    图: 用牛顿法求√

    2 图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2 图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2 图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2

    y

    x

    y = x2 − 2

    x?

    图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2

    y

    x

    y = x2 − 2

    x?

    x0

    图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 4.2 牛顿迭代法

    y

    x

    y = x2 − 2

    x?

    x0x1

    图: 用牛顿法求√

    2

    y

    x

    y = x2 − 2

    x?

    x0x1x2

    图: 用牛顿法求√

    2(局部放大)

    张晓平 () 数值计算方法 November 21, 2013 94 / 152

  • 迭代法的收敛阶

    定义 (迭代法的收敛阶)设数列{xn}收敛于x?,令误差en = xn − x?,若存在某个实数p ≥ 1及常数C > 0使得

    limn→∞

    |en+1||en|p

    = C

    则称数列{xn}为p阶收敛,相应的迭代法是p阶方法。线性收敛:p = 1且0 < C < 1

    平方收敛:p = 2

    超线性收敛:p > 1

    p越大,数列收敛越快。故迭代法的收敛阶是对迭代法收敛速度的一种度量。

    张晓平 () 数值计算方法 November 21, 2013 95 / 152

  • 迭代法的收敛阶

    定义 (迭代法的收敛阶)设数列{xn}收敛于x?,令误差en = xn − x?,若存在某个实数p ≥ 1及常数C > 0使得

    limn→∞

    |en+1||en|p

    = C

    则称数列{xn}为p阶收敛,相应的迭代法是p阶方法。线性收敛:p = 1且0 < C < 1

    平方收敛:p = 2

    超线性收敛:p > 1

    p越大,数列收敛越快。故迭代法的收敛阶是对迭代法收敛速度的一种度量。

    张晓平 () 数值计算方法 November 21, 2013 95 / 152

  • 迭代法的收敛阶

    定理

    (1) 若在根x?的某个领域内有ϕ′(x) , 0,则不动点迭代法线性收敛

    (2) 若在根x?的某个领域内连续,且有

    ϕ′(x?) = · · · = ϕ(p−1)(x?) = 0

    而ϕ(p)(x?) , 0,则不动点迭代法p阶收敛

    (3) 牛顿迭代法平方收敛

    张晓平 () 数值计算方法 November 21, 2013 96 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 97 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值5.1 Lagrange插值5.1 牛顿插值公式

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 98 / 152

  • 5.1 Lagrange插值

    设y = f (x)在n + 1个节点x0 < x1 < · · · < xn处的函数值 f (xk) = yk (k = 0, · · · , n)。

    现要作一个n次插值多项式Ln(x),使其满足插值条件

    Ln(xi) = yi (i = 0, 1, 2, · · · , n).

    f (x)的n次Lagrange插值多项式

    Ln(x) =n∑

    k=0

    yklk(x)

    其中

    lk(x) =n∏

    i=0i,k

    (x − xi)(xk − xi)

    张晓平 () 数值计算方法 November 21, 2013 99 / 152

  • 5.1 Lagrange插值

    定理

    条件:

    1 f (n)(x)在[x0, xn]上连续

    2 f (n+1)(x)在(x0, xn)内存在

    3 Ln是满足线性插值条件的插值多项式

    结论

    Rn(x) = f (x) − Ln(x) =f (n+1)(ξ)(n + 1)!

    ωn+1(x),

    其中ξ ∈ (x0, xn),且依赖于x,而

    ωn+1(x) = (x − x0)(x − x1) · · · (x − xn),

    张晓平 () 数值计算方法 November 21, 2013 100 / 152

  • 5.1 Lagrange插值

    已知e−x在x = 1, 2, 3点的值由下表给出。试分别用线性插值与二次插值计算e−2.1的近似值,并进行误差估计。

    x 1 2 3e−x 0.367879441 0.135335283 0.049787068

    张晓平 () 数值计算方法 November 21, 2013 101 / 152

  • 5.1 Lagrange插值

    已知e−x在x = 1, 2, 3点的值由下表给出。试分别用线性插值与二次插值计算e−2.1的近似值,并进行误差估计。

    x 1 2 3e−x 0.367879441 0.135335283 0.049787068

    线性插值:取x0 = 2, x1 = 3, x = 2.1,代入一次插值公式

    L1(2.1) = 0.135335283 ×2.1 − 32 − 3 + 0.049787068 ×

    2.1 − 23 − 2 = 0.12678046

    张晓平 () 数值计算方法 November 21, 2013 101 / 152

  • 5.1 Lagrange插值

    已知e−x在x = 1, 2, 3点的值由下表给出。试分别用线性插值与二次插值计算e−2.1的近似值,并进行误差估计。

    x 1 2 3e−x 0.367879441 0.135335283 0.049787068

    二次插值:取x0 = 1, x1 = 2, x2 = 3, x = 2.1,代入二次插值公式

    L2(2.1) = 0.367879441 ×(2.1 − 2)(2.1 − 3)

    (1 − 2)(1 − 3) + 0.135335283 ×(2.1 − 1)(2.1 − 3)

    (2 − 1)(2 − 3)+0.049787068 × (2.1 − 1)(2.1 − 2)

    (3 − 1)(3 − 2) = 0.120165644

    张晓平 () 数值计算方法 November 21, 2013 101 / 152

  • 5.1 Lagrange插值

    已知e−x在x = 1, 2, 3点的值由下表给出。试分别用线性插值与二次插值计算e−2.1的近似值,并进行误差估计。

    x 1 2 3e−x 0.367879441 0.135335283 0.049787068

    注意到e−x的递减性,有

    |R1(2.1)| ≤e−2

    2!|(2.1 − 2)(2.1 − 3)| ≈ 0.00609009

    |R2(2.1)| ≤e−1

    3!|(2.1 − 1)(2.1 − 2)(2.1 − 3)| ≈ 0.006070091

    张晓平 () 数值计算方法 November 21, 2013 101 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值5.1 Lagrange插值5.1 牛顿插值公式

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法张晓平 () 数值计算方法 November 21, 2013 102 / 152

  • 5 插值5.1 牛顿插值公式

    Table: 差商表

    xi f (xi) 一阶差商 二阶差商 三阶差商 四阶差商x0 f (x0)

    x1 f (x1) f [x0, x1]

    x2 f (x2) f [x1, x2] f [x0, x1, x2]

    x3 f (x3) f [x2, x3] f [x1, x2, x3] f [x0, x1, x2, x3]

    x4 f (x4) f [x3, x4] f [x2, x3, x4] f [x1, x2, x3, x4] f [x0, x1, x2, x3, x4]

    ......

    ......

    ......

    张晓平 () 数值计算方法 November 21, 2013 103 / 152

  • 5 插值5.1 牛顿插值公式

    定义 (牛顿插值公式)

    f (x) = Nn(x) + R̃n(x)

    其中

    Nn(x) = f (x0)+

    f [x0, x1](x − x0)+f [x0, x1, x2](x − x0)(x − x1) + · · ·+f [x0, x1, · · · , xn](x − x0)(x − x1) · · · (x − xn−1)

    R̃n(x) = f [x, x0, x1, · · · , xn](x − x0)(x − x1) · · · (x − xn).

    张晓平 () 数值计算方法 November 21, 2013 104 / 152

  • 5 插值5.1 牛顿插值公式

    已知一组观察数据为

    i 0 1 2 3xi 1 2 3 4yi 0 -5 -6 3

    试用此组数据构造3次牛顿插值多项式N3(x),并计算N3(1.5)的值

    张晓平 () 数值计算方法 November 21, 2013 105 / 152

  • 5 插值5.1 牛顿插值公式

    差商表为

    xi yi 一阶差商 二阶差商 三阶差商1 02 -5 -53 -6 -1 24 3 9 5 1

    N3(x) = 0−5(x − 1) + 2(x − 1)(x − 2) + (x − 1)(x − 2)(x − 3) = x3 − 4x2 + 3

    N3(1.5) = −2.65

    张晓平 () 数值计算方法 November 21, 2013 106 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6 曲线拟合

    7 7 数值积分

    8 8. 常微分方程的数值解法

    张晓平 () 数值计算方法 November 21, 2013 107 / 152

  • 6 曲线拟合

    练习

    通过实验获得数据如下

    xi 1 2 3 4 6 7 8yi 2 3 6 7 5 3 2

    试用最小二乘法求多项式曲线,使与此数据相拟合。

    张晓平 () 数值计算方法 November 21, 2013 108 / 152

  • 6 曲线拟合

    练习

    通过实验获得数据如下

    xi 1 2 3 4 6 7 8yi 2 3 6 7 5 3 2

    试用最小二乘法求多项式曲线,使与此数据相拟合。

    张晓平 () 数值计算方法 November 21, 2013 108 / 152

  • 6 曲线拟合

    1 确定近似表达式y = ϕ(x) = a0 + a1x + a2x2

    2 建立矛盾方程组

    1 1 11 2 41 3 91 4 161 6 361 7 491 8 64

    a0a1a2 =

    2367532

    张晓平 () 数值计算方法 November 21, 2013 109 / 152

  • 6 曲线拟合

    1 确定近似表达式y = ϕ(x) = a0 + a1x + a2x2

    2 建立矛盾方程组

    1 1 11 2 41 3 91 4 161 6 361 7 491 8 64

    a0a1a2 =

    2367532

    张晓平 () 数值计算方法 November 21, 2013 109 / 152

  • 6 曲线拟合

    3 得到法方程组

    1 1 1 1 1 1 11 2 3 4 6 7 81 4 9 16 36 49 64

    1 1 11 2 41 3 91 4 161 6 361 7 491 8 64

    a0a1a2

    =

    1 1 1 1 1 1 11 2 3 4 6 7 81 4 9 16 36 49 64

    2367532

    张晓平 () 数值计算方法 November 21, 2013 110 / 152

  • 6 曲线拟合

    4 求解法方程组 7 31 17931 179 1171179 1171 8147 a0a1a2

    = 28121635

    a0 = −1.3185, a1 = 3.4321, a2 = −0.3864故所求拟合曲线为

    y = ϕ(x) = −1.3185 + 3.4321x − 0.3864x2.

    张晓平 () 数值计算方法 November 21, 2013 111 / 152

  • 6 曲线拟合

    4 求解法方程组 7 31 17931 179 1171179 1171 8147 a0a1a2

    = 28121635

    a0 = −1.3185, a1 = 3.4321, a2 = −0.3864故所求拟合曲线为

    y = ϕ(x) = −1.3185 + 3.4321x − 0.3864x2.

    张晓平 () 数值计算方法 November 21, 2013 111 / 152

  • 6 曲线拟合

    4 求解法方程组 7 31 17931 179 1171179 1171 8147 a0a1a2

    = 28121635

    a0 = −1.3185, a1 = 3.4321, a2 = −0.3864故所求拟合曲线为

    y = ϕ(x) = −1.3185 + 3.4321x − 0.3864x2.

    张晓平 () 数值计算方法 November 21, 2013 111 / 152

  • 6 曲线拟合

    图: 曲线拟合

    张晓平 () 数值计算方法 November 21, 2013 112 / 152

  • 6 曲线拟合

    图: 曲线拟合

    张晓平 () 数值计算方法 November 21, 2013 112 / 152

  • 6 曲线拟合

    练习

    在一物理实验中,电压V与电流I的一组数据如下

    V 1 2 3 4 5 6 7 8I 1.53 2.05 2.74 3.66 4.91 6.56 8.78 11.76

    试用最小二乘法求最佳拟合函数。

    张晓平 () 数值计算方法 November 21, 2013 113 / 152

  • 6 曲线拟合

    练习

    在一物理实验中,电压V与电流I的一组数据如下

    V 1 2 3 4 5 6 7 8I 1.53 2.05 2.74 3.66 4.91 6.56 8.78 11.76

    试用最小二乘法求最佳拟合函数。

    张晓平 () 数值计算方法 November 21, 2013 113 / 152

  • 6 曲线拟合

    1 确定近似表达式I = aebV ⇒ ln I = ln a + bV

    V 1 2 3 4 5 6 7 8I 1.53 2.05 2.74 3.66 4.91 6.56 8.78 11.76

    V 1 2 3 4 5 6 7 8ln I 0.43 0.72 1.01 1.30 1.59 1.88 2.17 2.46

    张晓平 () 数值计算方法 November 21, 2013 114 / 152

  • 6 曲线拟合

    1 确定近似表达式I = aebV ⇒ ln I = ln a + bV

    V 1 2 3 4 5 6 7 8I 1.53 2.05 2.74 3.66 4.91 6.56 8.78 11.76

    V 1 2 3 4 5 6 7 8ln I 0.43 0.72 1.01 1.30 1.59 1.88 2.17 2.46

    张晓平 () 数值计算方法 November 21, 2013 114 / 152

  • 6 曲线拟合

    2 建立矛盾方程组

    1 11 21 31 41 51 61 71 8

    (ln ab

    )=

    0.430.721.011.301.591.882.172.46

    张晓平 () 数值计算方法 November 21, 2013 115 / 152

  • 6 曲线拟合

    3 得到法方程组

    (1 1 1 1 1 1 1 11 2 3 5 4 6 7 8

    )

    1 11 21 31 41 61 71 8

    (

    ln ab

    )

    =

    (1 1 1 1 1 1 1 11 2 3 5 4 6 7 8

    )

    2.73.03.33.63.94.24.54.8

    张晓平 () 数值计算方法 November 21, 2013 116 / 152

  • 6 曲线拟合

    4 求解法方程组 (8 36

    36 204

    ) (ln ab

    )=

    (29.9787

    147.1350

    )得

    ln a = 0.1343 ⇒ a = 1.14393b = 0.2912

    故所求拟合曲线为I = 1.14393e0.2912V

    张晓平 () 数值计算方法 November 21, 2013 117 / 152

  • 6 曲线拟合

    4 求解法方程组 (8 36

    36 204

    ) (ln ab

    )=

    (29.9787

    147.1350

    )得

    ln a = 0.1343 ⇒ a = 1.14393b = 0.2912

    故所求拟合曲线为I = 1.14393e0.2912V

    张晓平 () 数值计算方法 November 21, 2013 117 / 152

  • 6 曲线拟合

    4 求解法方程组 (8 36

    36 204

    ) (ln ab

    )=

    (29.9787

    147.1350

    )得

    ln a = 0.1343 ⇒ a = 1.14393b = 0.2912

    故所求拟合曲线为I = 1.14393e0.2912V

    张晓平 () 数值计算方法 November 21, 2013 117 / 152

  • 6 曲线拟合

    图: 曲线拟合

    张晓平 () 数值计算方法 November 21, 2013 118 / 152

  • 6 曲线拟合

    图: 曲线拟合

    张晓平 () 数值计算方法 November 21, 2013 118 / 152

  • 1 1 范数、谱半径与条件数

    2 2 解线性方程组的直接法

    3 3. 解线性方程组的迭代法

    4 4 非线性方程的数值解法

    5 5 插值

    6 6