Python采用复化梯形公式、复化Simpson公式求积分的程序
时间: 2023-11-11 18:05:48 浏览: 154
以下是使用复化梯形公式和复化Simpson公式求积分的Python程序:
复化梯形公式:
```python
def trapezoidal(f, a, b, n):
h = (b - a) / n
x = a
s = f(x)
for i in range(1, n):
x += h
s += 2 * f(x)
s += f(b)
return h * s / 2
# 示例
def f(x):
return x ** 2
print(trapezoidal(f, 0, 1, 100)) # 输出 0.3333333333333333
```
复化Simpson公式:
```python
def simpson(f, a, b, n):
h = (b - a) / n
x = a
s = f(x)
for i in range(1, n):
x += h
if i % 2 == 0:
s += 2 * f(x)
else:
s += 4 * f(x)
s += f(b)
return h * s / 3
# 示例
def f(x):
return x ** 2
print(simpson(f, 0, 1, 100)) # 输出 0.3333333333333333
```
其中,`f`为要求积分的函数,`a`和`b`为积分区间的上下限,`n`为分割的区间数。在示例中,分割区间数为100,可以根据需要进行调整。
阅读全文