Ich muss eine große Anzahl von 3x3 symmetrischen, postive-definite Systemen mit Python lösen. Bisher habe ichEine große Anzahl von kleinen linearen Systemen lösen
res = numpy.zeros(n)
for k, obj in enumerate(data_array):
# construct A, rhs, idx from obj
res[idx] += numpy.linalg.solve(A, rhs)
Dies erzeugt das richtige Ergebnis, aber auch ziemlich langsam ist, wenn n
groß ist. (Naja ... Ja.) Vielleicht ist 3x3 keine Problemgröße, wo das Aufrufen von solve()
Sinn macht.
Irgendwelche Hinweise?
Genau was ich brauchte. Vielen Dank! –
Das Entscheidungskriterium wird durch "a: (..., M, M) array_like" und "b: {(..., M,), (..., M, K)}" in der Dokumentation angedeutet, wenn auch in etwas kryptischer Form. –
@pv .: Nicht wirklich. Wenn Sie zum Beispiel nach diesen Formen gehen, erwarten Sie, dass 'a.shape == (5, 5, 5, 5)' und 'b.shape == (5, 5, 4)' Matrix, und Sie würden erwarten, dass 'a.shape == (5, 5, 5, 5)' und 'b.shape == (5,)' einen Matrix-Vektor erstellen, aber NumPy wählt die entgegengesetzten Interpretationen. – user2357112