Решение треугольной матрицы: нужен алгоритм решения - C#

Узнай цену своей работы

Формулировка задачи:

Имеется матрица, приведенная к треугольному виду. Задача - решить ее(найти x1,x2...xn). Помогите с алгоритмом решения.

Решение задачи: «Решение треугольной матрицы: нужен алгоритм решения»

textual
Листинг программы
  1.             Console.WriteLine("Введите порядок матрицы:");
  2.             int N = int.Parse(Console.ReadLine());
  3.             Console.WriteLine();
  4.  
  5.             double[,] Slay = new double[N, N]; //матрица коэффициентов
  6.             double[] Slay_B = new double[N]; //матрица свободных членов
  7.             double[] Slay_X = new double[N]; // решение
  8.             int i, j, k;
  9.             double kof, sum;
  10.            
  11.             Console.WriteLine("Введите коэффициенты матрицы:");
  12.             for (i = 0; i < N; i++)
  13.                 for (j = 0; j < N; j++)
  14.                 {
  15.                     Console.Write("a{0}{1} = ", i+1, j+1);
  16.                     Slay[i, j] = double.Parse(Console.ReadLine());
  17.                 }
  18.             Console.WriteLine();
  19.            
  20.             Console.WriteLine("Введите свободные члены:");
  21.             for (i = 0; i < N; i++)
  22.             {
  23.                 Console.Write("b{0} = ", i + 1);
  24.                 Slay_B[i] = double.Parse(Console.ReadLine());
  25.             }
  26.             Console.WriteLine();
  27.            
  28.             Console.WriteLine("Вывод матрицы");
  29.             for (i = 0; i < N; i++)
  30.             {
  31.                 for (j = 0; j < N; j++)
  32.                 {
  33.                     Console.Write(Slay[i, j]);
  34.                     Console.Write("*x{0}", j + 1);
  35.                     Console.Write("\t");
  36.                 }
  37.                 Console.Write("= ");
  38.                 Console.WriteLine(Slay_B[i]);
  39.             }
  40.                
  41.             //приведение матрицы к треугольному виду
  42.             for (k = 0; k < N - 1; k++)
  43.             {
  44.                 for (i = k + 1; i < N; i++)
  45.                 {
  46.                     kof = -1 * Slay[i, k] / Slay[k, k];
  47.                     Slay_B[i] = Slay_B[i] + kof * Slay_B[k];
  48.                     for (j = k; j < N; j++)
  49.                     {
  50.                         Slay[i, j] = Slay[i, j] + Slay[k, j] * kof;
  51.                     }
  52.                 }
  53.             }
  54.             Console.WriteLine();
  55.            
  56.             Console.WriteLine("Матрица, приведенная к треугольному виду");
  57.             for (i = 0; i < N; i++)
  58.             {
  59.                 for (j = 0; j < N; j++)
  60.                 {
  61.                     Console.Write("{0:0.000}",Slay[i, j]);
  62.                     Console.Write("*x{0} ", j + 1);
  63.                     Console.Write("\t");
  64.                 }
  65.                 Console.Write("= ");
  66.                 Console.WriteLine("{0:0.000}", Slay_B[i]);
  67.             }
  68.             Console.WriteLine();
  69.  
  70.             //вычисление результата
  71.             Slay_X[N - 1] = Slay_B[N - 1] / Slay[N - 1, N - 1];
  72.             sum = 0;
  73.             for (int z = N - 2; z >= 0; --z)
  74.             {
  75.                 sum = 0;
  76.                 for (j = z + 1; j < N; j++)
  77.                 {
  78.                     sum = sum + Slay[z, j] * Slay_X[j];
  79.                     Slay_X[z] = (Slay_B[z] - sum) / Slay[z, z];
  80.                 }
  81.             }
  82.  
  83.             Console.WriteLine("Результат");
  84.             for (i = 0; i < N; i++)
  85.             {
  86.                 Console.WriteLine("X{0} = {1:0.000}", i + 1, Slay_X[i]);
  87.             }
  88.             Console.ReadKey();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы