Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中创建Romberg集成函数_Python_Math_Numerical Analysis - Fatal编程技术网

在Python中创建Romberg集成函数

在Python中创建Romberg集成函数,python,math,numerical-analysis,Python,Math,Numerical Analysis,我有一个用于Romberg集成的python函数,如下所示: def romberg(f,a,b,n): RArray = numpy.zeros(shape=(n,n)) for i in range(0,n): RArray[i,0]=trapezoidRule(f,a,b,i+1) for k in range(1,n): for j in range(1,k): RArray[k,j]=R

我有一个用于Romberg集成的python函数,如下所示:

def romberg(f,a,b,n):
     RArray = numpy.zeros(shape=(n,n))
     for i in range(0,n):
          RArray[i,0]=trapezoidRule(f,a,b,i+1)
     for k in range(1,n):
          for j in range(1,k):
               RArray[k,j]=RArray[k,j-i]+((RArray[k,j-1]-RArray[k-1,j-1])/(4**(j-1)-1))
     return RArray
其中梯形规则是函数

def trapezoidRule(f,a,b,n):
     h=float((b-a)/n)
     ans=(f(a)/2)+(f(b)/2)
     for i in range(1,n):
          ans+=f(a+(i*h))
     ans=ans*h
     return ans
我发送的参数包括:

f = lambda x: (3/(1+x**5))
a=0
b=2
n=4

但是我得到了一个运行时警告,而没有得到我想要的RArray。有人能帮我找出问题所在吗?(我很确定我的romberg函数中的范围是错误的,但不管怎样我调整了它们,我仍然会得到一个错误或警告)

在第7行,当你除以
(4**(j-1)-1)
,当
j==0
时,这个值变为零。 这就是为什么会出现“除以零”的运行时警告