Python实现复合辛普森求积公式

来源:互联网 发布:零基础java用什么书 编辑:程序博客网 时间:2024/05/13 01:44

Python实现复合辛普森求积公式

# -*- coding:utf-8 -*-import mathdef simpr(f, a, b, n):"""simpr函数为用复合辛普森公式求积分   f是被积函数   a,b分别为积分的上下限   n是子区间的个数   s是梯形总面积,即所求积分数值"""h = (b - a) / (2 * n)s1 = 0s2 = 0for k in range(1,n+1):x = a + h * (2 * k -1)s1 = s1 + f(x)for k in range(1,n):x = a + h * 2 * ks2 = s2 + f(x)s = h * (f(a) + f(b) + 4 * s1 + 2 * s2) / 3 return sdef f(g):'''f函数为求积函数,此函数返回相应的函数值'''return math.exp(g) + 10*g - 1if __name__ == '__main__':a = 0.0b = 1.0n = 5sum = simpr(f,a, b, n)print "用复合simpson公式求得积分值为:",sumprint "精确的积分值为:", 3+math.e
0 0
原创粉丝点击