Ошибка типа: невозможно умножить последовательность на не-int типа 'float' - массивы np.ones - PullRequest
0 голосов
/ 18 ноября 2018

Поэтому я пытаюсь применить слабое усреднение к моему коду, который соответствует моему адвекционному коду 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]))
...