Matrix gleichsetzen / Sympy /Solve Befehl

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
paracide
User
Beiträge: 11
Registriert: Dienstag 9. August 2011, 20:55

Hi,

ich such jetzt schon eine weile einen Ansatz und finde ihn nicht wirklich.
eventuell bringt mich hier einer auf den richtigen Weg...

Das Problem das sich mir stellt ist folgendes:

Ich habe eine bekannte Matrix, die ich mit einer 2 unbekannten Matrix multilpiziere. Als Ergebniss habe ich eine bekannte Matrix...

Matrix 1:
[[1 1 1]
[1 1 2]
[1 1 3]
[1 1 4]
[1 1 5]]

multipliziert mit Matrix 2
[[a]

[c]]

ist gleich:
[[1]
[0]
[0]
[0]
[0]]


Gibt es einen Befehl wie ich aus der Gleichung a, b, c erhalte?
Oder muss ich es über eine Annährung versuchen?


Im python Praxisbuch stand etwas über sympy und den solve Befehl...
Jedoch habe ich das nicht so ganz verstanden... Kann mir einer weiter helfen, oder ggf
eine Seite/Tutorial empfehlen welches mich der Lösung näher bringt???
Zuletzt geändert von paracide am Samstag 13. August 2011, 09:04, insgesamt 1-mal geändert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo.

Das ist doch lediglich ein einfaches lineares Gleichungssystem. Da hier nichts symbolisches berechnet werden musst, suchst du am besten mit der Suchmaschine deiner Wahl nach "numpy solve" und hörst direkt beim ersten Treffer auf.

Sebastian
Das Leben ist wie ein Tennisball.
paracide
User
Beiträge: 11
Registriert: Dienstag 9. August 2011, 20:55

Hi,

das Probem was sich mir stellt ist kein lineares:

sprich mit dem Code:

Code: Alles auswählen

import numpy
a = numpy.array([[3,1], [1,2]])
b = numpy.array([1,0])
x = numpy.linalg.solve(a, b)

print (x)
Ist mir nicht geholfen, da ich keine lineare Matrix habe...
Wenn ich den Code änder und für meinen vereinfachten Test wie folgt schreibe:

Code: Alles auswählen

import numpy
a = numpy.array([[1,1,1], [1,1,2],[1,1,3]])
b = numpy.array([1,0,0])
x = numpy.linalg.solve(a, b)

print (x)
erhalte ich nur Fehlermeldungen, da der code nicht linear ist...
Ist solve überhautp der richtige Ansatz?

laut Praxisbuch ist der solve Befehl für shape(M,M) bzw (M) gedacht.
Ich haben jedoch (M,M,M)...
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

paracide hat geschrieben:das Probem was sich mir stellt ist kein lineares:
Doch ist es. Multipliziere die linke Seite doch mal aus, das ist ein Lineares Gleichungssystem. Bloß überbestimmt. Das heißt aber auch, dass es keine Lösung geben muss. Das ist bei dir der Fall.
erhalte ich nur Fehlermeldungen, da der code nicht linear ist...
Ist solve überhautp der richtige Ansatz?
Wenn du Fehlermeldungen bekommst, dann poste sie auch, statt sie zu interpretieren. Singuläre Matrix != „code nicht linear“.
laut Praxisbuch ist der solve Befehl für shape(M,M) bzw (M) gedacht.
Ich haben jedoch (M,M,M)...
Nein, hast du nicht, wo kommt die zusätzliche Dimension her? sympy.solve ist nur für quadratische Matrizen. Die hast du aber nicht (du hast (M, N) wenn du so willst).

Im python Praxisbuch stand etwas über sympy und den solve Befehl...
Jedoch habe ich das nicht so ganz verstanden... Kann mir einer weiter helfen, oder ggf
eine Seite/Tutorial empfehlen welches mich der Lösung näher bringt???
Was hast du nicht verstanden? Beispiele gibt es in der Doku zu der Funktion. Wobei du wohl eher sympy.solve_linear_system suchst.
Antworten