public Matrici Inmulteste(Matrici m2) { if (this.coloane != m2.randuri) { throw new ImpossibleMatrixOperationException(); } int n = this.randuri; int m = m2.coloane; Matrici a = new Matrici(n, m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { float suma = 0; for (int k = 0; k < this.coloane; k++) { suma += this.data[i, k] * m2.data[k, j]; } a.data[i, j] = suma; } } return(a); }
public Matrici Putere(int n) { Matrici a = new Matrici(this.randuri, this.coloane); while (n > 0) { a = this.Inmulteste(this); n--; } return(a); }
static void Main(string[] args) { //afisarile matricelor Matrici a1 = new Matrici(2, 2); a1.CreateMatrice(); Console.WriteLine($"Afisarea matricii a1 \n{a1}"); Matrici a2 = new Matrici(2, 3); a2.CreateMatrice(); Console.WriteLine($"Afisarea matricii a2 \n{a2}"); Matrici a3 = new Matrici(3, 3); a3.CreateMatrice(); Console.WriteLine($"Afisarea matricii a3 \n{a3}"); Matrici a4 = new Matrici(3, 3); a4.CreateMatrice(); Console.WriteLine($"Afisarea matricii a4 \n{a4}"); //operatiile cu matrici Console.WriteLine($"Adunarea a doua matrici: "); Matrici a5 = a3.Aduna(a4); Console.WriteLine(a5); Console.WriteLine($"Scaderea a doua matrici: "); Matrici a6 = a3.Scade(a4); Console.WriteLine(a6); Console.WriteLine($"Inmultirea a doua matrici: "); Matrici a7 = a1.Inmulteste(a2); Console.WriteLine(a7); Console.WriteLine($"Ridicarea la putere a doua matrici: "); Matrici a8 = a1.Putere(3); Console.WriteLine(a8); Console.ReadLine(); }
//scaderea a doua matrici public Matrici Scade(Matrici m2) { if (this.randuri != m2.randuri && this.coloane != m2.coloane) { throw new ImpossibleMatrixOperationException(); } int n = this.randuri; int m = this.coloane; Matrici a = new Matrici(n, m); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { a.data[i, j] = this.data[i, j] - m2.data[i, j]; } } return(a); }