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

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

# -*- coding:utf-8 -*-
import math
def simpr(f, a, b, n):
"""simpr函数为用复合辛普森公式求积分
   f是被积函数
   a,b分别为积分的上下限
   n是子区间的个数
   s是梯形总面积,即所求积分数值"""
h = (b - a) / (2 * n)
s1 = 0
s2 = 0
for 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 * k
s2 = s2 + f(x)
s = h * (f(a) + f(b) + 4 * s1 + 2 * s2) / 3 
return s

def f(g):
'''f函数为求积函数,此函数返回相应的函数值'''
return math.exp(g) + 10*g - 1

if __name__ == '__main__':
a = 0.0
b = 1.0
n = 5
sum = simpr(f,a, b, n)
print "用复合simpson公式求得积分值为:",sum
print "精确的积分值为:", 3+math.e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值