Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2022, 20:09   #1
L1kr1k
Новичок
Джуниор
 
Регистрация: 24.02.2022
Сообщений: 1
Вопрос Метод Гаусса на C#

Здравствуйте. Есть код на C#, который решает СЛАУ методом Гаусса. Проблема в том, что я до конца не могу понять как он работает. Вижу только, что создается, кажется, матрица-перевертыш, но не более того. Пошагово не могу понять что происходит. Был бы очень признателен за разъяснение.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gauss_CommandLine
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите размерность матрицы: ");
            int RowAm = int.Parse(Console.ReadLine());
            Console.WriteLine();
            double[,] MatrixCoef = new double[RowAm, RowAm];
            double[,] MatrixCoefAdd = new double[RowAm, RowAm];
            double[] FreeCoef = new double[RowAm];
            double[] FreeCoefAdd = new double[RowAm];
            double Multi1, Multi2;
            double[] Result = new double[RowAm];
            Console.WriteLine("Введите коэффициенты и свободные члены матрицы:");
            for (int i = 0; i < RowAm; i++)
            {
                for (int j = 0; j < RowAm; j++)
                {
                    Console.Write($"A[{i + 1}][{j + 1}] = ");
                    MatrixCoef[i, j] = double.Parse(Console.ReadLine());
                    MatrixCoefAdd[i, j] = MatrixCoef[i, j];
                }
                Console.Write($"B[{i+1}] = ");
                FreeCoef[i] = double.Parse(Console.ReadLine());
                FreeCoefAdd[i] = FreeCoef[i];
                Console.WriteLine();
            }
            Console.WriteLine("Начальный вид матрицы:");
            int MatrixRow = MatrixCoef.GetLength(0);
            int MatrixCol = MatrixCoef.GetLength(1);
            for (int i = 0; i < MatrixRow; i++)
            {
                for (int j = 0;j < MatrixCol; j++)
                {
                    Console.Write(MatrixCoef[i, j]+"\t");
                }
                Console.WriteLine(FreeCoef[i]);
            }
            Console.WriteLine();
            for (int k = 0; k < RowAm; k++)
            {
                for (int j = k + 1; j < RowAm; j++)
                {
                    Multi1 = MatrixCoef[j, k] / MatrixCoef[k, k];
                    for (int i = k; i < RowAm; i++)
                    {
                        MatrixCoef[j, i] = MatrixCoef[j, i] - Multi1 * MatrixCoef[k, i];
                    }
                    FreeCoef[j] = FreeCoef[j] - Multi1 * FreeCoef[k];
                }
            }
            for (int k = RowAm - 1; k >= 0; k--)
            {
                Multi1 = 0;
                for (int j = k; j < RowAm; j++)
                {
                    Multi2 = MatrixCoef[k, j] * Result[j];
                    Multi1 += Multi2;
                }
                Result[k] = (FreeCoef[k] - Multi1) / MatrixCoef[k, k];
            }
            Console.WriteLine("Конечный вид матрицы:");
            for (int i = 0; i < MatrixRow; i++)
            {
                for (int j = 0; j < MatrixCol; j++)
                {
                    Console.Write(MatrixCoef[i, j] + "\t");
                }
                Console.WriteLine(FreeCoef[i]);
            }
            Console.WriteLine();
            Console.WriteLine("Корни матрицы:");
            for (int i = 0; i < RowAm; i++)
            {
                Console.WriteLine($"X[{i + 1}] = {Result[i]}");
            }
            Console.ReadLine();
        }
    }
}
L1kr1k вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод Гаусса на C#. bestnicer Помощь студентам 0 27.11.2012 14:54
метод простых операций и метод гаусса зейделя tarasman11 Паскаль, Turbo Pascal, PascalABC.NET 1 23.09.2012 14:46
Метод Гаусса nice1992 Помощь студентам 4 05.02.2012 19:22
Метод Гаусса TMTGamer Visual C++ 4 25.12.2011 15:02
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08