Ich bin bei der Montage eine Reihe von Daten mit numpy.lstsq()
:Parameter Einschränkung in numpy lstsq
numpy.linalg.lstsq(a,b)[0]
kehrt so etwas wie:
array([ -0.02179386, 0.08898451, -0.17298247, 0.89314904])
Beachten Sie die passende Lösung eine Mischung aus positiven und negativen Schwimmer ist.
Leider stellen die passenden Lösungen in meinem physischen Modell eine Masse dar: Folglich möchte ich lstsq()
erzwingen, eine Reihe positiver Werte als eine Lösung der Anpassung zurückzugeben. Ist es möglich, dies zu tun?
d.h.
solution = {a_1, ... a_i, ... a_N} with a_i > 0 for i = {1, ..., N}
Sie können die negativen Float-Werte mit Nullen wie 'np.linalg.lstsq (A, y) [0] .clip (min = 0)' ersetzen, wenn es das ist, was Sie fragen. –
nein, ich möchte lstsq eine Lösung mit nur positiven Werten finden. Wenn ich negative Werte in einer Lösung durch 0 ersetze, wie Sie vorschlagen, stimmt die Anpassung nicht mehr überein. – rudy