问题描述
组合梯形公式求函数f(x)=2+sin(2*sqrt(x))的积分近似值。
输入形式
在屏幕上依次输入积分上限、下限和等距子区间个数。
输出形式
输出使用组合梯形公式求得的积分近似值。
样例输入
1 6 10
样例输出
8.19385457
样例说明
输入:积分上限a为1、下限b为6和等距子区间个数m为10。输出:积分近似值(保留小数点后8位有效数字)
代码
# 组合梯形公式
import math
def Input():
a, b, m = input().split()
a = float(a)
b = float(b)
m = int(m)
return a, b, m
def f(x):
return 2 + math.sin(2 * math.sqrt(x))
def traprl(a, b, m):
h = (b - a) / m
s = 0
for k in range(1, m):
x = a + h * k
s += f(x)
s = h * (f(a) + f(b)) / 2 + h * s
return s
def out(x):
print(x)
def main():
a, b, m = Input()
ans = traprl(a, b, m)
out('%.8f' % ans)
if __name__ == '__main__':
main()