数值分析实验 实验2-1 复化梯形公式 python3实现

题目:

设计复化梯形公式求积算法

代码:

# 要积的函数,字符串形式
fx_str = str(input("请输入要积的函数,格式为 x*x+1 (即变量用x表示,乘号用*表示):"))
# 求积的区间[a, b]
a, b = list(map(float, input("请输入求积区间[a, b],格式为 a b :").split()))
# 区间划分的份数
n = int(input("请输入需要划分的份数:"))
# 步长
h = (b - a) / n
# 分点,一共n+1个
x = [a+k*h for k in range(n+1)]


# 要积的函数
def fx(xk):
    return eval(fx_str.replace("x", str(xk)))


# 梯形公式 x2 > x1
def trapezium(x1, x2, fx1, fx2):
    return (fx1 + fx2) / 2 * (x2 - x1)


# 复化梯形公式
tn = 0
for i in range(n):
    tn += trapezium(x[i], x[i+1], fx(x[i]), fx(x[i+1]))


print(tn)

运行结果:

数值分析实验 实验2-1 复化梯形公式 python3实现_第1张图片

你可能感兴趣的:(数值分析实验)