我的程序旨在使用n個梯形在兩個數字(x1,x2)之間定義給定函數的積分。看起來,我的部門的自動評估程序給出的答案不同於mine.Problem的是,我不能發現任何錯誤在我的代碼...使用梯形法則定義積分(初學者)
def funct(x):
val= -(1./6)*(x-1)*(x-2)*(x+2)*(x-4)
return val
x1,x2,n=input()
Dx=float(x2-x1)/n
Sum=0
i=x1+Dx
while i<x2:
val=funct(i)
Sum+=val
i+=Dx
Sum=2*Sum
val1=funct(x1)
val2=funct(x2)
S=(Dx/2)*(val1+val2+Sum)
print "%.3f" %S
你使用了什麼樣的x1和x2值,答案是什麼? – ErikR 2014-12-06 22:11:19
x1和x2可以是任何實數,只要x1
user4332869
2014-12-06 22:29:35
我可以說你的風格比較巴洛克風格嗎?特別是「Sum = Sum * 2」的陳述......另一種說法是:由於數學的先天習慣和後來的程序設計,一個字母變量「i,j,k,m,n」度,'l'用來表示用作索引或計數的整數。例如,一個更加習慣的用法是'x_i = x1 + Dx' – gboffi 2014-12-06 23:12:40