Поэтому я пытаюсь применить слабое усреднение к моему коду, который соответствует моему адвекционному коду FTCS.Чтобы заставить оригинальный код работать, я установил первые три значения для каждого временного шага в 1, используя np.ones.Который работал.Однако по какой-то причине при добавлении дополнительного термина для слабого усреднения возникает такая ошибка: TypeError: невозможно умножить последовательность на не-int типа 'float'
Любая помощь будет принята, яМне трудно понять, как один термин может заставить его не работать
n=0
J=100
te=np.arange(0.0,10,0.1) # Initial ghost element
ue=np.array([1])
ue=np.append(ue,np.copysign(1,np.sin(te)))
ue=np.append(ue,-1)
plt.xlabel('x')
plt.ylabel('u(x,t)')
plt.plot()
plt.show()
plt.plot(ue,label=('Timestep =', n),color='grey')
plt.legend()
h=1
v=0.1
k=1
x=0
t=0
i=2
A=np.ones([3])
while i<100:
A=np.append((0.5*(A, ue[i+1]))+(0.5*(A, ue[i-1])) - ((k*v)/(2*h))*(ue[i+1]) + ((k*v)/(2*h))*(ue[i-1]))