Ich habe von diesem Matrizenzeug aber auch nicht ein Wörtchen verstanden ...
Müssen für x, y und z eigentlich später auch Ergebnisse herauskommen? Na, egal ...
Verstanden habe ich (hoffe ich jedenfalls):
a.) Dein Programm arbeitet die Gleichungen von oben nach unten ab.
b.) Dein Programm muss in jeder Gleichung eine Variable mit Wert ungleich 0 finden.
c.) Diese Variable darf aber vorher - also in den Gleichungen weiter oben - noch nicht gefunden worden sein.
Nachdem ich im ersten Ansatz ganz schönen Müll geschrieben habe
, hier der nächste Versuch:
Mache es quasi rekursiv. Immer wenn du in einer Gleichung keine Variable finden kannst, die nicht schon zuvor dran war, dann springe eine Gleichung nach oben und wähle dort eine andere Variable aus.