我是编程的新手,只是从一开始就明确指出。我试图对Romberg的算法进行编码,但是在第8行中不断弹出错误-“ float”对象不可下标。我真的不明白为什么它不能下标-其他行的错误是错误的还是该行中有错误?我已经尝试了一段时间,但没有任何想法。
import numpy as np
from pylab import *
i=0
j=0
def romberg(f,a,b,n,r=[i,j]):
h=b-a
r[i,j]=(h/2)[f(a)+f(b)]
for i in range(n):
i=1
h=0
h=h/2
sum=0
for k in range(2**i-2):
k=1
sum=sum+f(a+k*h)
r[0,0]=(1/2)*r[i-1,0]+(sum)*h
for j in range(i):
j=1
r[i,j]=r[i,j-1]+(r[i,j-1]-r[i-1,j-1])/(4**j-1)
def f(a):
return np.cos(90)
solution=romberg(f,0,np.pi,10,r=[0,0])
print(solution)