Files
CalWay_Python/120-3.py
2025-04-17 12:41:06 +08:00

27 lines
762 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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))