ValueError:设置具有序列的数组元素.有人能告诉我该怎么解决这个问题吗



我在python oop中有这个数字方法,这个错误出现在控制台窗口中。有人能告诉我如何解决问题吗

self.y[i+1]=self.y[i]+(h/6(*(k1+2*k2+2*k3+k4(ValueError:设置具有序列的数组元素。

class runge():
def __init__(self):
self.x = np.linspace(1, 5, 50)
self.y = np.zeros(len(self.x))
self.y[0] = 4
self.loop()
self.f()
def f(self, x, y):
return (self.x*np.sqrt(self.y))
def loop(self):
h = 0.2
for i in range(len(self.x) - 1):
k1 = self.f(self.x[i], self.y[i])
k2 = self.f(self.x[i] + h / 2, self.y[i] + k1 * (h / 2))
k3 = self.f(self.x[i] + h / 2, self.y[i] + k2 * (h / 2))
k4 = self.f(self.x[i] + h, self.y[i] + k3 * h)
self.y[i+1] = self.y[i]+(h / 6) * (k1 + 2 * k2 + 2 * k3 + k4)

def draw(self):
plt.plot(self.x, self.y)
plt.show()
run = runge()
run.draw()

您正在生成的k1、k2、k3和k4是shape=(50,(的1D数组。您正在尝试分配此阵列

z = (k1 + 2 * k2 + 2 * k3 + k4) # shape=(50,)

到作为阵列self.y中的单个元素(标量(的CCD_ 1

最新更新