Задача 12. Определить минимальное значения элементов квадратной матрицы D:
.
Здесь, ; A, B порядка – задаются.
Блок схема имеет следующий вид:
i=0, il=0, lx=0, x
Рис. 73 Блок схема произведения матриц.
Ниже приводится текст программы с результатами расчетов:
static void Multiplication(int n, double[,] a, double[,] b)
{
double[,] Multip_of_A_B = new double[n, n];// Умножение матриц A и B
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_A_B[i, j] += a[i, k] * b[k, j];
}
}
}
double[,] Multip_of_A_A = new double[n, n];// Матрица A^2
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_A_A[i, j] += a[i, k] * a[k, j];
}
}
}
double[,] Multip_of_A_A_A = new double[n, n];// Матрица А^3
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_A_A_A[i, j] += Multip_of_A_A[i, k] * a[k, j];
}
}
}
double[,] Multip_of_B_B = new double[n, n];// Матрица B^2
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_B_B[i, j] += b[i, k] * b[k, j];
}
}
}
double[,] Multip_of_APow3_Bpow2 = new double[n, n];// Матрица А^3 * B^2
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_APow3_Bpow2[i, j] += Multip_of_A_A_A[i, k] * Multip_of_B_B[k, j];
}
}
}
double[,] Multip_of_AB_Bpow2 = new double[n, n];// Матрица А*B * B^2
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
for (int k = 0; k < n; k++)
{
Multip_of_AB_Bpow2[i, j] += Multip_of_A_B[i, k] * Multip_of_B_B[k, j];
}
}
}
double[,] D = new double[n, n];// Матрица D
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
D[i, j] = Multip_of_APow3_Bpow2[i, j] - Multip_of_AB_Bpow2[i, j];
}
}
Console.WriteLine("Матрица D имеет вид: ");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Console.Write($"{ D[i, j]}\t");
}
Console.WriteLine();
}
double min = D.Cast().Min(); // Минимальное значение
Console.Write("Минимальное значение среди элементов матрицы D: {0}", min);
}
static void Main(string[] args)
{
Console.Write("Введите размерность матриц: ");
int n = int.Parse(Console.ReadLine());
Console.WriteLine("Введите элементы матрицы А: ");
double[,] A = new double[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[i, j] = double.Parse(Console.ReadLine());
}
}
Console.WriteLine("Введите элементы матрицы B: ");
double[,] B = new double[n, n];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
B[i, j] = double.Parse(Console.ReadLine());
}
}
Multiplication(n, A, B);
Console.ReadKey();
}
Инструкция по работе с кодом программы была написана для запуска в Microsoft Visual Studio.
Для начала компиляции кода программы, необходимо нажать на кнопку Start на панели инструментов Microsoft Visual Studio или кнопку F5 на клавиатуре. В случае, если при компиляции не были обнаружены синтаксические или прочие ошибки, код успешно компилируется и выводится программа в окне консоли (черное окно вывода).
Для вычисления искомой величины, необходимо, ввести размерность матриц n, элементы матриц А и B:
"Введите размерность матриц: "
2 Enter;
"Введите элементы матрицы А: "
1 Enter;
2 Enter;
3 Enter;
4 Enter;
"Введите элементы матрицы B: "
1 Enter;
2 Enter;
3 Enter;
4 Enter;
"Матрица D имеет вид: "
870 1268
1902 2772
Далее, программа производит расчет и выводит сообщение с искомой величиной в окно консоли:
"Минимальное значение среди элементов матрицы D: 870"
Рис. 74 Результат работы программы по определению минимального элемента матрицы D.
Do'stlaringiz bilan baham: |