es geht darum, dass ich innerhalb einer for-Schleife mittels spsolve Gleichungssystem löse. Jetzt gibt spsolve als return ein zweidimensionales array zurück, d.h bspw. [ [1,2,3]]. Nun rechne ich aber mit dem Ergebnis des Gleichungssystems weiter und benötige es als eindimensioanles array, also in dem Fall [1,2,3], da sonst im nächsten Schritt der for Schleife Probleme mit dem lösen des Gleichungssystems auftreten, also ein "ValueError: matrix - rhs dimension mismatch" . Hier ein der elementare Ausschnitt des Codes:
Code: Alles auswählen
F1=np.zeros((P-1,N-1))
I=sparse.eye((P-1)*(N-1))
G=np.zeros((P-1,N-1))
data = []
for i in range(1,M+1):
G[0,0]=g(t[i],c+h,e)+g(t[i],c,e+h)
G[0,N-2]=g(t[i],d-h,e)+g(t[i],d,e+h)
G[0,1:N-2]=g(t[i],x1[2:N-1],e)
G[1:P-2,0]=g(t[i],c,x2[2:P-1])
G[1:P-2,N-2]=g(t[i],d,x2[2:P-1])
G[1:P-2,1:N-2]=np.zeros((P-3,N-3))
G[P-2,0] = g(t[i],c,f-h)+ g(t[i],c+h,f)
G[P-2,N-2] = g(t[i],d-h,f) + g(t[i],d,f-h)
G[P-2,1:N-2]=g(t[i],x1[2:N-1],f)
G1=(1/h**2)*G.flatten()
for j in range(P-1):
F1[j,:]=f1(t[i],x1[1:N],x2[j+1])
F11=F1.flatten()
A=(I-sigma*k*H+k*B2)
fsou=k*(G1+F11)+ y00_innen
y00_innen = np.mat(sparse.linalg.spsolve(A, fsou))
data.append(y00_innen)
Lg und Vielen Dank,
Götze