【数值分析】分别使用复合梯形公式和复合辛普森公式计算如下积分(python)

本文展示了如何使用Python实现复合梯形公式和复合辛普森公式计算2到6范围内的积分∫(2到6) (2x/(4+x^2)) dx,并通过等分步长h=0.5比较两种数值积分方法的结果,同时给出了精确值的参考。
摘要由CSDN通过智能技术生成

分别使用复合梯形公式和复合辛普森公式计算如下积分:
∫ 2 6 2 x 4 + x 2 d x   \int_{2}^{6} \frac{2x}{4+x^2}dx\, 264+x22xdx
并于该积分的准确值进行比较。注意,采用复合梯形公式和复合辛普森公式时,所使用的等分步长为h=0.5。
以下是代码,用python实现:

fx1 = []
fx2 = []
sx = []
sx2 = []
# 计算f(x)值 x1为xk的值 x2为x_(k+1/2)
for x1 in (2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6):
    y = (2 * x1) / (4 + x1 ** 2)
    print("{0:.6f}".format(y))
    fx1.append(float("{0:.6f}".format(y)))
print(fx1)
for x2 in (2.25, 2.75, 3.25, 3.75, 4.25, 4.75, 5.25, 5.75):
    z = (2 * x2) / (4 + x2 ** 2)
    print("{0:.6f}".format(z))
    fx2.append(float("{0:.6f}".format(z)))
print(fx2)
print("-----------------------------------------")
# 计算复合梯度
s = 0
for xk in fx1[1: 8]:
    s = s + xk
    print("{0:.6f}".format(s))
    sx2.append(float("{0:.6f}".format(s)))
print(sx2)
print(s)
print("-----------------------------------------")
# 复合梯度法
h = 0.5
Tn = (h / 2) * (fx1[0] + 2 * s + fx1[8])
print(Tn)
print("-----------------------------------------")
# 计算复合辛普森
s2 = 0
for xh in fx2:
    s2 = s2 + xh
    print("{0:.6f}".format(s2))
    sx2.append(float("{0:.6f}".format(s2)))
print(sx2)
print(s2)
print("-----------------------------------------")
# 复合辛普森法
h = 0.5
Sn = (h / 6) * (fx1[0] + 4 * s2 + 2 * s + fx1[8])
print(Sn)

通过wolframalpha等网站进行积分准确值计算。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值