我正在实施Neville的方法并且收到错误。我已经看到了其他类似错误的回复,但无济于事。这是我的代码:
def f(x):
return x**2
n = 2
x = 1.5
xa = [1.0,2.0,3.0]
func = [f(k) for k in xa ]
P = [([0] * (n+1)) for i in range(n+1)]
for i in range(0,n+1):
P[i][0] = func[i]
for i in range(1,n+1):
for j in range(1,i+1):
P[i][j] = ((x[i]-x[i-j])*(P[i][j-1]) - (x-x[i])*(P[i-1][j-1]))/(x[i]-x[i-j])
print (P)
我不断得到的错误是:
float' object has no attribute '__getitem__'
有什么想法吗?
答案 0 :(得分:1)
x
定义为1.5,并且永远不会在您的代码中进行修改。但是在不同的点上你会调用像x[i]
这样的东西,意思是“x的第i个元素” - 浮点数没有你可以通过索引引用的元素。
你可能在那些地方指xa
;但如果是这样,我不知道你为什么要x
。