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

文章目录

  • 一、梯形公式、中点公式
    • [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−af(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≈2hf(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≈2hf(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.23.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
相关推荐
2301_800895102 小时前
概率论保研面试---h
概率论
我是慎独12 小时前
人工智能:现代方法读书笔记(十三)
人工智能·概率论
知识分享小能手5 天前
概理论与数理统计学习教程,从入门到精通,随机变量的数字特征 — 知识点总结与详细推导(7)
学习·机器学习·概率论
ccLianLian6 天前
数理基础·高等数学摘要
线性代数·概率论
XLYcmy7 天前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
killerbasd8 天前
总结 8。15
人工智能·机器学习·概率论
瑞码空间13 天前
概率论与数理统计完整知识笔记
概率论·数理统计
过期的秋刀鱼!15 天前
倾斜数据集的错误指标-混淆矩阵
人工智能·python·深度学习·机器学习·概率论·模型评估
六边形战士DONK19 天前
16-估计量的评选标准[无偏性,有效性,相合性,均方误差准则]
人工智能·机器学习·概率论
六边形战士DONK19 天前
11-常见随机变量的分布[连续型]
概率论