Решение систем линейных уравнений методами Гаусса и Крамера - C#

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

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

Вот само задание: Написать программу, осуществляющую решение систем линейных уравнений методами Гаусса и Крамера. Программа должна обеспечить ввод с клавиатуры систем линейных уравнений произвольного порядка и нахождение их решений. Данное задание необходимо лишь для получения оценки по предмету, не более того. С программирование не дружу, потому прошу помощи у умельцев. Подсобите, ребята, либо направьте на ресурс, где можно найти исходники такой программки Спасибо.

Решение задачи: «Решение систем линейных уравнений методами Гаусса и Крамера»

textual
Листинг программы
  1. using System;
  2.  
  3. class Gauss
  4. {
  5.     public static int Main(string[] args)
  6.     {
  7.         try
  8.         {
  9.             Matrix a = (args.Length == 0) ? SLAU.In() : SLAU.In(args[0]);
  10.  
  11.             for (int k = 1; k <= a.AmountOfRows - 1; k++)
  12.             {
  13.                 if (a[k, k] == 0)
  14.                     for (int i = k + 1; i <= a.AmountOfRows; i++)
  15.                         if (a[i, k] != 0)
  16.                         {
  17.                             a.SwapRows(k, i);
  18.                             break;
  19.                         }
  20.  
  21.                 double delElem = a[k, k];
  22.                 if (delElem == 0)
  23.                 {
  24.                     Console.WriteLine("Система не совместна");
  25.                     return 0;
  26.                 }
  27.                 a.MulRow(k, 1 / delElem);
  28.                 for (int i = k + 1; i <= a.AmountOfRows; i++)
  29.                     a.SumRows(k, i, -a[i, k]);
  30.             }
  31.  
  32.             if (a[a.AmountOfRows, a.AmountOfColumns - 1] == 0)
  33.             {
  34.                 Console.WriteLine("Система не совместна");
  35.                 return 0;
  36.             }
  37.             a.MulRow(a.AmountOfRows, 1 / a[a.AmountOfRows, a.AmountOfColumns - 1]);
  38.  
  39.             Matrix res = new Matrix(a.AmountOfRows, 1);
  40.  
  41.             for (int i = a.AmountOfRows; i >= 1; i--)
  42.             {
  43.                 double sum = 0;
  44.                 for (int j = a.AmountOfRows; j >= i + 1; j--)
  45.                     sum += res[j, 1] * a[i, j];
  46.                 res[i, 1] = a[i, a.AmountOfColumns] - sum;
  47.             }
  48.             res.Out();
  49.         }
  50.         catch (Exception exc)
  51.         {
  52.             Console.WriteLine("Произошла критическая ошибка.
  53. Дальнейшее выполение программы нецелесобразно!!!");
  54.             Console.WriteLine(exc.StackTrace);
  55.             Console.WriteLine(exc.TargetSite);
  56.             return 1;
  57.         }
  58.         finally
  59.         {
  60.             Console.WriteLine();
  61.             Console.Write("Для продолжения нажмите Enter ... ");
  62.             Console.ReadLine();
  63.         }
  64.         return 0;
  65.     }
  66. }

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


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

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

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

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

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

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