回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我见过类似问题的答案,但在代码中找不到把x当作int的地方</p>
<pre><code>import matplotlib.pyplot as plt
import numpy as np
def aitken(x,y,value,n):
if n == 1:
return y[0]
first_array = x.pop(n-1)
second_array = x.pop(n-2)
first_y = y.pop(n-1)
second_y = y.pop(n-2)
n1 = n-1
return (aitken(first_array,first_y,value,n1)*(value - x[n-1]) - aitken(second_array, second_y,value,n1)*(value - x[n-2]))/(x[n-1] - x[n-2])
x = [1, 4, 7, 11, 15, 20, 30, 50, 77, 92, 100]
y = [5, 20, 52, 121, 228, 403, 903, 2504, 5929, 8464, 10005]
n = len(x)
x_fit = np.arange(0,104,1)
y_fit = aitken(x,y,x_fit,n)
</code></pre>
<p>以下是错误消息:</p>
<pre><code> File "exl.py", line 17, in <module>
y_fit = aitken(x,y,x_fit,n)
File "exl.py", line 13, in aitken
return (aitken(first_array,first_y,value,n1)*(value - x[n-1]) - aitken(second_array, second_y,value,n1)*(value - x[n
-2]))/(x[n-1] - x[n-2])
File "exl.py", line 8, in aitken
first_array = x.pop(n-1)
AttributeError: 'int' object has no attribute 'pop'
</code></pre>
<p>对不起,这个问题太简单了。我对Python还不熟悉。你知道吗</p>