Проблема при умножении транспонированной матрицы на другую - C#
Формулировка задачи:
В чем может заключаться эта трабла, при умножении транспонированной матрицы на другую (4,5 на 5,4):
Уже извелся весь, не понимаю в чем проблема...
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // Объявление массивов double[,] A = new double[5, 4]; double[,] B = new double[5, 4]; double[,] C = new double[5, 4]; string s; // ввод матрицы А for (int i=0; i<5; i++) { Console.WriteLine ("Введите A[{0}] строку", i); s = Console.ReadLine(); string [] ts = s.Split(' '); } for (int j=0; j<5; j++) { Console.WriteLine ("Введите B[{0}] строку", j); s = Console.ReadLine(); string[] ts = s.Split(' '); } // (A+B)^T*(B-A) double[,] SAB = new double[5, 4]; // сумма матриц A и B double[,] TAB = new double[4, 5]; // транспонирование double[,] DBA = new double[5, 4]; // разность B и A double[,] PTD = new double[4, 5]; // произведение TAB и DBA // SAB for (int i = 0; i < 5; i++) for (int j = 0; j < 4; j++) SAB[i, j] = A[i, j] + B[i, j]; // TAB for (int i = 0; i < 4; i++) for (int j = 0; j < 5; j++) TAB[i, j] = SAB[j, i]; // DBA for (int i = 0; i < 5; i++) for (int j = 0; j < 4; j++) DBA[i, j] = B[i, j] - A[i, j]; // PTD=TAB*DBA for (int i = 0; i < 4; i++) for (int j = 0; j < 5; j++) { PTD[i, j] = 0; for (int k = 0; k < 5; k++) PTD[i, j] += TAB[i, k] * DBA[k, j]; } Console.WriteLine("C=" + PTD.ToString()); Console.ReadKey(); } } }
Решение задачи: «Проблема при умножении транспонированной матрицы на другую»
textual
Листинг программы
for (int i = 0; i < TAB.GetLength(0);i++) { for (int j = 0; j < DBA.GetLength(1);j++) { for (int k = 0; k < TAB.GetLength(1);k++) { PTD[i, j] += TAB[i, k] * DBA[k, i]; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д