用Simpson公式求积分的代码
时间: 2024-09-29 10:11:31 浏览: 30
MATLAB复化辛普森(Simpson)公式和复化梯形公式求积分
Simpson法则是一种数值积分算法,它通过将区间分割成若干个等宽的小段,并利用二次多项式近似函数在每个小段内的值来估算定积分。以下是一个简单的Python代码示例,使用Simpson法则计算函数在特定区间上的积分:
```python
def simpson(f, a, b, n):
h = (b - a) / n # 小区间的宽度
x = [a + i * h for i in range(n+1)] # 样本点
integral = f(a) + f(b) # 左右端点的函数值
for i in range(1, n, 2): # 只计算奇数索引的节点
integral += 4 * f(x[i]) # Simpson公式的权重系数
if n % 2 == 0: # 如果n为偶数,需要额外加一个中间点
integral += 2 * f(x[n // 2])
return h / 3 * integral
# 使用示例:假设我们有一个匿名函数f(x),想求[0, 1]区间上的积分
from math import sin
func = lambda x: sin(x)
integral_approx = simpson(func, 0, 1, 100)
print("积分的近似值:", integral_approx)
阅读全文