数值计算,即数值分析,是一门研究各种数学问题数值解法及其理论的学科。在实际中,当精确解析法难以求解数学问题时,数值计算发挥重要作用。它涵盖函数逼近与插值、数值积分与微分、线性方程组求解、非线性方程(组)求解以及常微分方程初值问题数值解法等方面。通过各种特定的方法,如插值法、最小二乘法、梯形法、辛普森法、高斯消元法、迭代法、牛顿法、欧拉法、龙格 - 库塔法等,为科学与工程领域,包括物理学、工程学、计算机科学、经济学等提供强大的解决复杂实际问题的工具,进行模拟、预测和优化。
课程章节
- CH1 数值计算方法绪论。
- CH2 插值法。
- CH3 函数逼近与曲线拟合。
- CH4 数值积分与数值微分。
- CH5 线性方程组的直接解法。
- CH6 线性方程组的迭代解法。
- CH7 非线性方程(组)的数值解法。
- CH8 常微分方程初值问题数值解法。
- CH9 深度学习中的数值问题。
![数值计算上_1731553895253]()
# 误差
在数值计算中可能产生的误差主要有:
在数值计算中将着重研究 截断误差、舍入误差,并对它们的传播与积累作出分析
# 绝对误差
近似值:x∗ ;准确值:x
绝对误差:近似值与准确值之差
e∗=x∗−x
绝对误差限:误差绝对值的上界
\begin{align} |e^*|&=|x^*-x|\le \epsilon^*\\ x&= x^*\pm \epsilon^* \end{align}
# 相对误差
相对误差:误差与准确值的比值
er∗=xe∗≈x∗e∗=x∗x∗−x
相对误差限:相对误差绝对值的上界 ϵr∗ , 即 ∣er∗∣≤ϵr∗
ϵr∗=∣x∗∣ϵ∗
ϵ∗ 是绝对误差限
# 有效数字
一、有效数字的定义
在数值计算中,若一个近似值 x 的误差限是其某一位上的 半个单位
,且从该位到 x 的左边第一个非零数字一共有 n 位,则称近似值 x 有 n 位有效数字。
例如,取圆周率 π 的近似值为 3.14,它的误差限不超过 0.005,从左边第一个非零数字 3 到最后一位数字 4 一共有三位,则近似值 3.14 有三位有效数字。
二、有效数字和相对误差限的关系
设近似值 x 表示为 x=±0.a1a2⋯an×10m,其中 a1,a2,⋯,an 是 0 到 9 中的数字,a1=0,m 为整数。若 x 有 n 位有效数字,则其相对误差限为:
- δ≤2a11×10−(n−1)。
反过来,如果已知近似值 x 的相对误差限满足上述条件,也可以确定 x 具有 n 位有效数字。
举例说明:
若近似值 x=0.00324 有三位有效数字,从左边第一个非零数字 3 开始,到最后一位数字 4 一共有三位。此时 a1=3,n=3,代入相对误差限公式可得:
δ≤2×31×10−(3−1)=61×10−2=0.00167。
若已知一个近似值的相对误差限为 0.005,假设这个近似值为 x=±10m×0.a1a2⋯an×10m,根据相对误差限公式 δ≤2a11×10−(n−1),当 a1=1 时,0.005=2×11×10−(n−1),通过求解可得 n=2,即该近似值有两位有效数字。
# 病态问题和条件数
一、病态问题
当一个数学问题的解对数据的微小变化非常敏感时,就称这个问题为病态问题。
例如,考虑线性方程组 Ax=b,其中 A 是系数矩阵,x 是未知向量,b 是右端项。如果系数矩阵 A 的微小变化会导致解 x 发生很大的变化,那么这个线性方程组就是病态的。
病态问题在实际计算中会带来很大的困难,因为数据的测量或计算过程中不可避免地会存在误差,而对于病态问题,这些误差可能会被极大地放大,使得计算结果的可靠性大大降低。
二、条件数
条件数是用来衡量一个问题病态程度的指标。
对于线性方程组Ax=b,矩阵 A 的条件数定义为condv=∥A∥v∥A−1∥v,其中 ∥⋅∥ 表示矩阵的v 范数.
- 条件数越大,说明问题越病态,解对数据的微小变化就越敏感。
- 条件数越小,问题的病态程度就越低,解相对比较稳定。
例如,当条件数非常大时,即使右端项 b 只有很小的误差,解 x 可能会产生很大的误差。而当条件数较小时,数据的微小误差对解的影响相对较小。
在数值计算中,了解问题的病态程度是非常重要的,可以通过分析条件数来判断问题是否病态,并采取相应的措施来减少误差的影响,比如使用更稳定的算法、提高数据的精度等。
矩阵为方阵且满秩则存在逆矩阵
- 计算函数值问题的条件数定义为:相对误差比值 ∣∣∣∣f(x)f(x)−f(x∗)∣∣∣∣/∣∣∣xΔx∣∣∣≈∣∣∣∣f(x)xf′(x)∣∣∣∣,记为 Cp。
- 如果条件数 Cp 很大,即使自变量相对误差一般不大,也会引起函数值相对误差很大。出现这种情况的问题被称为病态问题。
- 一般情况下,当条件数 Cp≥10 时,就认为是病态问题,并且条件数越大,病态越严重。
病态问题
- 病态问题在数值计算中会带来很大的挑战。因为在实际计算中,数据往往存在一定的误差,而对于病态问题,这些误差会被极大地放大,导致计算结果的可靠性降低。
- 为了应对病态问题,可以采取一些措施。例如,使用更稳定的算法、提高数据的精度、进行数据预处理以减少误差等。
- 在实际应用中,判断一个问题是否为病态问题是非常重要的。可以通过计算条件数来初步判断问题的病态程度。如果条件数较大,就需要更加谨慎地处理问题,以避免误差的过度放大。
- 不同的问题可能具有不同程度的病态性。有些问题可能在特定的参数范围内是病态的,而在其他参数范围内则是良态的。因此,在分析问题时,需要综合考虑各种因素,以确定问题的病态程度。
- 除了计算函数值问题,在其他数值计算问题中,也可以类似地定义条件数来衡量问题的病态程度。例如,在求解线性方程组、插值问题、数值积分等问题中,都可以通过分析条件数来判断问题的稳定性和可靠性。
additional : 数值稳定性
# 插值
# 拉格朗日插值
一、基本概念
给定 n+1 个互异的节点 (x0,y0),(x1,y1),⋯,(xn,yn),其中 xi 互不相同,yi 为对应的函数值。拉格朗日插值的目的是构造一个次数不超过 n 的多项式 Ln(x),使得在这些节点上,Ln(xi)=yi,即多项式在给定的节点处与函数值相等。
二、插值多项式的形式
拉格朗日插值多项式的形式为:
Ln(x)=i=0∑nyili(x)
其中 Li(x) 为拉格朗日基函数,定义为:
li(x)=j=0,j=i∏nxi−xjx−xj
定义 1:若 n 次多项式 lj(x)(j=0,1,⋯,n) 在 n+1 个节点 x0<x1<⋯<xn 上满足条件:
lj(xk)={1,0,k=j;k=j. (j,k=0,1,⋯,n) (2.7)
就称这 n+1 个 n 次多项式 l0(x),l1(x),⋯,ln(x) 为节点 x0,x1,⋯,xn 上的 n 次插值基函数。
三、计算步骤
- 确定插值节点:给定一组互异的节点 (x0,y0),(x1,y1),⋯,(xn,yn)。
- 计算拉格朗日基函数:对于每个 i,计算 Li(x)。
- 例如,当 n=2 时,假设有三个节点 (x0,y0),(x1,y1),(x2,y2),则:
- l0(x)=(x0−x1)(x0−x2)(x−x1)(x−x2);
- l1(x)=(x1−x0)(x1−x2)(x−x0)(x−x2);
- l2(x)=(x2−x0)(x2−x1)(x−x0)(x−x1)。
- 计算插值多项式:将节点的函数值 yi 和对应的基函数 Li(x) 代入插值多项式公式,得到 Ln(x)=∑i=0nyili(x)。
四、特点和应用
特点:
- 拉格朗日插值多项式在节点处与给定的函数值完全相等,具有较高的精度。
- 当节点增加时,需要重新计算整个插值多项式,计算量较大。
- 对于高次插值,可能会出现龙格现象,即在插值区间的两端,插值多项式的波动较大,与原函数的差异较大。
应用:
- 函数逼近:可以用拉格朗日插值多项式来逼近一个未知的函数。
- 数据拟合:当只有离散的数据点时,可以通过拉格朗日插值得到一个连续的函数表达式。
- 数值积分和数值微分:可以利用插值多项式进行数值积分和数值微分的计算。
例题
假设有三个数据点 (1,2)、(2,5)、(3,10),要求通过拉格朗日插值法构造一个插值多项式来逼近函数关系。
首先确定插值基函数:
- 对于三个节点,n=2。
- 当 j=0 时,x0=1,对应的基函数 l0(x)=(x0−x1)(x0−x2)(x−x1)(x−x2)=(1−2)(1−3)(x−2)(x−3)=2(x−2)(x−3).
- 当 j=1 时,x1=2,对应的基函数 l1(x)=(x1−x0)(x1−x2)(x−x0)(x−x2)=(2−1)(2−3)(x−1)(x−3)=(x−1)(x−3).
- 当 j=2 时,x2=3,对应的基函数 l2(x)=(x2−x0)(x2−x1)(x−x0)(x−x1)=(3−1)(3−2)(x−1)(x−2)=2(x−1)(x−2)。
然后构造插值多项式:
插值多项式为
L2(x)=y0l0(x)+y1l1(x)+y2l2(x)
已知 y0=2,y1=5,y2=10. 则
L2(x)=2×2(x−2)(x−3)+5×(x−1)(x−3)+10×2(x−1)(x−2).
化简可得:L2(x)=x2+2x−1。 这个插值多项式 L2(x) 在给定的三个节点处与函数值相等,即 L2(1)=2,L2(2)=5,L2(3)=10。它可以用来逼近这三个数据点所代表的函数关系。
事实上如果这是一个 2 次函数,则二次拉格朗日插值得到的就是 原函数
。
在拉格朗日插值中,利用余项表达式(2.12)可知,若被插函数 f(x)∈Hn,由于 f(n+1)(x)=0,故 Rn(x)=f(x)−Ln(x)=0,即它的插值多项式 Ln(x)=f(x)。
在拉格朗日插值中,插值余项与误差估计是评估插值效果的重要指标。
五、插值余项
若在区间 [a,b] 上用 Ln(x) 近似 f(x),则截断误差 Rn(x)=f(x)−Ln(x) 被称为插值多项式的余项。
六、误差估计
定理 2.red}:设 $f(x)$ 在 [a,b] 上连续,f(n+1)(x) 在 (a,b) 内存在,节点 a≤x0<x1<⋯<xn≤b,Ln(x) 是满足特定条件的插值多项式,则对任何 x∈[a,b],插值余项
Rn(x)=f(x)−Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x).
这里 ξ∈(a,b) 且依赖于 x,ωn+1(x)=∏j=0n(x−xj).
这个公式可以用来估计插值的误差。当 f(n+1)(x) 在区间上有界时,可以通过余项公式得到误差的上界。
- 例如,如果能确定 f(n+1)(x) 的一个上界 M,即对于所有的 x∈(a,b),有
∣f(n+1)(x)∣≤M
那么误差∣Rn(x)∣=∣(n+1)!f(n+1)(ξ)ωn+1(x)∣≤(n+1)!M∣ωn+1(x)∣.
从误差估计可以看出以下几点:
插值多项式的次数 n 越高,理论上误差可能会越小。因为分母 (n+1)! 随着 n 的增大而增大。
然而,在实际应用中,高次插值并不一定总是能得到更好的结果。这是因为高次插值可能会出现龙格现象,即在插值区间的两端,插值多项式的波动较大,与原函数的差异较大。
插值节点的分布也会影响误差。如果插值节点分布不均匀或者过于密集,可能会导致误差增大。
# 差商
一、定义
设有函数 f(x) 以及一系列互不相等的点 x0,x1,⋯,xn,则 f 在这些点处的一阶差商定义为:
f[xi,xi+1]=xi+1−xif(xi+1)−f(xi)
二阶差商定义为:
f[xi,xi+1,xi+2]=xi+2−xif[xi+1,xi+2]−f[xi,xi+1]
以此类推,n 阶差商定义为:
f[x0,x1,⋯,xn]=xn−x0f[x1,x2,⋯,xn]−f[x0,x1,⋯,xn−1]
二、性质
对称性:差商的值与节点的顺序无关。即对于任意的置换 σ,有 f[xσ(0),xσ(1),⋯,xσ(n)]=f[x0,x1,⋯,xn]。
可通过 差商表 计算:可以通过构造差商表来方便地计算高阶差商。差商表是一个二维表格,其中第一列是节点,其余列是对应节点的差商。从低阶到高阶逐步计算差商,可以提高计算效率。
若 f(x) 在 [a,b] 上存在 n 阶导数,且节点 x0,x1,⋯,xn∈[a,b],则 n 阶均差与导数关系如下:
f[x0,x1,⋯,xn]=n!f(n)(ξ),ξ∈[a,b].
这公式可直接用罗尔定理证明。
设 q(x)=f[x,x0,⋯,xn](x−x0)(x−x1)⋯(x−xn),q(x)
在 x0,⋯,xn 处均为零,所以 q(x) 在 [a,b] 上有 n+1 个零点。
根据罗尔定理,q′(x) 在 q(x) 的两个零点间至少有一个零点,故 q′(x) 在 [a,b] 内至少有 n 个零点;反复应用罗尔定理,可知 q(n)(x) 在 [a,b] 内至少有 1 个零点,记为 ξ∈[a,b],使
q(n)(ξ)=f(n)(ξ)−n!f[x0,⋯,xn]=0,
所以 f[x0,⋯,xn]=n!f(n)(ξ)。
三、应用
- 牛顿插值:差商在牛顿插值法中起着关键作用。牛顿插值多项式的形式为:
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)
通过差商可以确定插值多项式的系数,从而实现对函数的逼近。
- 数值微分:可以利用差商来近似计算函数的导数。例如,一阶导数可以近似为一阶差商,即 f′(x)≈hf(x+h)−f(x),其中 h 是一个小的增量。
四、差商表计算
以下是升序下标的差商表示例:
xk | f(xk) | 一阶差商 | 二阶差商 | 三阶差商 | 四阶差商 | ⋯ | n 阶差商 |
---|
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] | ⋯ | |
⋯ | ⋯ | ⋯ | ⋯ | ⋯ | ⋯ | ⋯ | ⋯ |
xn | f(xn) | f[xn−1,xn] | f[xn−2,xn−1,xn] | f[xn−3,xn−2,xn−1,xn] | f[xn−4,xn−3,xn−2,xn−1,xn] | ⋯ | f[x0,x1,⋯,xn] |
其中一阶差商计算公式为:
f[xi,xi+1]=xi+1−xif(xi+1)−f(xi);
二阶差商计算公式为:f[xi,xi+1,xi+2]=xi+2−xif[xi+1,xi+2]−f[xi,xi+1],
以此类推,n 阶差商计算公式为:f[x0,x1,⋯,xn]=xn−x0f[x1,x2,⋯,xn]−f[x0,x1,⋯,xn−1]。
# 牛顿插值
牛顿插值法是一种数值插值方法,它通过差商来构建插值多项式。与拉格朗日插值法不同,牛顿插值法在增加新的插值节点时,不需要重新计算整个插值多项式,只需要计算新节点对应的差商项并加入到原有的多项式中即可。
- 牛顿插值多项式的形式
- 设给定 n+1 个互异的节点 (x0,y0),(x1,y1),⋯,(xn,yn),牛顿插值多项式 为:
- 首先计算差商表:从一阶差商开始,逐步计算高阶差商,形成一个差商表。
- 然后根据差商表中的数据构建牛顿插值多项式:从最低阶的项开始,依次加入高阶差商项,直到得到所需的插值多项式。
以下是通过差商表达式迭代推出牛顿插值公式的过程:
- 首先从一阶差商开始:
- 已知 f[x,x0]=x−x0f(x)−f(x0),变形可得 f(x)=f(x0)+f[x,x0](x−x0)。
接着引入二阶差商:
- f[x,x0,x1]=x−x1f[x,x0]−f[x0,x1],将 f[x,x0]=x−x0f(x)−f(x0) 代入可得:
- f[x,x0,x1]=x−x1x−x0f(x)−f(x0)−f[x0,x1]=(x−x0)(x−x1)f(x)−f(x0)−(x−x0)f[x0,x1]。
- 进一步变形得到 f(x)=f(x0)+f[x0,x1](x−x0)+f[x,x0,x1](x−x0)(x−x1)。
然后引入三阶差商:
- f[x,x0,x1,x2]=x−x2f[x,x0,x1]−f[x0,x1,x2],把前面得到的 f[x,x0,x1] 表达式代入可得:
- f[x,x0,x1,x2]=x−x2(x−x0)(x−x1)f(x)−f(x0)−(x−x0)f[x0,x1]−f[x0,x1,x2]=(x−x0)(x−x1)(x−x2)f(x)−f(x0)−(x−x0)f[x0,x1]−(x−x0)(x−x1)f[x0,x1,x2]。
- 进而得到 f(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+f[x,x0,x1,x2](x−x0)(x−x1)(x−x2)。
以此类推:
- 最终可以得到牛顿插值公式
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)
已知三个数据点 (1,2)、(2,5)、(3,10),求牛顿插值多项式。
- 计算差商表:
- 首先列出数据点:
- 计算一阶差商:
- f[x0,x1]=x1−x0f(x1)−f(x0)=2−15−2=3。
- f[x1,x2]=x2−x1f(x2)−f(x1)=3−210−5=5。
- 计算二阶差商:
- f[x0,x1,x2]=x2−x0f[x1,x2]−f[x0,x1]=3−15−3=1。
差商表如下:
x | y | 一阶差商 | 二阶差商 |
---|
x0=1 | y0=1 | | |
x1=2 | y1=5 | f[x0,x1]=3 | |
x2=3 | y2=10 | f[x1,x2]=5 | f[x0,x1,x2]=x2−x0f[x1,x2]−f[x0,x1]=1 |
- 构建牛顿插值多项式:
N2(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)
N2(x)=2+3(x−1)+1(x−1)(x−2)
N2(x)=2+3x−3+x2−3x+2=x2+1
所以,对于给定的三个数据点,牛顿插值多项式为 N2(x)=x2+1.
# 差分
以下是对上述内容的总结:
一、等距节点下的牛顿插值公式简化
在实际应用中常遇到等距节点的情形,即 xk=x0+kh(k=0,1,⋯,n),其中 h 为常数步长。此时插值公式可以进一步简化且计算更简单。
二、差分的定义与计算
对于等距节点,设 xk 点的函数值为 fk=f(xk)。
- 称 Δfk=fk+1−fk 为 xk 处以 h 为步长的一阶(向前)差分。
- 类似地,Δ2fk=Δfk+1−Δfk 为 xk 处的二阶差分。
- 一般地,Δnfk=Δn−1fk+1−Δn−1fk 为 xk 处的 n 阶差分。
三、引入算子符号
为了表示方便,引入两个常用算子符号
由此可得
进一步有
其中 (jn)=j!n(n−1)⋯(n−j+1) 为二项式展开系数。
另
fn+k=Enfk=(I+Δ)nfk=[j=0∑n(jn)Δj]fk
f[xk,xk+1]=xk+1−xkfk+1−fk=hΔfk
f[xk,xk+1,xk+2]=xk+2−xkf[xk+1,xk+2]−f[xk,xk+1]=2h21Δ2fk
四、差分与差商的关系及与导数的关系
一般地有
f[xk,⋯,xk+m]=m!1hm1Δmfk
由上述关系和前面的公式又可得到差分与导数的关系:
Δnfk=hnf(n)(ξ)
其中 ξ∈(xk,xk+n)。
牛顿前插公式可以简单的理解为将 等距均差/差商
替换为 前向差分
# 分段插值
# 函数逼近
- 插值:在节点处函数值相等
- 拟合:在数据点处误差平凡和最小
# 内积空间
一、定义
设 C[a,b] 是区间 [a,b] 上所有连续函数构成的集合。对于任意的 f(x),g(x)∈C[a,b],定义内积为:
(f,g)=∫abf(x)g(x)dx。
在这个定义下,C[a,b] 构成一个内积空间。
二、性质
- 对称性:(f,g)=(g,f),其中 (g,f) 表示 (g,f) 的共轭。对于实函数,即 (f,g)=(g,f)。
- 线性性:对于任意的函数 f(x),g(x),h(x)∈C[a,b] 和实数 α,β,有 (αf+βg,h)=α(f,h)+β(g,h)。
- 正定性:(f,f)≥0,且 (f,f)=0 当且仅当 f(x)=0。
在数值计算中,函数的范数是一个重要的概念。
# 范数
一、定义
设 f(x) 是定义在区间 [a,b] 上的函数,函数的范数通常有以下几种定义:
Lp 范数:
- 对于 p≥1,f(x) 的 Lp 范数定义为 ∥f∥Lp=(∫ab∣f(x)∣pdx)p1。
- 当 p=2 时,称为 L2 范数,也记为 ∥f∥2=∫abf(x)2dx。
无穷范数:
- f(x) 的无穷范数定义为 ∥f∥∞=maxa≤x≤b∣f(x)∣。
二、性质
正定性:对于任意函数 f(x),∥f∥≥0,且 ∥f∥=0 当且仅当 f(x)=0。
齐次性:对于任意实数 α 和函数 f(x),∥αf∥=∣α∣∥f∥.
三角不等式:对于任意函数 f(x) 和 g(x),∥f+g∥≤∥f∥+∥g∥.
平行四边形定理:∥f+g∥22+∥f−g∥22=2(∥f∥22+∥g∥22).
证明如下
首先计算 ∥f+g∥22:
∥f+g∥22=∫ab(f(x)+g(x))2dx=∫ab(f(x)2+2f(x)g(x)+g(x)2)dx=∫abf(x)2dx+∫ab2f(x)g(x)dx+∫abg(x)2dx=∥f∥22+2∫abf(x)g(x)dx+∥g∥22
接着计算 ∥f−g∥22:
∥f−g∥22=∫ab(f(x)−g(x))2dx=∫ab(f(x)2−2f(x)g(x)+g(x)2)dx=∫abf(x)2dx−∫ab2f(x)g(x)dx+∫abg(x)2dx=∥f∥22−2∫abf(x)g(x)dx+∥g∥22
最后计算 \|f + g\|_2^{2}+\|f - g\|_2^
∥f+g∥22+∥f−g∥22=(∥f∥22+2∫abf(x)g(x)dx+∥g∥22)+(∥f∥22−2∫abf(x)g(x)dx+∥g∥22)=2(∥f∥22+∥g∥22)
# 向量矩阵
一、向量范数
定义:
对于一个 n 维向量 x=(x1,x2,⋯,xn),向量范数是一个非负实数 ∥x∥,满足以下三个性质:
- 正定性:∥x∥≥0,且 ∥x∥=0 当且仅当 x=0。
- 齐次性:对于任意实数 α,有 ∥αx∥=∣α∣∥x∥。
- 三角不等式:对于任意两个向量 x 和 y,有 ∥x+y∥≤∥x∥+∥y∥.
常见的向量范数:
- p - 范数:∥x∥p=(∑i=1n∣xi∣p)p1,其中 p≥1。当 p=2 时,称为欧几里得范数或 2 - 范数,∥x∥2=∑i=1nxi2。
- 1 - 范数:∥x∥1=∑i=1n∣xi∣。
- ∞ - 范数:∥x∥∞=max1≤i≤n∣xi∣。
应用:
- 用于衡量向量的大小和长度,在数值分析、优化问题、机器学习等领域有广泛应用。例如,在优化算法中,向量范数可以用来衡量迭代过程中解的变化程度。
二、矩阵范数
定义:
对于一个 m×n 的矩阵 A,矩阵范数是一个非负实数 ∥A∥,满足以下四个性质:
- 正定性:∥A∥≥0,且 ∥A∥=0 当且仅当 A=0。
- 齐次性:对于任意实数 α,有 ∥αA∥=∣α∣∥A∥。
- 三角不等式:对于任意两个矩阵 A 和 B,有 ∥A+B∥≤∥A∥+∥B∥。
- 相容性:对于任意两个矩阵 A 和 B,有 ∥AB∥≤∥A∥∥B∥。
常见的矩阵范数:
- Frobenius 范数:∥A∥F=∑i=1m∑j=1n∣aij∣2,其中 aij 是矩阵 A 的第 i 行第 j 列元素。
- 诱导范数:由向量范数诱导而来,对于给定的向量范数 ∥⋅∥,矩阵 A 的诱导范数定义为 ∥A∥=maxx=0∥x∥∥Ax∥。例如,由 2 - 范数诱导的矩阵范数也称为谱范数,∥A∥2=λmax(ATA),其中 λmax(ATA) 表示矩阵 ATA 的最大特征值。
# 正交
在数值计算中,带权正交是内积空间中一种特殊的正交关系。
一、定义
设 C[a,b] 是区间 [a,b] 上所有连续函数构成的内积空间,对于任意的 f(x),g(x)∈C[a,b],定义带权内积为 (f,g)w=∫abw(x)f(x)g(x)dx,其中 w(x) 是一个在区间 [a,b] 上的非负函数,称为权函数。
如果两个函数 f(x) 和 g(x) 满足 (f,g)w=0,则称函数 f(x) 与 g(x) 在带权内积空间中带权 w(x) 正交。
二、举例
例如,在区间 [−1,1] 上,取权函数 w(x)=1−x2,函数 f(x)=x,g(x)=x2。
(f,g)w=∫−11(1−x2)x⋅x2dx=∫−11(x3−x5)dx=[4x4−6x6]−11=41−61−(41−61)=0。
所以在这个带权内积空间中,函数 x 与函数 x2 带权 w(x) 正交。
三、性质
- 性质:
- 带权正交也具有类似普通正交的一些性质,如对称性(若 f 与 g 带权正交,则 g 与 f 也带权正交)、线性性(若 f1 与 g 带权正交,f2 与 g 带权正交,则 αf1+βf2 与 g 也带权正交,其中 α,β 为实数)等。
- 零函数与任何函数在带权内积空间中都带权正交。
# 最佳一致逼近
最佳一致逼近是数值分析中的一个重要概念。
一、基本概念
设 f(x)∈C[a,b],即 f(x) 是区间 [a,b] 上的连续函数。pn(x)∈Hn,其中 Hn 是次数不超过 n 的多项式集合。
Δ(f,pn)=∥f−pn∥∞=a≤x≤bmax∣f(x)−pn(x)∣
被称为 f(x) 与 pn(x) 在 [a,b] 上的偏差。
这个偏差衡量了多项式 pn(x) 与函数 f(x) 在区间 [a,b] 上的最大差异程度.
En=pn∈Hninf{Δ(f,pn)}=pn∈Hninfa≤x≤bmax∣f(x)−pn(x)∣
称为 f(x) 在 [a,b] 上的最小偏差。也就是要在所有次数不超过 n 的多项式中,找到与 f(x) 偏差最小的那个值。
若存在 pn∗(x)∈Hn,使得 Δ(f,pn∗)=En,则称 pn∗(x) 是 f(x) 在 [a,b] 上的 n 次最佳一致逼近多项式,也称为最小偏差逼近多项式或最佳逼近多项式。它是在次数不超过 n 的多项式中最接近函数 f(x) 的那个多项式。
# 最佳平方逼近
最佳平方逼近是一种重要的函数逼近方法。
一、基本概念
对于函数 f(x)∈C[a,b],如果存在一个 n 次多项式 s∗(x)=∑j=0najφj(其中 φj 是一组基函数),使得
∫ab[f(x)−s∗(x)]2dx=s(x)∈Hnmin∫ab[f(x)−s(x)]2dx
那么称 s∗(x) 为 f(x) 在区间 [a,b] 上的 n 次最佳平方逼近多项式。
- 这里的目标是找到一个多项式,使得它与原函数 f(x) 在区间 [a,b] 上的 平方误差积分 最小。
若 f(x)∈C[a,b],Φ=span{φ0,⋯,φn}⊂C[a,b],存在 s∗(x)∈Φ 满足
∫abρ(x)[f(x)−s∗(x)]2dx=s(x)∈Φmin∫abρ(x)[f(x)−s(x)]2dx
则称 s∗(x) 为函数 f(x) 在集合 Φ 上的最佳平方逼近函数。
- 这里引入了权函数 ρ(x),可以根据不同的需求对不同点的误差进行加权。
二、求解方法
问题归结为 求系数 aj 使得
I(a0,⋯,an)=∫abρ(x)[f(x)−j=0∑najφj]2dx
取得极小值.
对 I 关于 ak 求偏导,并令偏导数为 0,得到:
∂ak∂I(a0,⋯,an)=2∫abρ(x)[f(x)−j=0∑najφj]φkdx=0.
将积分转为内积的形式得到
∑j=0najφjφk
由此得到法方程:
⎣⎢⎢⎢⎢⎡(φ0,φ0)(φ1,φ0)⋮(φn,φ0)(φ0,φ1)(φ1,φ1)⋮(φn,φ1)⋯⋯⋯⋯(φ0,φn)(φ1,φn)⋮(φn,φn)⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡a0a1⋮an⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡(f,φ0)(f,φ1)⋮(f,φn)⎦⎥⎥⎥⎥⎤
- 其中 (φk,φj)=∫abρ(x)φk(x)φj(x)dx,(f,φj)=∫abρ(x)f(x)φj(x)dx。
三、性质与意义
由于 φ0,⋯,φn 线性无关,所以法方程系数行列式 Gn=0,法方程有唯一解。这意味着可以确定唯一的最佳平方逼近函数。
平方误差为:
∥δ(x)∥22=(f−s∗,f−s∗)=(f,f)−(f,s∗)=∥f(x)∥22−k=0∑nak∗(f,φk).
# 曲线拟合
# 最小二乘法
最小二乘法是一种曲线拟合方法,用于在给定的数据点集上找到一个最佳的拟合函数。
一、误差度量
首先定义误差的不同度量方式,包括
无穷范数误差
∥δ∥∞=maxi∣δi∣=maxi∣S(xi)−f(xi)∣
1 - 范数误差
∥δ∥1=∑i=0n∣δi∣=∑i=0n∣S(xi)−f(xi)∣.
2 - 范数误差 ∥δ∥2=(∑i=0nδi2)21={∑i=0n[S(xi)−f(xi)]2}21
其中 δi=S(xi)−f(xi) 表示在点 xi 处拟合函数 S(x) 与实际函数 f(x) 的偏差。最小二乘法要求 2 - 范数误差平方最小,即 ∥δ∥22=∑i=0nδi2=∑i=0n[S(xi)−f(xi)]2 最小。
二、一般提法
对于给定的数据 (xi,yi)(i=0,1,⋯,m),要求在给定函数类 Φ=span{φ0,⋯,φn} 中找一函数 s∗(x)=∑j=0naj∗φj,其中 n<m,使得 s∗(x) 满足
∥δ∥22=i=0∑mδi2=i=0∑m[s∗(xi)−f(xi)]2=s(x)∈Φmini=0∑m[s(xi)−f(xi)]2
三、更一般提法
更一般地,要求 ∥δ∥22=∑i=0mω(xi)δi2=∑i=0mω(xi)[s∗(xi)−f(xi)]2=mins(x)∈Φ∑i=0mω(xi)[s(xi)−f(xi)]2,其中引入了权重函数 ω(xi),可以根据不同的数据点重要性进行调整。
四、问题归结
将最小二乘法问题归结为求 s(x)=∑k=0nakφk(x) 的系数 ak,使得
I(a0,⋯,an)=i=0∑mω(xi)[k=0∑nakφk(xi)−f(xi)]2
取得极小值。
引入内积记号
(φk,φj)=i=0∑mω(xi)φk(xi)φj(xi)
和
(f,φj)=j=0∑mω(xi)f(xi)φj(xi)
五、多项式拟合及法方程
常用多项式拟合,即 Φ=span{φ0,⋯,φn}=span{1,x,⋯,xn}, s∗(x)=∑k=0nak∗xk. 此时可以得到法方程为:
⎣⎢⎢⎢⎢⎡∑ωi∑ωixi⋮∑ωixin∑ωixi∑ωixi2⋮∑ωixin+1⋯⋯⋯⋯∑ωixin∑ωixin+1⋮∑ωixi2n⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡a0a1⋮an⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡∑ωiyi∑ωixiyi⋮∑ωixinyi⎦⎥⎥⎥⎥⎤
通过求解这个法方程,可以得到多项式拟合的系数 ak,从而确定最小二乘解 s∗(x)。
可以通过线性变换将非线性拟合转化为线性拟合
# 数值积分
imphasis
插值型求积公式的概念,求积系数及相关性质
掌握基本的数值求积公式,中矩形求积公式,梯形求积公式,辛普森公式及对应的复化求积公式
自适应求积的基本思想
掌握龙贝格求积的思想及龙贝格求积公式
针对具体的问题会计算代数精度,会用具体的求积公式进行计算求解
# 插值求积与代数精度
一、插值求积
基本概念
- 插值求积是基于插值多项式来近似计算定积分的方法。其核心思想是先利用已知节点上的函数值构造一个插值多项式,然后对这个插值多项式进行积分来近似原函数的定积分。
具体方法
- 设给定区间[a,b] 上的n+1 个节点x0,x1,⋯,xn 及对应的函数值f(x0),f(x1),⋯,f(xn)。
- 通过这些节点构造一个插值多项式Ln(x),使得Ln(xi)=f(xi),i=0,1,⋯,n。
- 然后计算插值多项式的积分∫abLn(x)dx 作为原函数定积分∫abf(x)dx 的近似值。
二、代数精度
定义
- 若一个数值求积公式对于所有次数不超过m 的多项式都能准确成立,而对于某个m+1 次多项式不成立,则称该求积公式具有m 次代数精度。
意义
- 代数精度是衡量数值求积公式准确性的一个重要指标。代数精度越高,说明该求积公式在对多项式函数进行积分时的准确性越高。
- 通过确定求积公式的代数精度,可以评估不同求积公式的优劣,为选择合适的求积方法提供依据。
与插值求积的关系
- 对于插值求积法,其代数精度与所使用的插值多项式的次数有关。一般来说,插值多项式的次数越高,插值求积公式的代数精度也越高。
- 例如,梯形公式是基于一次插值多项式的求积公式,其代数精度为 1;辛普森公式是基于二次插值多项式的求积公式,其代数精度为 3。
一、插值求积公式的表达式与性质
- 插值基函数:
lk(x)=∏j=0j=knxk−xjx−xj(k=0,1,⋯,n)
- 求积公式推导:
- 对于积分∫ablk(x)dx=∑j=0nAjlk(xj),其中lk(xj)=δkj={10k=jk=j。
- 取f(x)=lk(x) 时,∫abf(x)dx=∫ablk(x)dx=∑j=0nAjlk(xj),所以有Ak=∫ablk(x)dx,此时求积公式为插值型求积公式。
插值求积公式的余项
余项表达式:
当f(x) 是次数不高于n 的多项式时,f(n+1)(x)=0,R(f)=0,求积公式能成为准确的等式。
插值型求积公式的充要条件与代数精度
- 定理:
- n+1 个节点的求积公式∫abf(x)dx≈∑k=0nAkf(xk) 为插值型求积公式的充要条件是公式至少具有n 次代数精度。
- 证明:
必要性:若求积公式为插值型求积公式,求积系数为Ak=∫ablk(x)dx。又f(x)=P(x)+R(x),当f(x) 为不高于n 次的多项式时,f(x)=P(x),其余项R(f)=0,因而这时求积公式至少具有n 次代数精度。
充分性:若求积公式至少具有n 次代数精度,则对n 次多项式
l_{k}(x_{j})=\delta_{kj}=\begin{cases}1&k = j\\0&k\neq j\end
精确成立.f(x)=lk(x) 时,∫abf(x)dx=∫ablk(x)dx=∑j=0nAjlk(xj),所以有Ak=∫ablk(x)dx,此时求积公式为插值型求积公式。
代数精度:若求积公式至少具有n 次代数精度,则对n 次多项式,可得方程组
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧A0+A1+⋯+An=b−aA0x0+A1x1+⋯+Anxn=2b2−a2⋯⋯A0x0n+A1x1n+⋯+Anxnn=n+1bn+1−an+1
这是关于Ak 的线性方程组,其系数矩阵是范得蒙矩阵,当xk(k=0,1,⋯,n) 互异时非奇异,故Ak 有唯一解。
四、求积系数与定义
Ak=∫ablk(x)dx=∫ab(x−xk)ω′(xk)ω(x)dx
称为求积系数。
# 求积公式
梯形和中矩形只有 1 次代数精度,辛普森有 3 次代数精度
一、牛顿 - 柯特斯公式
梯形公式:
- 对于区间 [a,b] 上的定积分 ∫abf(x)dx,将区间分为两部分,用连接两点 (a,f(a)) 和 (b,f(b)) 的直线(即梯形的上下底)来近似代替曲线 f(x),得到梯形公式:
∫abf(x)dx≈2b−a[f(a)+f(b)]
中矩形公式:
∫abf(x)dx≈(b−a)f(2a+b)
辛普森公式:
牛顿 - 柯特斯公式一般形式:
- 对于 n+1 个节点的牛顿 - 柯特斯公式为, ∫abf(x)dx≈(b−a)∑k=0nCk(n)f(xk) 其中 Ck(n) 是柯特斯系数,xk=a+knb−a。
二、高斯型求积公式
- 基本思想:
- 高斯型求积公式是在积分区间上选取适当的节点和权系数,使得求积公式具有尽可能高的代数精度。
公式形式:
∫abf(x)dx≈k=1∑nAkf(xk)
其中 xk 是求积节点,Ak 是求积系数。
代数精度:插值积分至少有 n 次精度
# 复化求积公式
复化梯形公式:
将区间 [a,b] 分成 n 个子区间,在每个子区间上应用梯形公式,然后将结果相加。复化梯形公式为:
∫abf(x)dx≈2h[f(a)+2i=1∑n−1f(xi)+f(b)]
其中 h=nb−a,xi=a+ih。
复化辛普森公式:
类似地,将区间分成 n 个子区间,在每个子区间上应用辛普森公式,然后相加。复化辛普森公式为:
∫abf(x)dx≈6h[f(a)+4i=0∑n−1f(xi+21)+2i=1∑n−1f(xi)+f(b)]
# 低阶求积公式余项
具有 n 阶代数精度的求积公式都可认为是 n 阶的插值求积公式
R=I−I∗=∫abS−S∗dx=∫abRsdx=∫ab(n+1)!f(n+1)(ξ)ωn+1(x)dx
# 梯形公式的余项
梯形公式(4.1.1)的余项为
RT=I−T=∫ab2f′′(ξ)(x−a)(x−b)dx
取的左右端点,做的一阶插值
由于积分的核函数(x−a)(x−b) 在区间[a,b] 上保号(非正),应用积分中值定理,在(a,b) 内存在一点η,使得
RT=2f′′(η)∫ab(x−a)(x−b)dx=−12f′′(η)(b−a)3,η∈(a,b)
# Simpson 公式的余项
Simpson 公式(4.2.3)的余项RS=I−S=∫ab[f(x)−H(x)]dx,其中H(x) 是构造的次数不大于三的多项式,满足
H(a)=f(a),H(b)=f(b),H(c)=f(c),H′(c)=f′(c),c=2a+b 。
由于 Simpson 公式具有三次代数精度,对于这样构造出的三次式H(x) 是准确的,即∫abH(x)dx=6b−a[H(a)+4H(c)+H(b)] ,上式右端实际上等于按 Simpson 公式(4.2.3)求得的积分值S。
对于满足条件(4.2.6)的多项式H(x),其插值余项
f(x)−H(x)=4!f(4)(ξ)(x−a)(x−c)2(x−b),
所以
RS=∫ab4!f(4)(ξ)(x−a)(x−c)2(x−b)dx
- 积分核(x−a)(x−c)2(x−b) 在[a,b] 上保号(非正),用积分中值定理有
RS=4!f(4)(η)∫ab(x−a)(x−c)2(x−b)dx=−180b−a(2b−a)4f(4)(η)
# Cotes 公式的余项
Cotes 公式(4.2.4)的积分余项仅列出结果为
RC=I−C=−9452(b−a)(4b−a)6f(6)(η)
# 复化梯形余项
Rn=I−Tn=−12b−a(nb−a)2f′′(ξ)
# 复化辛普森余项
Rn=−180b−a(h)4f(4)(ξ),h=nb−a
# 自适应求积
一、基本思想
- 从一个较粗的积分步长开始,计算积分的近似值。
- 然后将积分步长减半,再次计算积分近似值。
- 比较两次计算结果的差异,如果差异较大,则继续减小步长进行计算,直到满足一定的精度要求。
二、变步长梯形公式
- 首先用梯形公式计算积分的近似值:
- 对于区间[a,b] 上的定积分∫abf(x)dx,梯形公式为T(h)=2h[f(a)+f(b)]+∑i=1n−1hf(xi),其中h=nb−a,xi=a+ih。
- 将步长减半,得到新的近似值:
- 令h′=2h,新的梯形公式为T(h′)=2h′[f(a)+f(b)]+∑i=12n−1h′f(xi′)。
- 计算两次近似值的差异:
T2n=21Tn+2hi=0∑n−1f(xi+21)
三、变步长辛普森公式
类似地,可以从辛普森公式出发,逐步减小步长进行计算。
辛普森公式为
S(h)=6h[f(a)+f(b)+4i=0∑n−1f(xi+21)+2i=1∑n−1f(xi)]
递推公式为
S2n=4Sn+2hi=0∑n−1[f(xi+41)+f(xi+43)]+8hi=0∑n−1f(xi)
# Romberg 算法
龙贝格
龙贝格算法是一种用于数值积分的高效方法,以下是对图片内容的整理:
一、龙贝格算法计算步骤
按变步长梯形公式计算积分近似值:
- 对于区间[a,b],先进行区间划分,区间长度h=nb−a(n=2k)。
- 变步长梯形公式为T2n=2Tn+2h∑k=0n−1f(xk+21),其中xk+21=a+(k+21)h。
按加速公式求加速值:
- 梯形公式加速:Sn=T2n+3T2n−Tn(此处以整理后的正确公式为准,图片中可能有误)。
- Simpson 加速公式:Cn=S2n+15S2n−Sn。
- 龙贝格求积公式:Rn=C2n+63C2n−Cn。
二、公式推导过程
从柯特斯公式的误差公式进一步导出龙贝格公式:Rn=6364C2n−631Cn。
考察 Simpson 法,其截断误差与h4 成正比,若将步长折半,则误差减至161,即I−SnI−S2n≈161,由此可得I=1516S2n−151Sn,可以验证上式右端的值等于Cn,即Cn=1516S2n−151Sn。
用梯形法二分前后两个积分值Tn 和T2n 作线性组合,可得到复化 Simpson 公式计算得到的积分值Sn,即Sn=34T2n−31Tn。
三、精度控制
直到相邻两次积分值∣R2n−Rn∣<ε(其中ε 为允许的误差限),则终止计算并取Rn 作为积分的近似值。
龙贝格算法通过变步长将粗糙的梯形值逐步加工成精度较高的 Simpson 值、柯特斯值和龙贝格值,将收敛缓慢的梯形值序列加工成收敛迅速的龙贝格值序列。
# 例题
计算向量 $x=(1, -2, 3)^T $ 的各种范数
∥x∥1=6, ∥x∥∞=3, \parallel x \parallel_2 = \sqrt
题目:设 f(x)=1+x2,求在区间 [0,1] 上的一次最佳平方逼近多项式。
解析:
- 首先计算内积:
- (f,φ0)=∫011+x2dx=21ln(1+2)+22≈1.147。
- (f,φ1)=∫01x1+x2dx=31(1+x2)23∣∣∣∣01=322−1≈0.609。
- 得到方程组:
- [11/21/21/3][a0a1]=[1.1470.609]。
- 解方程组得:a0=0.934,a1=0.426。
- 故一次最佳平方逼近多项式为 S1∗(x)=0.934+0.426x。
- 计算平方误差:
- ∥δ(x)∥22=(f(x),f(x))−(S1∗(x),f(x))=∫01(1+x2)dx−0.426d1−0.934d0=0.0026,其中 d0=(S1∗(x),φ0),d1=(S1∗(x),φ1)。
- 计算最大误差:
- ∥δ(x)∥∞=max0≤x≤1∣1+x2−S1∗(x)∣≈0.066。
试确定一个至少具有 2 次代数精度的公式∫04f(x)dx≈Af(0)+Bf(1)+Cf(3)。
- 解:要使公式具有 2 次代数精度,则对f(x)=1,x,x2 求积公式准确成立,即得方程组⎩⎪⎪⎨⎪⎪⎧A+B+C=4B+3C=8B+9C=364,解得A=314,B=34,C=38。因此,所求公式为∫04f(x)dx≈314f(0)+34f(1)+38f(3)。
试确定求积系数 A、B、C 使∫−11f(x)dx≈Af(−1)+Bf(0)+Cf(1) 具有最高的代数精度。
- 解:分别取f(x)=1,x,x2 使求积公式准确成立,即得⎩⎪⎪⎨⎪⎪⎧A+B+C=2−A+C=0A+C=32,所得求积公式为∫−11f(x)dx≈31f(−1)+34f(0)+31f(1)。可验证该求积公式对于f(x)=1,x,x2,x3 都准确成立,对于f(x)=x4 不能准确成立,所以求积公式具有 3 次代数精度。
考察求积公式∫−11f(x)dx≈21[f(−1)+2f(0)+f(1)] 的代数精度。
- 解:可以验证,对于f(x)=1,x 时,公式两端相等;再将f(x)=x2 代入公式,左端为∫−11x2dx=32,右端为21[f(−1)+2f(0)+f(1)]=21[1+1]=1,左端不等于右端,所以求积公式具有 1 次代数精度。且三个节点不一定具有 2 次代数精度,因为不是插值型的。
给定求积式∫01f(x)dx≈31[2f(41)−f(21)+2f(43)],求证此求积公式是插值型求积公式。
解:
- 首先计算插值基函数:
- l0(x)=(x−21)(x−43)/(41−21)(41−43)=8(x−21)(x−43)。
- l1(x)=(x−41)(x−43)/(21−41)(21−43)=−16(x−41)(x−43)。
- l2(x)=(x−41)(x−21)/(43−41)(43−21)=8(x−41)(x−21)。
- 然后计算积分:
- ∫01l0(x)dx=8∫01(x2−45x+83)dx=8(31−45×21+83)=38−2=32。
- ∫01l1(x)dx=(−16)∫01(x2−x+163)dx=(−16)(31−21+163)=616−3=−31。
- ∫01l2(x)dx=8∫01(x2−43x+81)dx=8(31−43×21+81)=38−2=32。
- 由插值型求积公式的定义知,所给的求积公式是插值型求积公式。
题目:
计算定积分I=∫01lnxdx,依次用n=8 的复化梯形公式和n=4 的复化 Simpson 公式进行计算。
解:
- 当n=8 时:
- h=81=0.125。
- 由复化梯形公式可得计算公式:
T8=161[f(0)+2f(0.125)+2f(0.25)+2f(0.375)+2f(0.5)+2f(0.625)+2f(0.75)+2f(0.875)+f(1)]=0.9456909。
- 当n=4 时:
- 由复化 Simpson 公式可得计算公式:
S4=241[f(0)+f(1)+2(f(0.25)+f(0.5)+f(0.75))+4(f(0.125)+f(0.375)+f(0.625)+f(0.875))]=0.9460832。
- 积分准确值I=0.9460831。
- 两种方法都需要提供 9 个点上的函数值,计算量基本相同,但精度差别较大。与积分准确值比较,复化梯形公式只有两位有效数字,而复化 Simpson 公式却有六位有效数字。
题目:
用变步长梯形求积公式计算定积分I=∫01xsinxdx。
解:
- 先对整个区间[0,1] 用梯形公式:
- 已知f(x)=xsinx,f(0)=1,f(1)=0.8410709。
- 所以T1=21[f(0)+f(1)]=0.9207355。
- 然后将区间二等分:
- 由于f(21)=0.958851,故有T2=21T1+21f(21)=0.9397933。
- 进一步二分求积区间,并计算新分点上的函数值:
- f(41)=0.9896158,f(43)=0.9088516。
- 有T4=21T2+41[f(41)+f(43)]=0.9445135。
- 这样不断二分下去,积分准确值为0.9460831,从计算结果表中可看出用变步长二分 10 次可得此结果。
题目:用龙贝格算法计算定积分I=∫011+x24dx,要求相邻两次龙贝格值的偏差不超过10−5。
解:
- 已知a=0,b=1,f(x)=1+x24。
- 首先计算梯形值:
- T1=21[f(0)+f(1)]=21(4+2)=3。
- T2=21T1+21f(21)=21×3+21×516=3.1。
- T4=21T2+41[f(41)+f(43)]=21×3.1+41(3.764+2.56)=3.13118。
- T8=21T4+81[f(81)+f(83)+f(85)+f(87)]=3.13899。
- T16=21T8+161[f(161)+f(163)+f(165)+f(167)+f(169)+f(1611)+f(1613)+f(1613)+f(1615)]=3.1409。
- 然后计算 Simpson 值:
- S1=34T2−31T1=3.1333。
- S2=34T4−31T2=3.14157。
- S4=34T8−31T4=3.14159。
- S8=34T16−31T8=3.14159。
- 接着计算柯特斯值:
- C1=1516S2−151S1=3.14212。
- C2=1516S4−151S2=3.14159。
- C4=1516S8−151S4=3.14159。
- 最后计算龙贝格值:
- R1=6364C2−631C1=3.14158。
- R2=6364C4−631C2=3.14159。
- 由于∣R2−R1∣≤0.00001,于是有I=∫011+x24dx≈3.14159.