Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 36 стр.

UptoLike

35
// метод вывода решения СЛАУ
public void PrintSolution()
{
. . .
}
}
Сначала опишем функции решения системы линейных уравнений
различными методами.
Метод Крамера используется для решения системы линейных
уравнений с квадратной матрицей коэффициентов. Если матрица
коэффициентов СЛАУ является неквадратной, будет генерироваться
исключение с соответствующим сообщением. Для квадратной матрицы будет
вычисляться определитель. Если определитель не равен нулю, единственное
решение системы уравнений определяется по формуле Крамера:
j
j
x
,
,..1 nj
где
определитель матрицы А, а
j
- определитель матрицы, в которой j-й
столбец исходной матрицы заменен на вектор свободных членов. Если
определитель матрицы (
) равен нулю, то будет сгенерировано еще одно
исключение.
// метод Крамера решения СЛАУ
public void Kramer()
{
// проверка, является ли матрица прямоугольной
if (m != n)
throw new Exception("Матрица не является квадратной");
double det = a.Determinant(); // вычисление определителя
// матрицы коэффициентов
// проверка определенности системы
if (det == 0)
throw new Exception("Деление на 0");
rang = m;
// вычисление корней по формулам Крамера
Matrix temp = a.Copy();
for (int j = 0; j < n; j++)
{
for (int i = 0; i < n; i++)
temp[i, j] = b[0, i];
x[0, j] = temp.Determinant / det;
for (int i = 0; i < n; i++)
          // метод вывода решения СЛАУ
          public void PrintSolution()
          {
               . . .
          }
     }

     Сначала опишем функции решения системы линейных уравнений
различными методами.
     Метод Крамера используется для решения системы линейных
уравнений с квадратной матрицей коэффициентов. Если матрица
коэффициентов СЛАУ является неквадратной, будет генерироваться
исключение с соответствующим сообщением. Для квадратной матрицы будет
вычисляться определитель. Если определитель не равен нулю, единственное
решение системы уравнений определяется по формуле Крамера:

                  j
           xj         , j  1..n,
                  

где  – определитель матрицы А, а  j - определитель матрицы, в которой j-й
столбец исходной матрицы заменен на вектор свободных членов. Если
определитель матрицы (  ) равен нулю, то будет сгенерировано еще одно
исключение.

         // метод Крамера решения СЛАУ
         public void Kramer()
         {
            // проверка, является ли матрица прямоугольной
            if (m != n)
               throw new Exception("Матрица не является квадратной");
            double det = a.Determinant(); // вычисление определителя
                                           // матрицы коэффициентов
            // проверка определенности системы
            if (det == 0)
               throw new Exception("Деление на 0");

           rang = m;
           // вычисление корней по формулам Крамера
           Matrix temp = a.Copy();
           for (int j = 0; j < n; j++)
           {
              for (int i = 0; i < n; i++)
                 temp[i, j] = b[0, i];
              x[0, j] = temp.Determinant / det;
              for (int i = 0; i < n; i++)

35