题目:
文章图片
代码:
import math# 求积区间
a, b = 0, 1
# 区间二分的最大次数
n = 4
# 分点
x = []# 要积的函数
def fx(xk):
if xk == 0:
return 1
return math.sin(xk) / xk# 梯形公式 x2 > x1
def trapezium(x1, x2):
return (fx(x1) + fx(x2)) / 2 * (x2 - x1)# 梯形公式结果集
# 存放t1,t2,t4,t8
tn_list = []
for i in range(n+1):
subscript = int(math.pow(2, i))
# 步长
h = (b - a) / subscript
x = [a+k*h for k in range(subscript+1)]
tn = 0
for j in range(subscript):
tn += trapezium(x[j], x[j+1])
tn_list.append(tn)l1 = [4/3, 16/15, 64/63]
l2 = [1/3, 1/15, 1/63]temp = 0
while temp != 3:
temp += 1
for i in range(len(tn_list) - 1):
tn_list[i] = tn_list[i + 1] * l1[temp - 1] - tn_list[i] * l2[temp - 1]
tn_list.pop()print(tn_list)
运行结果: 【数值分析实验 实验2-3 龙贝格公式 python3实现】
文章图片
推荐阅读
- 数值分析实验 实验2-1 复化梯形公式 python3实现
- 数值分析实验 实验1-1 拉格朗日插值公式 python3实现
- 数值分析实验 实验4-2 选主元高斯消去法 python3实现
- 数值分析实验 实验1-2 牛顿插值公式 python3实现