第四章1

This commit is contained in:
2025-04-17 12:41:06 +08:00
parent bded38c54f
commit 18f97ed631

27
120-3.py Normal file
View File

@@ -0,0 +1,27 @@
x1, x2 = 3, 6
def fx(x):
return x/(4+x**2)
# n等分x1到x2的区间type=1表示梯形法type=2表示辛普森法
def CompositeNewtonCotes(n, type):
if type == 1:
h = (x2 - x1) / n
result = 0
for i in range(n):
result += (fx(x1 + i * h) + fx(x1 + (i + 1) * h))
result *= (h / 2)
return result
elif type == 2:
h = (x2 - x1) / n
result = -fx(x1) + fx(x2)
for i in range(n):
result += (4 * fx(x1 + (i + 0.5) * h) + 2 * fx(x1 + i * h))
result *= (h / 6)
return result
if __name__ == "__main__":
print("Composite Trapezoidal Rule: ", CompositeNewtonCotes(8, 1))
print("Composite Simpson's Rule: ", CompositeNewtonCotes(4, 2))