Metody numeryczne algebry liniowej
biblioteki Math.NET
Numerics
Biblioteka Math.NET
Numerics realizuje działania na macierzach rzeczywistych i zespolonych. Działania są realizowane na obiektach abstrakcyjnych klas Matrix i Vector. Klasy Matrix i Vector są dostępne w przestrzeniach nazw MathNet.Numerics.LinearAlgebra.Double i MathNet.Numerics.LinearAlgebra.Complex. Konstruktory macierzy to DenseMatrix(), SparseMatrix() i DiagonalMatrix().
Do czytania elementów macierzy wpisanych do okienek tekstowych można stosować
metodę Split()
obiektu klasy String,
np.
Link do przykładowego kodu czytania macierzy z okienka tekstowego
W wyniku działania powyższego kodu tworzona jest macierz A
zawierająca elementy macierzy wpisanej do okienka tekstowego
textBoxA. i podobnie macierz B.
Odwracanie macierzy
Macierz odwrotną oblicza metoda Inverse() obiektu klasy Matrix.
InvA = A.Inverse();
Rozwiązywanie układów algebraicznych równań liniowych
Do rozwiązania układu równań metodą rozkładu LU można użyć następującego kodu.
var lu = A.LU();
var X = lu.Solve(B);
Do wydruku wyniku macierzy
X
można użyć następującego kodu.
textBoxX.Clear();
for (int w = 0; w < X.RowCount; w++)
{
for (int k = 0; k < X.ColumnCount; k++)
textBoxX.AppendText(X[w, k].ToString()
+ " \t");
textBoxX.AppendText(Environment.NewLine);
}
lub label1.Text = X.ToString();
Link do przykładowego kodu rozkładu LU z
wykorzystaniem biblioteki Math.NET Numerics
|