Simpson's rule 辛普森法則
- ,
where and .
1,4,2,4,2 ....1
# 利用辛普森 理則 (Simpson's Rule)
#例題4-4 (a) 計算 exp( 1/x) 在[1, 2]的定積分
# (b) 計算 ( 1/x) 在[1, 2]的定積分
import math
def F1(x):
temp= math.exp(1/x)
return temp
def F2(x):
temp=(1/x)
return temp
a=1.0
b=2.0
n=4
sum1=0.0
sum2=0.0
sn=0.0
m=int(n/2)
h=(b-a)/n
print( "計算 exp( 1/x) 在[1, 2]的定積分")
for i in range (1,2*m):
x=a+i*h
if(i%2==0):
sum2=sum2+F1(x)
else:
sum1=sum1+F1(x)
sn= (h/3.0)*(F1(a)+F1(b)+2.0*sum2+4.0*sum1)
print("S{%d}={%f}" % (n,sn))
print('\n')
a=1.0
b=2.0
n=10
sum1=0.0
sum2=0.0
sn=0.0
m=int(n/2)
h=(b-a)/n
print( "計算 ( 1/x) 在[1, 2]的定積分")
for i in range (1,2*m):
x=a+i*h
if(i%2==0):
sum2=sum2+F2(x)
else:
sum1=sum1+F2(x)
sn= (h/3.0)*(F2(a)+F2(b)+2.0*sum2+4.0*sum1)
print("S{%d}={%f}" % (n,sn))
輸出畫面
======== RESTART: F:/2018-09勤益科大數值分析/數值分析/PYTHON/EX4-4.py ===========
計算 exp( 1/x) 在[1, 2]的定積分
S{4}={1.105764}
S{4}={1.430386}
S{4}={2.020651}
計算 ( 1/x) 在[1, 2]的定積分
S{10}={0.171212}
S{10}={0.226768}
S{10}={0.329332}
S{10}={0.376951}
S{10}={0.465840}
S{10}={0.507506}
S{10}={0.585938}
S{10}={0.622975}
S{10}={0.693150}
>>>
沒有留言:
張貼留言