【数值计算方法(黄明游)】数值积分(一):复化(梯形公式、中点公式)【理论到程序】

文章目录

  • 一、梯形公式、中点公式
    • [1. 梯形公式(Trapezoidal Rule):](#1. 梯形公式(Trapezoidal Rule):)
    • [2. 复化梯形公式(Composite Trapezoidal Rule):](#2. 复化梯形公式(Composite Trapezoidal Rule):)
    • [3. 中点公式(Midpoint Rule):](#3. 中点公式(Midpoint Rule):)
    • [4. 复化中点公式(Composite Midpoint Rule):](#4. 复化中点公式(Composite Midpoint Rule):)
  • 二、例题
  • 三、程序
    • [1. 中点公式](#1. 中点公式)
    • [2. 梯形公式](#2. 梯形公式)

积分学的基本定理告诉我们,只要能找到 f ( x ) f(x) f(x) 的原函数 F ( x ) F(x) F(x),就可以通过 F ( b ) − F ( a ) F(b) - F(a) F(b)−F(a) 来求得定积分的值。但实际上,找到 f ( x ) f(x) f(x) 的原函数 F ( x ) F(x) F(x) 并不总是容易的事情。有些函数的原函数可能没有简洁的表达式,或者无法通过常见的初等函数表示。

为了解决这个问题,数值积分方法提供了一种近似计算定积分的途径。这些方法通过离散化积分区间,使用数值技术来估计积分值。下面将介绍一些常见的数值积分方法:

一、梯形公式、中点公式

1. 梯形公式(Trapezoidal Rule):

梯形公式是最简单的数值积分方法之一,它基于使用梯形逼近曲线下的面积,其数学表达式为:

∫ a b f ( x )   d x ≈ b − a 2 [ f ( a ) + f ( b ) ] \int_a^b f(x) \,dx \approx \frac{b-a}{2} [f(a) + f(b)] ∫abf(x)dx≈2b−a[f(a)+f(b)]

通过连接函数图像上的两个端点,形成一个梯形,然后计算梯形的面积来估计定积分值。

2. 复化梯形公式(Composite Trapezoidal Rule):

复化梯形公式是对梯形公式的改进,通过将积分区间分割成多个小区间,然后在每个小区间上应用梯形公式,最后将结果相加,其数学表达式为:

∫ a b f ( x )   d x ≈ h 2 [ f ( a ) + 2 f ( x 1 ) + 2 f ( x 2 ) + ... + 2 f ( x n − 1 ) + f ( b ) ] \int_a^b f(x) \,dx \approx \frac{h}{2} [f(a) + 2f(x_1) + 2f(x_2) + \ldots + 2f(x_{n-1}) + f(b)] ∫abf(x)dx≈2h[f(a)+2f(x1)+2f(x2)+...+2f(xn−1)+f(b)]

其中, h = ( b − a ) / n h=(b-a)/n h=(b−a)/n 是每个小区间的宽度。

3. 中点公式(Midpoint Rule):

中点公式使用区间中点的函数值来逼近曲线下的面积,数学表达式为:

∫ a b f ( x )   d x ≈ f ( a + b 2 ) ( b − a ) \int_a^b f(x) \,dx \approx f\left(\frac{a+b}{2} \right)(b-a) ∫abf(x)dx≈f(2a+b)(b−a)

4. 复化中点公式(Composite Midpoint Rule):

复化中点公式是对中点公式的改进,通过将积分区间分割成多个小区间,然后在每个小区间上应用中点公式,最后将结果相加,数学表达式为:

∫ a b f ( x )   d x ≈ h ∑ i = 0 n − 1 f ( a + h 2 + i h ) \int_a^b f(x) \,dx \approx h \sum_{i=0}^{n-1} f\left(a + \frac{h}{2} + ih\right) ∫abf(x)dx≈hi=0∑n−1f(a+2h+ih)

其中, h h h 是每个小区间的宽度, n n n 是分割的小区间数量。

二、例题

有一组(x, y)值:

( y = e x y=e^x y=ex)
( 1.1 , 3.0042 ) ( 1.3 , 3.6693 ) ( 1.5 , 4.4817 ) \begin{align*} & (1.1, 3.0042) \\ & (1.3, 3.6693) \\ & (1.5, 4.4817) \end{align*} (1.1,3.0042)(1.3,3.6693)(1.5,4.4817)

  • 使用中点公式: ∫ a b f ( x )   d x ≈ ( b − a ) ⋅ f ( a + b 2 ) \int_a^b f(x) \,dx \approx (b - a) \cdot f\left(\frac{a + b}{2}\right) ∫abf(x)dx≈(b−a)⋅f(2a+b)

    • 这里 a = 1.1 a = 1.1 a=1.1, b = 1.5 b = 1.5 b=1.5,所以中点公式为: ∫ 1.1 1.5 f ( x )   d x ≈ ( 1.5 − 1.1 ) ⋅ f ( 1.1 + 1.5 2 ) = 0.4 f ( 1.3 ) = 1.46772 \int_{1.1}^{1.5} f(x) \,dx \approx (1.5 - 1.1) \cdot f\left(\frac{1.1 + 1.5}{2}\right)=0.4f(1.3)=1.46772 ∫1.11.5f(x)dx≈(1.5−1.1)⋅f(21.1+1.5)=0.4f(1.3)=1.46772
  • 使用复化梯形公式: ∫ a b f ( x )   d x ≈ h 2 [ f ( x 0 ) + 2 f ( x 1 ) + 2 f ( x 2 ) + ... + 2 f ( x n − 1 ) + f ( x n ) ] \int_{a}^{b} f(x) \,dx \approx \frac{h}{2} \left[ f(x_0) + 2f(x_1) + 2f(x_2) + \ldots + 2f(x_{n-1}) + f(x_n) \right] ∫abf(x)dx≈2h[f(x0)+2f(x1)+2f(x2)+...+2f(xn−1)+f(xn)]

    • 这里小区间的宽度 h = 0.2 h=0.2 h=0.2,代入数据点的 y y y 值:
      ∫ 1.1 1.5 f ( x )   d x ≈ 0.2 2 [ 3.0042 + 2 ⋅ 3.6693 + 4.4817 ] = 1.48245 \int_{1.1}^{1.5} f(x) \,dx \approx \frac{0.2}{2} \left[ 3.0042+ 2\cdot 3.6693 + 4.4817 \right]=1.48245 ∫1.11.5f(x)dx≈20.2[3.0042+2⋅3.6693+4.4817]=1.48245

三、程序

1. 中点公式

python 复制代码
def midpoint_rule(data):
    result = 0
    for i in range(len(data) - 1):
        a, fa = data[i]
        b, fb = data[i + 1]
        result += (b - a) * fb
    return result

2. 梯形公式

python 复制代码
def trapezoidal_rule(data):
    result = 0
    for i in range(len(data) - 1):
        a, fa = data[i]
        b, fb = data[i + 1]
        result += (b - a) * (fa + fb) / 2
    return result
相关推荐
适应规律11 小时前
强化学习笔记(赵世钰)
笔记·线性代数·概率论
Zero1 天前
机器学习概率论与统计学--(8)概率论:数字特征
机器学习·概率论·随机变量·统计学·方差·协方差·期望
Zero1 天前
机器学习概率论与统计学--(9)统计学:参数估计
机器学习·概率论·统计学·矩估计·最大似然估计·点估计
R语言爱好者2 天前
对比两点分布、二项分布和泊松分布,几何分布,超几何分布之间的区别
概率论·高中数学
bulingg3 天前
L1与L2正则化的差异
线性代数·矩阵·概率论
皮蛋瘦肉熬不成粥4 天前
MES(The Measures of Effect Size )工具箱的使用
matlab·概率论
我要学好英语4 天前
概率密度——分布、期望、方差和协方差
深度学习·概率论·概率密度·方差·协方差·期望·分布
我要学好英语4 天前
概率法则——贝叶斯定理
深度学习·概率论·贝叶斯定理
Eloudy5 天前
贝叶斯定律的内涵
概率论
Zero5 天前
机器学习概率论与统计学--(6)概率论:连续分布
机器学习·概率论·统计学·概率密度函数·连续分布