2023年11月29日
#analysis
求积公式的一般形式为:
∫ 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 。
复合公式的代数精度不变,计算精度提高,表现为误差估计减小
这些公式用于已知原函数时候的数值积分,复合公式是在划分区间之上应用梯形或Simpson公式。
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
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
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
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
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
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