第四章1
This commit is contained in:
27
120-3.py
Normal file
27
120-3.py
Normal 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))
|
||||||
Reference in New Issue
Block a user