-6

私はNevilleのメソッドを実装していますが、エラーが発生しています。私は同様のエラーの他の応答を見てきましたが、無駄です。ここに私のコードは次のとおりです。float 'オブジェクトに属性' __getitem__ 'がありません

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__' 

任意のアイデア?

+1

'x-x [i]'は 'x'の型に関わらずほとんど動作しません。その場合、 'x'は浮動小数点型であり、配列としてアクセスしています。 –

+0

'x - xa [i]'などを意味しましたか? –

+0

複数の場所に 'x [i]'があり、フロートである 'x = 1.5'があります。 – Sevanteri

答えて

1

xは1.5と定義されており、コード内で変更されることはありません。しかし、さまざまな時点では、x[i]のように、「xのi番目の要素」を意味します。つまり、floatにはインデックスで参照できる要素がありません。

これらの場所ではxaを意味する可能性があります。もしそうなら、私はあなたがなぜxを持っているのか分からない。

関連する問題