Hi,
da wir zur Zeit in der Schule viel mit Matrizen rumrechnen wollte ich mir ne Klasse schreiben um Einiges zu vereinfachen. Da wir das in der Schule sehr nach Gefühl machen, welche Reihen mit einander verrechnet werden, möchte ich hier fragen, wie ich dabei beim Programmieren vorzugehen habe.
Zum Verrechnen der Reihen habe ich schon mal folgende Extension geschrieben:
Bewirkt folgendes:
Zeile1: 4 , 8
Zeile2: 8 , 16
Zeile2*1 - Zeile1 *1
Somit wäre die Grundlage für den Algorithmus schon einmal gelegt. Die Frage ist nur wie ich ihn aufbauen kann, um ein Gleichungssystem unbestimmter Größe zu lösen. Die Klasse soll am Ende 5*6 oder auch 3*4 berechnen können. Wie wäre die Vorgehensweise?
da wir zur Zeit in der Schule viel mit Matrizen rumrechnen wollte ich mir ne Klasse schreiben um Einiges zu vereinfachen. Da wir das in der Schule sehr nach Gefühl machen, welche Reihen mit einander verrechnet werden, möchte ich hier fragen, wie ich dabei beim Programmieren vorzugehen habe.
Zum Verrechnen der Reihen habe ich schon mal folgende Extension geschrieben:
VB.NET-Quellcode
- Dim ma(1, 1) As Double
- ma(0, 0) = 4
- ma(1, 0) = 8
- ma(0, 1) = 8
- ma(1, 1) = 16
- ma.EvaluateRows([Operator].Subtract, 1, 1, 0, 1)
- Public Enum [Operator]
- Add
- Subtract
- End Enum
- Module ExtensionModule
- <Extension()>
- Public Function EvaluateRows(ByVal Matrix As Double(,), ByVal op As [Operator], ByVal operandrow1 As Integer, ByVal operandrow1_multiplicator As Double, ByVal operandrow2 As Integer, ByVal operandrow2_multiplicator As Double) As Double(,)
- For u As Integer = 0 To Matrix.GetLength(0) - 1
- Select Case op
- Case [Operator].Add
- Matrix(u, operandrow1) = Matrix(u, operandrow1) * operandrow1_multiplicator + Matrix(u, operandrow2) * operandrow2_multiplicator
- Case [Operator].Subtract
- Matrix(u, operandrow1) = Matrix(u, operandrow1) * operandrow1_multiplicator - Matrix(u, operandrow2) * operandrow2_multiplicator
- End Select
- Next
- Return Matrix
- End Function
- End Module
Bewirkt folgendes:
Zeile1: 4 , 8
Zeile2: 8 , 16
Zeile2*1 - Zeile1 *1
Somit wäre die Grundlage für den Algorithmus schon einmal gelegt. Die Frage ist nur wie ich ihn aufbauen kann, um ein Gleichungssystem unbestimmter Größe zu lösen. Die Klasse soll am Ende 5*6 oder auch 3*4 berechnen können. Wie wäre die Vorgehensweise?
faxe1008