本项目是《高等数学》课程大作业,通过 Python 编程实现并比较了三种数值积分方法:
- 矩形法(左矩形、中矩形)
- 梯形法
以定积分 (\int_a^b f(x) , dx) 的计算为例,直观展示了“以直代曲”的数值积分思想,并通过可视化分析各方法的精度与收敛特性。
- Python 3.8 或更高版本
- 以下 Python 库:
- NumPy
- Matplotlib
pip install -r requirements.txt-
运行多项式函数实验(生成图1、图2):
cd Src python poly_integration.py -
运行指数函数实验(生成图3):
python exp_integration.py程序运行后会自动:
- 在控制台输出数值结果与误差分析
- 生成可视化图像并保存
- 显示对比图表
- 测试函数:( f(x) = e^x )
- 积分区间:( [0, 1] )
- 精确值:( e - 1 \approx 1.718281828 )
- 可视化输出:
numerical_integration_results.png
包含四个子图:
- 左矩形法的几何示意(n=32)
- 中矩形法的几何示意(n=32)
- 梯形法的几何示意(n=32)
- 误差收敛曲线(对数坐标,n=2~100)
- 测试函数:( f(x) = x^2 + 0.5 )
- 积分区间:( [0, 2] )
- 精确值:( \frac{8}{3} \approx 2.666667 )
- 可视化输出:
riemann_sum_convergence.png(黎曼和逼近)rect_vs_trap.png(矩形法与梯形法对比)
所有关键参数都在每个脚本文件开头集中设置,方便修改:
# 积分区间
a, b = 0, 1
# 分割数设置
n = 32 # 基本分割数(前三个图的n值)
max_n_for_plot = 100 # 误差图的最大n值# 积分区间
a, b = 0, 2
# 分割数设置
n_values_plot1 = [4, 8, 16] # 图1的分割数列表
n_plot2 = 4 # 图2的分割数| 方法 | 近似值 | 绝对误差 | 相对误差 |
|---|---|---|---|
| 左矩形法 | 1.6920 | 0.0263 | 1.53% |
| 中矩形法 | 1.7182 | 0.0001 | 0.006% |
| 梯形法 | 1.7183 | 0.0000 | 0.001% |
- 左矩形法:误差以 (O(1/n)) 速率下降
- 中矩形法:误差以 (O(1/n^2)) 速率下降
- 梯形法:误差以 (O(1/n^2)) 速率下降,常数项更小
- 模块化设计:每个积分方法都是独立函数
- 参数集中配置:所有可调参数在文件开头统一设置
- 完整可视化:自动生成几何示意图和误差分析图
- 详细输出:控制台显示分步结果和误差数据
- 中文支持:完整的中文字符显示配置
要测试其他函数,只需修改两处:
-
修改函数定义(在两个脚本的
f(x)函数中):def f(x): return np.sin(x) # 例如改为正弦函数
-
更新精确积分值(如果需要误差分析):
exact_value = -np.cos(b) + np.cos(a) # ∫ sin(x)dx = -cos(x)
本项目对应的实验报告主要包含:
- 数值积分的基本原理与黎曼和思想
- 矩形法(左、中)与梯形法的公式推导
- 数值实验结果与误差分析
- 可视化展示与收敛特性讨论
- 方法比较与应用建议
- 姓名:刘芳玮
- 学号:2503020319
- 课程:高等数学(上)
- 学期:2025-2026学年 第1学期
本项目代码部分由刘芳玮(学号:2503020319)完成,为《高等数学》课程作业。 代码开源仅供学习交流,请勿直接复制提交。
提示:如果运行时报中文字体错误,可安装中文字体或修改代码中的字体设置为系统已有字体。
项目创建日期:2025年12月 最后更新:2025年12月