数值积分与数值微分
2023年11月29日
#analysis
文章目录
1. 求积公式与代数精度
求积公式的一般形式为:
∫
a
b
f
(
x
)
d
x
≈
∑
k
=
0
n
A
k
f
(
x
k
)
\int_{ a }^{b} f(x)\mathrm dx \approx \sum_{k=0}^{ n} A_kf(x_k)
∫abf(x)dx≈k=0∑nAkf(xk)
A
k
:
求积系数
,
x
k
:
求积节点
A_k:求积系数 \,\,,\,\, x_k:求积节点
Ak:求积系数,xk:求积节点
如果求积公式对
f
(
x
)
=
x
j
(
j
=
0
,
1
,
⋯
,
m
)
{f(x)=x^j(j=0,1,\cdots ,m)}
f(x)=xj(j=0,1,⋯,m) 都精确成立,但对
f
(
x
)
=
x
m
+
1
{f(x)=x^{m+1}}
f(x)=xm+1 不能精确成立,即
∫
a
b
x
j
d
x
=
∑
k
=
0
n
A
k
x
k
j
,
j
=
0
,
1
,
⋯
,
m
∫
a
b
x
m
+
1
d
x
≠
∑
k
=
0
n
A
k
x
k
m
+
1
\begin{align*} \int_{ a }^{b} x^j \mathrm dx=& \sum_{k=0}^{ n} A_kx_k^j \,\,,\,\, j=0,1,\cdots ,m \\ \\ \int_{ a }^{b} x^{m+1} \mathrm dx \ne &\sum_{k=0}^{ n} A_kx_k^{m+1} \end{align*}
∫abxjdx=∫abxm+1dx=k=0∑nAkxkj,j=0,1,⋯,mk=0∑nAkxkm+1
则称求积公式具有
m
{m}
m 次代数精度。
[!example]-
对于数值求积公式
∫ − 1 2 1 2 f ( x ) d x ≈ A 0 f ( x 0 ) + A 1 f ( x 1 ) \int_{ -\frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx \approx A_0f(x_0)+A_1f(x_1) ∫−2121f(x)dx≈A0f(x0)+A1f(x1)
当 A 1 = 1 / 4 {A_1=1/4} A1=1/4 , x 1 = 3 / 8 {x_1=3/8} x1=3/8 时,请确定参数 A 0 {A_0} A0 , x 0 {x_0} x0 使此公式的代数精度尽可能地高,并确定此时公式的代数精度。
解:此求积公式只有两个参数 A 0 {A_0} A0 , x 0 {x_0} x0 。令公式对 f ( x ) = 1 {f(x)=1} f(x)=1 , x {x} x 都精确成立。则有
{ A 0 + A 1 = 1 A 0 x 0 + A 1 x 1 = 0 \begin{cases} A_0+A_1=1 \\ \\ A_0x_0+A_1x_1=0 \end{cases} ⎩ ⎨ ⎧A0+A1=1A0x0+A1x1=0
代入 A 1 = 1 / 4 {A_1=1/4} A1=1/4 , x 1 = 3 / 8 {x_1=3/8} x1=3/8 得
{ A 0 + 1 4 = 1 A 0 x 0 + 3 32 = 0 ⇒ { A 0 = 3 4 x 0 = − 1 8 \begin{cases} A_0+ \frac{1}{4}=1 \\ \\ A_0x_0+ \frac{3}{32}=0 \end{cases} \Rightarrow \begin{cases} A_0= \frac{3}{4} \\ \\ x_0=- \frac{1}{8} \end{cases} ⎩ ⎨ ⎧A0+41=1A0x0+323=0⇒⎩ ⎨ ⎧A0=43x0=−81
∫ − 1 2 1 2 f ( x ) d x ≈ 3 4 f ( − 1 8 ) + 1 4 f ( 3 8 ) \int_{ - \frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx \approx \frac{3}{4}f(- \frac{1}{8})+ \frac{1}{4}f(\frac{3}{8}) ∫−2121f(x)dx≈43f(−81)+41f(83)
当 f ( x ) = x 2 {f(x)=x^2} f(x)=x2 时,由于
∫ − 1 2 1 2 f ( x ) d x = 1 12 ≠ 3 4 ( − 1 8 ) 2 + 1 4 ( 3 8 ) 2 = 3 64 \int_{ - \frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx = \frac{1}{12} \ne \frac{3}{4}(- \frac{1}{8})^2+ \frac{1}{4} (\frac{3}{8})^2= \frac{3}{64} ∫−2121f(x)dx=121=43(−81)2+41(83)2=643
则此求积公式的代数精度为 m = 1 {m=1} m=1 。
- 要求的参数有 n {n} n 个,则设 f ( x ) = 1 , x , ⋯ x n − 1 {f(x)=1,x,\cdots x^{n-1}} f(x)=1,x,⋯xn−1
2. 几个常用积分公式及其复合积分公式
复合公式的代数精度不变,计算精度提高,表现为误差估计减小
这些公式用于已知原函数时候的数值积分,复合公式是在划分区间之上应用梯形或Simpson公式。
2.1 中点公式
I
=
∫
a
b
f
(
x
)
d
x
≈
(
b
−
a
)
f
(
a
+
b
2
)
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx (b-a) f(\frac{a+b}{2})=I'
I=∫abf(x)dx≈(b−a)f(2a+b)=I′
误差
I
−
I
′
=
1
24
(
b
−
a
)
3
f
′
′
(
ξ
)
,
ξ
∈
[
a
,
b
]
I-I'= \frac{1}{24}(b-a)^3f''(\xi) \,\,,\,\, \xi\in[a,b]
I−I′=241(b−a)3f′′(ξ),ξ∈[a,b]
代数精度为
1
{1}
1
2.2 梯形公式
I
=
∫
a
b
f
(
x
)
d
x
≈
1
2
(
b
−
a
)
[
f
(
a
)
+
f
(
b
)
]
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx \frac{1}{2} (b-a) [f(a)+f(b)]=I'
I=∫abf(x)dx≈21(b−a)[f(a)+f(b)]=I′
误差
I
−
I
′
=
−
1
12
(
b
−
a
)
3
f
′
′
(
ξ
)
,
ξ
∈
[
a
,
b
]
I-I'=- \frac{1}{12}(b-a)^3f''(\xi) \,\,,\,\, \xi\in[a,b]
I−I′=−121(b−a)3f′′(ξ),ξ∈[a,b]
代数精度为
1
{1}
1
2.3 抛物型公式/Simpson公式
I
=
∫
a
b
f
(
x
)
d
x
≈
1
6
(
b
−
a
)
[
f
(
a
)
+
4
f
(
a
+
b
2
)
+
f
(
b
)
]
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx \frac{1}{6} (b-a) [f(a)+4f(\frac{a+b}{2})+f(b)]=I'
I=∫abf(x)dx≈61(b−a)[f(a)+4f(2a+b)+f(b)]=I′
误差
I
−
I
′
=
−
(
b
−
a
)
5
2880
f
(
4
)
(
ξ
)
,
ξ
∈
[
a
,
b
]
I-I'=- \frac{(b-a)^5}{2880}f^{(4)}(\xi) \,\,,\,\, \xi\in[a,b]
I−I′=−2880(b−a)5f(4)(ξ),ξ∈[a,b]
代数精度为
3
{3}
3
2.4 复合中点公式
I
=
∫
a
b
f
(
x
)
d
x
≈
∑
i
=
0
n
−
1
h
f
(
x
i
+
1
2
)
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} hf(x_{i+ \frac{1}{2}}) =I'
I=∫abf(x)dx≈i=0∑n−1hf(xi+21)=I′
matlab实现
%% 复合中点公式
% 输入函数,积分下界,积分上界,区间数
% 输出积分值
function I = fmid(f, a, b, n)
h = (b-a)/n;
x = linspace(a+h/2, b-h/2, n); % n个区间,n+1个边界点,n个中点;
I = h*sum(feval(f, x));
end
2.5 复合梯形公式
I
=
∫
a
b
f
(
x
)
d
x
≈
∑
i
=
0
n
−
1
h
2
[
f
(
x
i
)
+
f
(
x
i
+
1
)
]
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} \frac{h}{2}[f(x_i)+f(x_{i+1})] =I'
I=∫abf(x)dx≈i=0∑n−12h[f(xi)+f(xi+1)]=I′
误差估计
∣
I
−
I
n
′
∣
≤
(
b
−
a
)
3
12
n
2
M
2
,
记
M
2
=
max
a
≤
x
≤
b
∣
f
′
′
(
x
)
∣
|I-I'_n|\le \frac{(b-a)^3}{12n^2}M_2 \,\,,\,\, 记M_2=\max_{a\le x\le b}|f''(x)|
∣I−In′∣≤12n2(b−a)3M2,记M2=a≤x≤bmax∣f′′(x)∣
matlab实现
%% 梯形积分公式
% 输入函数,积分下界,积分上界,划分区间数
% 输出积分值
function I = ftrapz(f, a, b, n)
h = (b-a)/n;
x = linspace(a, b, n+1);
y = f(x);
I = h*(0.5*y(1)+ sum(y(2:n))+ 0.5*y(n+1));
end
2.6 复合Simpson公式
I
=
∫
a
b
f
(
x
)
d
x
≈
∑
i
=
0
n
−
1
h
6
[
f
(
x
i
)
+
4
f
(
x
i
+
1
2
)
+
f
(
x
i
+
1
)
]
=
I
′
I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} \frac{h}{6}[f(x_i)+ 4f(x_{i+ \frac{1}{2}}) +f(x_{i+1})] =I'
I=∫abf(x)dx≈i=0∑n−16h[f(xi)+4f(xi+21)+f(xi+1)]=I′
误差估计
∣
I
−
I
n
′
∣
≤
(
b
−
a
)
5
2880
n
4
M
4
,
记
M
4
=
max
a
≤
x
≤
b
∣
f
(
4
)
(
x
)
∣
|I-I'_n|\le \frac{(b-a)^5}{2880n^4}M_4 \,\,,\,\, 记M_4=\max_{a\le x\le b}|f^{(4)}(x)|
∣I−In′∣≤2880n4(b−a)5M4,记M4=a≤x≤bmax∣f(4)(x)∣
matlab实现
%% 复合Simpson积分公式
% 输入函数,积分下界,积分上界,划分区间数
% 输出积分值
function I = fsimpson(f, a, b, n)
h = (b-a)/n;
x_m = linspace(a+h/2, b-h/2, n); % 中点
x_b = linspace(a,b,n+1); % 边界点
I = h/6*(f(a)+4*sum(f(x_m))+2*sum(f(x_b(2:n)))+f(b));
end
[!example]-
已知 f ( x ) = ln x {f(x)=\ln x} f(x)=lnx 的部分点处的函数值如下表:
x 1 2 3 4 5 ln x 0 0.6931 1.0986 1.3863 1.6094 \begin{array}{cccccc} x & 1& 2 & 3&4&5 \\ \ln x & 0 & 0.6931 & 1.0986& 1.3863&1.6094 \end{array} xlnx1020.693131.098641.386351.6094
分别用复化梯形公式和复化Simpson公式求 ∫ 1 5 ln x d x \int_{ 1 }^{5} \ln x \mathrm dx ∫15lnxdx的近似值,并估计误差。
解:
复化梯形:在区间 [ 1 , 5 ] {[1,5]} [1,5] 上取
x 0 = 1 , x 1 = 2 , x 2 = 3 , x 3 = 4 , x 4 = 5 x_0=1,x_1=2,x_2=3,x_3=4,x_4=5 x0=1,x1=2,x2=3,x3=4,x4=5
步长 h = 1 {h=1} h=1 。
∫ a b f ( x ) d x ≈ h 2 [ f ( a ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( b ) ] T 4 = 1 2 ( ln 1 + 2 ln 2 + 2 ln 3 + 2 ln 4 + ln 5 ) = 3.9827 \begin{align*} \int_{ a }^{b} f(x) \mathrm dx \approx& \frac{h}{2}[f(a)+2 \sum_{k=1}^{ n-1}f(x_k)+f(b) ] \\ \\ T_4=& \frac{1}{2}(\ln1+2\ln2+2\ln3+2\ln4+\ln5) \\ \\ =&3.9827 \end{align*} ∫abf(x)dx≈T4==2h[f(a)+2k=1∑n−1f(xk)+f(b)]21(ln1+2ln2+2ln3+2ln4+ln5)3.9827
∣ I − T 4 ∣ ≤ ( b − a ) 3 12 n 2 M 2 , M 2 = max 1 ≤ x ≤ 5 ∣ ln ′ ′ x ∣ = max 1 ≤ x ≤ 5 ∣ − 1 x 2 ∣ = 1 |I-T_4|\le \frac{(b-a)^3}{12n^2}M_2 \,\,,\,\, M_2=\max_{1\le x\le 5}|\ln''x|=\max_{1\le x\le 5}|- \frac{1}{x^2} |=1 ∣I−T4∣≤12n2(b−a)3M2,M2=1≤x≤5max∣ln′′x∣=1≤x≤5max∣−x21∣=1
∴ ∣ I − T 4 ∣ ≤ ( 5 − 1 ) 3 12 × 4 2 × 1 = 0.3333 \therefore |I-T_4|\le \frac{(5-1)^3}{12 \times 4^2} \times 1=0.3333 ∴∣I−T4∣≤12×42(5−1)3×1=0.3333
复化辛普森:在区间 [ 1 , 5 ] {[1,5]} [1,5] 上取
x 0 = 1 , x 1 − 1 / 2 = 2 , x 1 = 3 , x 2 − 1 / 2 = 4 , x 2 = 5 x_0=1,x_{1-1/2}=2,x_1=3,x_{2-1/2}=4,x_2=5 x0=1,x1−1/2=2,x1=3,x2−1/2=4,x2=5
步长 h = 2 {h=2} h=2 。
∫ a b f ( x ) d x ≈ h 6 [ f ( a ) + 4 ∑ k = 1 n f ( x k − 1 / 2 ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( b ) ] S 2 = 2 6 ( ln 1 + 4 ln 2 + 2 ln 3 + 4 ln 4 + ln 5 ) = 4.0414 \begin{align*} \int_{ a }^{b} f(x) \mathrm dx \approx &\frac{h}{6}[f(a)+4 \sum_{k=1}^{ n}f(x_{k-1/2})+2 \sum_{k=1}^{ n-1}f(x_k)+f(b)]\\ \\ S_2=& \frac{2}{6}(\ln1+4\ln2+2\ln3+4\ln4+\ln5) \\ \\ =& 4.0414 \end{align*} ∫abf(x)dx≈S2==6h[f(a)+4k=1∑nf(xk−1/2)+2k=1∑n−1f(xk)+f(b)]62(ln1+4ln2+2ln3+4ln4+ln5)4.0414
∣ I − S 2 ∣ ≤ ( b − a ) 5 2880 n 4 M 4 |I-S_2|\le \frac{(b-a)^5}{2880n^4}M_4 ∣I−S2∣≤2880n4(b−a)5M4
M 4 = max a ≤ x ≤ b ∣ f ( 4 ) ( x ) ∣ = max 1 ≤ x ≤ 5 ∣ ln ( 4 ) x ∣ = max 1 ≤ x ≤ 5 ∣ − 6 x 4 ∣ = 6 M_4=\max_{a\le x\le b}|f^{(4)}(x)|=\max_{1\le x\le 5}|\ln^{(4)}x|=\max_{1\le x\le 5}|- \frac{6}{x^4}|=6 M4=a≤x≤bmax∣f(4)(x)∣=1≤x≤5max∣ln(4)x∣=1≤x≤5max∣−x46∣=6
∴ ∣ I − S 2 ∣ ≤ ( 5 − 1 ) 5 2880 × 2 4 × 6 = 0.1333 \therefore |I-S_2|\le \frac{(5-1)^5}{2880 \times 2^4} \times 6=0.1333 ∴∣I−S2∣≤2880×24(5−1)5×6=0.1333