python 实现复合梯形公式及复合辛普森公式

python 实现复合梯形公式及复合辛普森公式_第1张图片

#被积函数
def fun(x):
    return x/(4+x*x)
#复合梯形
def tx(a,b,n):
    h=(b-a)/n
    x=a
    s=fun(x)-fun(b)
    for k in range(1,n+1):
        x=x+h
        s=s+2*fun(x)
    result=(h/2)*s
    return result
#复合辛普森
def xps(a,b,n):   
    h=(b-a)/n
    x=a
    s=fun(x)-fun(b)
    for k in range(1,n+1):
        x=x+h/2
        s=s+4*fun(x)
        x=x+h/2
        s=s+2*fun(x)
    result=(h/6)*s
    return result
a=3
b=6
n=9
t=tx(a,b,n)
p=xps(a,b,n)
print(t,p)
0.5620542501164288 0.5619649373692952
代码求的是函数x/(4+x*x)在x=3到6上的积分

你可能感兴趣的:(python 实现复合梯形公式及复合辛普森公式)