写一个 用龙贝格算法构造从0.00到4.99的标准正态分布表(表格横向从0.00到0.09,纵向从0.0到4.9)的python代码
时间: 2024-02-25 10:55:15 浏览: 110
以下是使用龙贝格算法构造标准正态分布表的 Python 代码:
```python
import math
# 定义标准正态分布的概率密度函数
def normal_pdf(x):
return math.exp(-x**2/2)/math.sqrt(2*math.pi)
# 定义龙贝格算法
def romberg_integration(f, a, b, n):
R = [[0]*(n+1) for i in range(n+1)]
h = b - a
R[0][0] = 0.5*h*(f(a) + f(b))
for i in range(1, n+1):
h = 0.5*h
sum = 0
for k in range(1, 2**i, 2):
sum += f(a + k*h)
R[i][0] = 0.5*R[i-1][0] + sum*h
for j in range(1, i+1):
R[i][j] = (4**j*R[i][j-1] - R[i-1][j-1])/(4**j - 1)
return R[n][n]
# 构造标准正态分布表
for i in range(50):
x = i/10
for j in range(50):
y = j/10
if x >= y:
prob = romberg_integration(normal_pdf, y, x, 10)
print("{:.2f}".format(prob), end='\t')
else:
print("", end='\t')
print()
```
这段代码将输出一个 50 行 50 列的表格,横向从 0.00 到 0.49,纵向从 0.0 到 4.9。每个格子中的值表示标准正态分布在该格子横纵坐标围成的区域内的累积概率密度值。
阅读全文