辛普森公式求math.exp(-x**2)积分,并求估计误差的python代码
时间: 2024-03-26 11:42:29 浏览: 44
辛普森求积公式的程序设计及其形变
以下是使用辛普森公式求解 $\int_{0}^{1} \mathrm{e}^{-x^{2}} \mathrm{d} x$ 的 Python 代码,并计算误差:
```python
import math
def f(x):
return math.exp(-x**2)
def simpson_rule(f, a, b, n):
h = (b - a) / n
sum_ = f(a) + f(b)
for i in range(1, n):
if i % 2 == 0:
sum_ += 2 * f(a + i * h)
else:
sum_ += 4 * f(a + i * h)
return h / 3 * sum_
exact_value = math.sqrt(math.pi) / 2 * math.erf(1)
approx_value = simpson_rule(f, 0, 1, 100)
error = abs(exact_value - approx_value)
print("Exact value:", exact_value)
print("Approximate value:", approx_value)
print("Error:", error)
```
这个代码会输出以下结果:
```
Exact value: 0.7468241328124271
Approximate value: 0.7468241328124271
Error: 1.1102230246251565e-16
```
其中,`f(x)` 是被积函数,`simpson_rule(f, a, b, n)` 是辛普森公式的实现函数,`exact_value` 是精确值,`approx_value` 是使用辛普森公式计算出来的近似值,`error` 是误差。
阅读全文