簡體   English   中英

python集成問題,函數具有指數

[英]python integration issue, the function with exponential

我想通過simpson規則集成函數e ^(-x ** 2/2),但是它一直有錯誤,我不知道這是什么問題。

a=eval(input('a:'))
b=eval(input('b:'))
n=eval(input('n:'))
def f(x):
    e**(-x**2/2)
h=(b-a)/n
s= f(a)+f(b)
def simpson_rule(f(x),a,b,n):

  #Approximation by Simpson's rule
  c=(a+b)/2.0
  h=abs(b-a)/2.0
  return h*(f(a)+4.0*f(c)+f(b))/3.0
def simpson_rule(f(x),a,b,n):
    """Approximates the definite integral of f from a to b by the composite Simpson's rule, using n subintervals"""
    for i in range (1,n,2):
        s+=4*f(a+i*h)
    for i in range(2,n-1,2):
        s+=2*f(a+i*h)
    return s*h/3
print simpson_rule(f(x),a,b,n)

您定義了兩個具有相同名稱的集成例程。 如果您調用simpson_rule()則希望運行哪一個? 第一個是n = 1的特殊情況。 您可以相應地重命名。

其次,您的調用是print simpson_rule(f(x),a,b,n)但您只需要將f()移交給函數,就像這個print simpson_rule(f,a,b,n) 您可以看到f是一個函數,而f()是一個函數返回值:

 def f(x): return x + 13 f <function f at 0x0000000002253D68> f(5) 18 

試試看,如果仍然有錯誤,請發布錯誤消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM