Python数值计算(33)——simpson 3/8积分公式

1. 背景知识

既然前的Simpson可以通过使用三个点构造二次曲线近似积分,那么,如果点数增加到了4个,然后不就可以构造三次多项式的曲线,实现对目标值的积分吗?

如果采用和上一节介绍的同样的方法,我们可以推导出:

其中

2. 算法实现

通过上述原理可以很容易使用Python实现:

python 复制代码
# Simpson's 3/8 Rule for Numerical Integration
import numpy as np
def simpson38(f, a, b):
    h=(b-a)/3
    x=np.linspace(a,b,4)
    y=np.vectorize(f)(x)
    return 3*h*(y[0]+3*y[1]+3*y[2]+y[3])/8.0

如果使用该方法,计算humps函数在区间[0,1]上的数值积分,其效果如下:

可见误差相比之前有了很大的改善,但还是有27%,还是偏大的。

3. 复合simpson 3/8积分公式

和前面类似,如果将一个大的积分区间,划分为更多个较小的积分区间,在每个积分区间上使用Simpson 3/8积分公式,则可以更加贴近原函数,和复合Simpson 1/3积分公式要求点的个数为偶数类似,这个也要求点的个数为3的倍数。

最终实现效果如下:

相关推荐
qqqweiweiqq2 分钟前
Jetson Orin nx 无法train pi0
人工智能·python·深度学习
AAA大运重卡何师傅(专跑国道)4 分钟前
scrapling框架源码5/19
python
xingyuzhisuan8 分钟前
Jupyter Notebook 云GPU配置全解析(含实操+选型指南)
ide·python·jupyter·gpu算力
ITIRONMAN15 分钟前
开源data-compare:轻量级数据对比工具
人工智能·python
云姜.26 分钟前
如何快速使用Langchain上手编程
python·langchain
念恒1230636 分钟前
Python(for循环进阶)
开发语言·python
AI玫瑰助手1 小时前
Python运算符:算术运算符(加减乘除取模幂)详解
开发语言·python
情绪总是阴雨天~1 小时前
深度解析:LangChain、Agent、RAG、FC、ReAct、LangGraph、A2A、MCP — 区别、联系与全景图
python·langchain·agent·rag·langgraph·mcp·a2a
小李不困还能学1 小时前
PyCharm2025.2下载安装配置保姆级教程
python·pycharm
A000—ic测试座(陈佳鑫)1 小时前
芯片高温加速寿命测试:除了初始测试还有哪些关键条件?
网络·人工智能·python