Параллельное решение систем линейных уравнений

Параллельное решение систем линейных уравнений на гибридной архитектуре cpu+gpu Текст научной статьи по специальности « Математика»

Аннотация научной статьи по математике, автор научной работы — Недожогин Никита Сергеевич, Копысов Сергей Петрович, Новиков Александр Константинович

В статье рассматривается параллельная реализация решения систем линейных алгебраических уравнений на вычислительных узлах, содержащих центральный процессор (CPU) и графические ускорители (GPU). Производительность параллельных алгоритмов для классических схем метода сопряженных градиентов при совместном использовании CPU и GPU существенно ограничивается наличием точек синхронизации. В статье исследуется конвейерный вариант метода сопряженных градиентов с одной точкой синхронизации и возможностью распределения нагрузки между CPU и GPU при решении систем уравнений большой размерности. Численные эксперименты проведены на тестовых матрицах и вычислительных узлах разной производительности гетерогенного кластера, что позволило оценить вклад коммуникационных затрат. Алгоритмы реализованы при совместном использованием технологий MPI, OpenMP и CUDA. Предложенные алгоритмы, помимо сокращения времени выполнения, позволяют решать системы линейных уравнений и большего порядка, для которых не обеспечиваются необходимые ресурсы памяти одним GPU или вычислительным узлом. При этом, конвейерный блочный алгоритм сокращает общее время выполнения за счет уменьшения точек синхронизации и объединения коммуникаций в одно сообщение.

Похожие темы научных работ по математике , автор научной работы — Недожогин Никита Сергеевич, Копысов Сергей Петрович, Новиков Александр Константинович

PARALLEL SOLVING OF LINEAR EQUATIONS SYSTEMS ON HYBRID ARCHITECTURE CPU+GPU

The article discusses the parallel implementation of solving systems of linear algebraic equations on computational nodes containing a central processing unit (CPU) and graphic accelerators (GPU). The performance of parallel algorithms for the classical conjugate gradient method schemes when using the CPU and GPU together is significantly limited by the synchronization points. The article investigates the pipeline version of the conjugate gradient method with one synchronization point, the possibility of asynchronous calculations, load balancing between the CPU and GPU when solving the large linear systems. Numerical experiments were carried out on test matrices and computational nodes of different performance of a heterogeneous cluster, which allowed us to estimate the contribution of communication costs. The algorithms are implemented with the joint use of technologies: MPI, OpenMP and CUDA. The proposed algorithms, in addition to reducing the execution time, allow solving large linear systems, for which there are not enough memory resources of one GPU or a computing node. At the same time, block algorithm with the pipelining decreases the total execution time by reducing synchronization points and aggregating some messages in one.

Текст научной работы на тему «Параллельное решение систем линейных уравнений на гибридной архитектуре cpu+gpu»

УДК 519.612, 519.684.4 DOI: 10.14529/cmse200203

ПАРАЛЛЕЛЬНОЕ РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ НА ГИБРИДНОЙ АРХИТЕКТУРЕ

© 2020 Н.С. Недожогин, С.П. Копысов, А.К. Новиков

Удмуртский государственный университет (426034 Ижевск, ул. Университетская, д. 1)

E-mail: nedozhogin07@gmail.com, s.kopysov@gmail.com, sc_work@mail.ru Поступила в редакцию: 29.01.2020

В статье рассматривается параллельная реализация решения систем линейных алгебраических уравнений на вычислительных узлах, содержащих центральный процессор (CPU) и графические ускорители (GPU). Производительность параллельных алгоритмов для классических схем метода сопряженных градиентов при совместном использовании CPU и GPU существенно ограничивается наличием точек синхронизации. В статье исследуется конвейерный вариант метода сопряженных градиентов с одной точкой синхронизации и возможностью распределения нагрузки между CPU и GPU при решении систем уравнений большой размерности. Численные эксперименты проведены на тестовых матрицах и вычислительных узлах разной производительности гетерогенного кластера, что позволило оценить вклад коммуникационных затрат. Алгоритмы реализованы при совместном использовании технологий MPI, ОрепМР и CUDA. Предложенные алгоритмы помимо сокращения времени выполнения позволяют решать системы линейных уравнений и большего порядка, для которых не обеспечиваются необходимые ресурсы памяти одним GPU или вычислительным узлом. При этом конвейерный блочный алгоритм сокращает общее время выполнения за счет уменьшения точек синхронизации и объединения коммуникаций в одно сообщение.

Ключевые слова: параллельные вычисления, метод сопряженных градиентов, сокращение коммуникаций.

Недожогин Н.С., Копысов С.П., Новиков А.К. Параллельное решение систем линейных уравнений на гибридной архитектуре CPU+GPU // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2020. Т. 9, № 2. С. 40-54. DOI: 10.14529/cmse200203.

Ускорители вычислений содержатся в вычислительных узлах суперкомпьютеров и применяются достаточно успешно при решении многих вычислительных задач, несмотря на то, что центральный процессор (CPU) простаивает после запуска функций-яд ер на ускорителе. Существует еще несколько важных условий, для которых многообещающим представляется совместное использование CPU и ускорителей (например, GPU) при параллельных вычислениях в рамках одной задачи.

Каждая архитектура CPU и GPU обладает уникальными особенностями и ориентирована на решение тех или иных задач, для которых характерна, например, высокая производительность или низкая латентность. Гибридные узлы, содержащие и совместно использующие CPU+GPU, могут обеспечить эффективное решение более широкого круга задач или одной задачи, для которой меняются параллельные свойства алгоритмов и определив

‘Статья рекомендована к публикации программным комитетом Международной научной конференции «Параллельные вычислительные технологии (ПаВТ) 2020».

Работа выполнена при финансовой поддержке УдГУ в рамках конкурса грантов «Научный потенциал».

Вестник ЮУрГУ. Серия «Вычислительная математика и информатика»

Н.С. Недожогин, С.П. Копысов, А.К. Новиков

для ее выполнения то или другое исполнительное устройство. Отметим также высокую энергоэффективность гибридных вычислительных систем.

Совместное использование CPU+GPU связано с решением ряда задач: разделения вычислительной нагрузки между исполнительными устройствами с учетом производительности и пропускной способности памяти и ее размера; выявления параллельных свойств алгоритма на каждом шаге его выполнения и назначения устройства для выполнения.

Одной из трудоемких операций в численных методах является решение систем алгебраических уравнений (СЛАУ). В настоящее время предложено много параллельных алгоритмов, обеспечивающих высокую производительность и масштабируемость при решении больших разреженных систем уравнений на современных многопроцессорных архитектурах с иерархической структурой.

Построение гибридных решателей с комбинированием прямых и итерационных методов для решения СЛАУ позволяет использовать несколько уровней параллелизма 2. Так в [6] построен и реализован гибридный метод решения систем уравнений дополнения Шура предобусловленными итерационными методами из подпространств Крылова при совместном использовании центральных процессоров (CPU) и графических ускорителей (GPU). При параллельном решении системы уравнений для дополнения Шура применялся классический предобусловленный метод сопряженных градиентов [7] для блочной упорядоченной матрицы и разделением вычислений при матричных операциях между CPU и одним или несколькими GPU. В настоящей работе рассматривается подход, сокращающий затраты на обмен данными между CPU и GPU за счет уменьшения числа точек глобальной синхронизации и конвейеризации вычислений.

Методы подпространства Крылова являются одними из наиболее эффективных вариантов решения крупномасштабных задач линейной алгебры. Однако, классические алгоритмы подпространства Крылова плохо масштабируются на современных архитектурах из-за наличия узких мест, связанных с синхронизацией вычислений. Конвейерные методы подпространства Крылова [8] со скрытыми коммуникациями обеспечивают высокую параллельную масштабируемость за счет перекрытия глобальных коммуникаций с вычислениями матрично-векторных операций и скалярных произведений векторов. Первые работы по сокращению коммуникаций были связаны с вариантом метода сопряженных градиентов (CG), имеющих одну коммуникацию на каждой итерации [9], с применением трехчленных рекуррентных соотношений CG [10].

Следующим этапом развития стало появление s-шаговых методов из подпространств Крылова [11], в которых итерационный процесс в s-блоке использует различные базисы подпространств Крылова. В результате удалось сократить число точек синхронизации до одной на s итераций. Однако, для большого числа процессоров (ядер) коммуникации все же могут занимать существенно больше времени, чем вычисление одного матрично-векторного произведения. В работе [12] предложен алгоритм CG, использующий вспомогательные вектора и перенос последовательной зависимости между вычислением матрично-векторного произведения и скалярными произведениями векторов. В данном подходе латентность коммуникаций заменяется дополнительными вычислениями.

Статья организована следующим образом. В разделе 1 рассмотрен конвейерный вариант метода сопряженных градиентов, приведен алгоритм и отличия от классического подхода. Раздел 2 посвящен вопросу совместного использования CPU и GPU, декомпозиции матрицы и обсуждению блочного варианта метода сопряженных градиентов. В разделе 3

Параллельное решение систем линейных уравнений на гибридной архитектуре.

приведены результаты численных экспериментов на тестовых матрицах из библиотеки университета Флорида. В заключении приводится краткая сводка результатов, полученных в ходе численных экспериментов, и указаны направления дальнейших исследований.

1. Конвейерный вариант метода сопряженных градиентов

Рассмотрим конвейерный вариант метода сопряженных градиентов, который математически эквивалентен классической форме предобусловленного метода CG и имеет такую же скорость сходимости.

Алгоритм 1: Конвейерный алгоритм метода CGwO

Параллельное решение систем линейных уравнений

Кафедра : Э лектронных вычислительных машин

Специальность : Компьютерные системы и сети

Тема выпускной работы :

Параллельные метод ы решения систем линейных алгебраических уравнений на вычислительном кластере

Руководитель : Ладыженский Юрий Валентинович, доцент, к.т.н.


» Параллельные метод ы решения систем линейных алгебраических уравнений на вычислительном кластере «

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

Как бы то ни было, существует возможность создания достаточно дешевой и относительно эффективной параллельной системы на базе обычных компьютеров, соединенных при помощи коммуникационного оборудования и, таким образом, образующих один вычислительный ресурс. Такие системы называются кластерами и относятся к классу параллельных систем с распределенной памятью [1,3]. Узким местом кластеров является то, что для взаимодействия отдельных узлов привлекается наиболее распространенное и дешевое коммуникационное оборудование (Fast Ethernet), которое использует общую среду передачи данных и обладает не очень большой пропускной способностью (в сравнении со скоростью обработки данных современными процессорами). Поэтому круг задач, решаемых на подобных системах, ограничивается задачами с небольшим числом обменов по сравнению с количеством вычислений. Неоспоримым преимуществом подобных систем является их относительная дешевизна и фактическое наличие больших компьютерных классов во многих учебных заведениях. Для программирования подобных систем применяются системы передачи сообщений, в которых отдельные компьютеры взаимодействуют посредством передачи и приема данных.

На сегодняшний день наиболее популярным стандартом является MPI ( message passing interface — интерфейс передачи сообщений) 2. Конкретные реализации MPI стандарта создаются производителями программного обеспечения и поставляются вместе с оборудованием. Большинство реализаций стандарта MPI называются MPICH . Этот стандарт описывает имена, вызовы и результат работы процедур. Для каждой конкретной параллельной системы с передачей сообщений MPI имеет свою оптимизированную реализацию, а правильно написанная программа переносима между различными MPI системами на уровне исходных кодов. Для написания MPI программ используются современные языки программирования, такие как C/C++ и Fortran.

Исследования в области MPI программирования ведутся в двух направлениях: создание эффективных параллельных алгоритмов и создание эффективных реализаций MPI стандарта для кластерных систем. Параллельные алгоритмы разрабатываются с учетом низкой скорости передачи данных, в связи с этим предпочтение отдается методам с наименьшим числом обменов. Текущая реализация MPI для кластерных систем осуществляет обмены посредством протокола TCP / IP [4], что приводит к невозможности эффективного использования широковещательных обменов, которые в текущей реализации осуществляются посредством парных обменов. Поэтому сегодня ведутся работы по созданию MPI реализации с реальным использованием широковещательных пересылок. Еще одна возможность увеличения производительности MPI программ – совмещение обменов и вычислений, однако для используемой в работе реализации данная техника не приводит к существенным улучшениям.

Данная работа посвящена созданию эффективных параллельных алгоритмов метода сопряженных градиентов для симметрических положительно определенных пятидиагональных систем линейных алгебраических уравнений. Системы подобного рода появляются при конечноразностной аппроксимации дифференциальных уравнений в частных производных. На сегодняшний день разработано большое число эффективных последовательных алгоритмов данного типа [1]. Однако большинство из них неприемлемо для параллельной реализации. Это связано с их рекурсивным характером, а, следовательно, малым параллелизмом.

Целью данной работы является исследование существующих последовательных и параллельных алгоритмов метода сопряженных градиентов, выделение из них, а также создание собственных эффективных алгоритмов метода сопряженных градиентов, пригодных для применения на кластерных системах.

В ходе работы было исследовано большое число алгоритмов метода сопряженных градиентов. При выборе метода для исследования предпочтение отдавалось методам с минимальным числом межпроцессорных обменов. В результате этого было выделено три класса методов: блочно-диагональные методы, полиномиальные методы и методы аппроксимации обратной матрицы.

Результаты исследования показали, что при реализации задачи на кластерах больших размеров целесообразно использовать методы с минимальным числом обменов, а на кластерах малых размеров — методы, обладающие лучшей сходимостью.

Кластер — это связанный набор полноценных компьютеров, используемый в качестве единого вычислительного ресурса [1,2].

В качестве вычислительных узлов кластера используются доступные на рынке одно-, двух- или четырехпроцессорные компьютеры. Каждый узел такой системы работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Windows, Linux, Solaris и т.п. Состав и мощность узлов кластера может меняться, давая возможность создавать неоднородные системы [1,2].

В качестве коммуникационного протокола в таких системах используются стандартные протоколы ЛВС, характеризуемые низкой стоимостью и низкой скоростью передачи данных. Основные характеристики коммуникационных сетей: латентность – время начальной задержки при посылке сообщения и пропускная способность сети, определяющая скорость передачи информации по каналам связи [1,2]. Наличие латентности определяет тот факт, что максимальная скорость передачи данных по сети не может быть достигнута на сообщениях с небольшой длиной. Чаще всего используется сеть Fast Ethernet, основное достоинство которой – низкая стоимость оборудования. Однако большие накладные расходы на передачу сообщений в рамках Fast Ethernet приводят к серьезным ограничениям на спектр задач, которые можно эффективно решать на таком кластере. Если от кластера требуется большая универсальность, то нужно переходить на более производительные коммуникационные сети, например, SCI, Myrinet и т.п.

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

Кластер кафедры ЭВМ , на котором проводились исследования (рис 1.1)

Рис1. Структура кластера

Структура кластера состоит из :

· 1 главный узел ( head node ) ‏

· 11 вычислительных узлов ( compute nodes ) ‏

· c етевой интерфейс Gigabit Ethernet , 1 Гбит/ c

· кластерное ПО – Microsot Windows Compute Cluster Server 2003

· Языки программирования – С, С++, Fortran

· Параллельное программирование – MPI

Технические характеристики кластера

Характеристики главного и вычислительных узлов

1. Процессор: Intel Pentium Core2 64bit, 1.86 ГГц

2. Оперативная память: 1 Гб

3. Жесткий диск: 80 Гб

4. Сетевой интерфейс: Gigabit Ethernet , 1 Гбит/с

5. Операционная система : Microsoft Windows Server 2003 Enterprise x64 Edition SP2

2.Интерфейс передачи данных (message passing interface – MPI)

Для организации информационного взаимодействия между процессорами в самом минимальном варианте достаточно операций приема и передачи данных (при этом, конечно, должна существовать техническая возможность коммуникации между процессорами – каналы или линии связи). В MPI существует целое множество операций передачи данных. Они обеспечивают разные способы пересылки данных. Именно данные возможности являются наиболее сильной стороной MPI (об этом, в частности, свидетельствует и само название MPI).

Подобный способ организации параллельных вычислений получил наименование модели «одна программа множество процессов» (single program multiple processes or SPMP1)).

разработкой параллельных программ с применением MPI 4.

· MPI позволяет в значительной степени снизить остроту проблемы переносимости параллельных программ между разными компьютерными системами – параллельная программа, разработанная на алгоритмическом языке C или FORTRAN с использованием библиотеки MPI, как правило, будет работать на разных вычислительных платформах;

· MPI содействует повышению эффективности параллельных вычислений, поскольку в настоящее время практически для каждого типа вычислительных систем существуют реализации библиотек MPI, в максимальной степени учитывающие возможности компьютерного оборудования;

· MPI уменьшает, в определенном плане, сложность разработки параллельных программ, т. к., с одной стороны, а с другой стороны, уже имеется большое количество библиотек параллельных методов, созданных с использованием MPI.

3.Классификация параллельных методов решения СЛАУ

Метод Гаусса–Зейделя . Пусть решаемая система представлена в виде 1

Итерационная схема Гаусса–Зейделя следует из этого представления системы:

Приведем метод Гаусса–Зейделя к стандартному виду:

Стандартная форма метода позволяет выписать его итерационную матрицу и провести над ней очевидные преобразования:

Представим метод Гаусса–Зейделя в координатной форме для системы общего вида:

Координатная форма метода Гаусса–Зейделя отличается от координатной формы метода Якоби лишь тем, что первая сумма в правой части итерационной формулы содержит компоненты вектора решения не на k-й, а на (k+1)-й итерации.

Параллельный алгоритм метода Гаусса–Зейделя

Отличие метода Гаусса–Зейделя от метода простой итерации заключается в том, что новые значения вектора вычисляются не только на основании значений предыдущей итерации, но и с использованием значений уже вычисленных на данной итерации .

Текст последовательной программы для вычисления новых значений компонент вектора представлен ниже.

void GaussZeidel (double *A, double *X, int size)

/* задана матрица А, начальное приближение вектора Х,

размерность матрицы size, вычисляем новое значение вектора Х */

Sum += A[ind(i,j,size)] * X[j];

Sum += A[ind(i,j,size)] * X[j];

X[i]=(A[ind(i,size,size)] – Sum) / A[ind(i,i,size)];

Рис. 2. Процедура вычисления значений вектора по методу Гаусса-Зейделя

Следующая система уравнений описывает метод Гаусса-Зейделя .

Вычисления каждой координаты вектора зависят от значений, вычисленных на предыдущей итерации, и значений координат вектора вычисленных на данной итерации. Поэтому нельзя реализовывать параллельный алгоритм, аналогичный методу простой итерации: каждый процесс не может начинать вычисления пока, не закончит вычисления предыдущий процесс.

Можно предложить следующий модифицированный метод Гаусса–Зейделя для параллельной реализации. Разделим вычисления координат вектора по процессам аналогично методу простой итерации. Будем в каждом процессе вычислять свое количество координат вектора по методу Гаусса Зейделя, используя только вычисленные значения вектора данного процесса. Различие в параллельной реализации по сравнению с методом простой итерации заключается только в процедуре вычисления значений вектора (вместо процедуры Iter_Jacoby используем процедуру Gauss-Seidel ).

void GaussZeidel(int size, int MATR_SIZE, int first)

/* задана матрица А, размерность матрицы MATR_SIZE, количество

вычисляемых элементов вектора в данном процессе size, вычисляем новые

значения вектора Х с номера first, используя значения вектора Х */

Sum += A[ind(i,j,MATR_SIZE)] * X[j];

for (j = i+1+first; j

Sum += A[ind(i,j,MATR_SIZE)] * X[j];

Рис. 1. Процедура вычисления значений вектора по методу Гаусса–Зейделя(параллельная версия)

• Разработка программной системы для параллельного решения СЛАУ на кластере

• Сравнение эффективности различных параллельных методов решения СЛАУ на кластере

1. Программирование для многопроцессорных систем в стандарте MPI: Пособие / Г. И. Ш паковский, Н. В. Серикова. – Мн.: БГУ, 2002. – 323с.

2. Теория и практика параллельных вычислений: учебное пособие/ В.П.Гергель.- М.: Интернет- Университет Информационных технологий; Бином. Лаборатория знаний, 2007.-423с.

3. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Олифер, Н. А. Олифер. – СПб: Питер, 2001. – 672с.

4. Параллельное программирование с использованием Open MP.-М.: Бином. Лаборатория знаний Интуит., 2008.- 118с.

5. Group W, Lusk E, Skjellum A. Using MPI. Portable Parallel Programming with the Message-Passing Interface. — MIT Press, 1994. (http://www.mcs.anl.gov/mpi/index.html)

6. Параллельные информационные технологии: учебное пособие/ А.Б. Барский- M .: Интернет- Университет Информационных технологий; Бином. Лаборатория знаний, 2007.-504с.

7. Корнеев В.Д. Параллельное программирование в MPI. — Москва-Ижевск: Институт компьютерных исследований, 2003. — 304 с.

8 . Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы: Общий подход. — М.: БИНОМ. Лаборатория знаний, 2006. — 406 с.

Решение задач по математике онлайн

//mailru,yandex,google,vkontakte,odnoklassniki,instagram,wargaming,facebook,twitter,liveid,steam,soundcloud,lastfm, // echo( ‘

Калькулятор онлайн.
Решение систем линейных алгебраических уравнений (СЛАУ)
Метод Гаусса, матричный метод, метод Крамера, исследование на совместность (теорема Кронекера-Капелли), определение количества решений, нахождение нормальной фундаментальной системы решений.

С помощью данной математической программы вы можете решить и исследовать систему линейных алгебраических уравнений (СЛАУ).

Программа не только даёт ответ задачи, но и приводит подробное решение с пояснениями шагов решения.

Данная программа может быть полезна учащимся старших классов общеобразовательных школ при подготовке к контрольным работам и экзаменам, при проверке знаний перед ЕГЭ, родителям для контроля решения многих задач по математике и алгебре. А может быть вам слишком накладно нанимать репетитора или покупать новые учебники? Или вы просто хотите как можно быстрее сделать домашнее задание по математике или алгебре? В этом случае вы также можете воспользоваться нашими программами с подробным решением.

Таким образом вы можете проводить своё собственное обучение и/или обучение своих младших братьев или сестёр, при этом уровень образования в области решаемых задач повышается.

Ввод дробного числа в виде десятичной дроби.
При вводе десятичной дроби, целую часть от дробной части можно отделять точкой или запятой :
Ввод: -2.34
Результат: \( -2<,>34 \)

Ввод: -1,15
Результат: \( -1<,>15 \)

Ввод дробного числа в виде обыкновенной дроби.
В качестве числителя, знаменателя и целой части дроби может выступать только целое число.
Знаменатель не может быть отрицательным.

При вводе числовой дроби числитель отделяется от знаменателя знаком деления: /
Ввод: -2/3
Результат: $$ -\frac<2> <3>$$

Целая часть отделяется от дроби знаком амперсанд: &
Ввод: 5&8/3
Результат: $$ 5\frac<8> <3>$$
Помните, что на ноль делить нельзя!

RND CFracNum Fill RND int Fill Start MathJax
Сюда ввести строку с GET параметрами :

Немного теории.

Системы линейных алгебраических уравнений

Основные определения

Система \(m\) линейных алгебраических уравнений с \(n\) неизвестными (сокращенно СЛАУ) представляет собой систему вида
\( \left\< \begin a_<11>x_1 + a_<12>x_2 + \cdots + a_<1n>x_n = b_1 \\ a_<21>x_1 + a_<22>x_2 + \cdots + a_<2n>x_n = b_2 \\ \cdots \\ a_x_1 + a_x_2 + \cdots + a_x_n = b_m \end \right. \tag <1>\)

Уравнения системы называют алгебраическими потому, что левая часть каждого из них есть многочлен от \(n\) переменных \( x_1 , \ldots x_n \), а линейными потому, что эти многочлены имеют первую степень.

Числа \(a_ \in \mathbb \) называют коэффициентами СЛАУ. Их нумеруют двумя индексами: номером уравнения \(i\) и номером неизвестного \(j\). Действительные числа \( b_1 , \ldots b_m \) называют свободными членами уравнений.

СЛАУ называют однородной, если \( b_1 = b_2 = \ldots = b_m = 0 \). Иначе её называют неоднородной.

Решением СЛАУ, да и вообще всякой системы уравнений, называют такой набор значений неизвестных \( x_1^\circ, \ldots , x_n^\circ \), при подстановке которых каждое уравнение системы превращается в тождество. Любое конкретное решение СЛАУ также называют её частным решением.

Решить СЛАУ — значит решить две задачи:
— выяснить, имеет ли СЛАУ решения;
— найти все решения, если они существуют.

СЛАУ называют совместной, если она имеет какие-либо решения. В противном случае её называют несовместной. Однородная СЛАУ всегда совместна, поскольку нулевой набор значений её неизвестных всегда является решением.

Если СЛАУ (1) имеет решение, и притом единственное, то её называют определенной, а если решение неединственное — то неопределенной. При \(m=n\), т.е. когда количество уравнений совпадает с количеством неизвестных, СЛАУ называют квадратной.

Формы записи СЛАУ

Кроме координатной формы (1) записи СЛАУ часто используют и другие её представления.

Рассматривая коэффициенты \(a_\) СЛАУ при одном неизвестном \(x_j\) как элементы столбца, а \(x_j\) как коэффициент, на который умножается столбец, из (1) получаем новую форму записи СЛАУ:
\( \begin a_ <11>\\ a_ <21>\\ \vdots \\ a_ \end x_1 + \begin a_ <12>\\ a_ <22>\\ \vdots \\ a_ \end x_2 + \ldots + \begin a_ <1n>\\ a_ <2n>\\ \vdots \\ a_ \end x_n = \begin b_1 \\ b_2 \\ \vdots \\ b_m \end \)
или, обозначая столбцы соответственно \( a_1 , \ldots , a_n , b \),
\( x_1 a_1 + x_2 a_2 + \ldots + x_n a_n = b \tag <2>\)

Таким образом, решение СЛАУ (1) можно трактовать как представление столбца \(b\) в виде линейной комбинации столбцов \( a_1, \ldots, a_n \). Соотношение (2) называют векторной записью СЛАУ.

Поскольку \(A \;,\; X\) и \(B\) являются матрицами, то запись СЛАУ (1) в виде \(AX=B\) называют матричной. Если \(B=0\), то СЛАУ является однородной и в матричной записи имеет вид \(AX=0\).

Приведенные рассуждения показывают, что задачи :
а) решения СЛАУ (1)
б) представления столбца в виде линейной комбинации данных столбцов
в) решения матричных уравнений вида \(AX=B\)
являются просто различной формой записи одной и той же задачи.

Критерий совместности СЛАУ

«Триединство» форм записи СЛАУ позволяет легко получить критерий совместности СЛАУ. Напомним, что содержательный смысл это понятие имеет для неоднородных СЛАУ (однородные СЛАУ всегда совместны).

Матрицу
\( A = \begin a_ <11>& a_ <12>& \cdots & a_ <1n>\\ a_ <21>& a_ <22>& \cdots & a_ <2n>\\ \vdots & \vdots & \ddots & \vdots \\ a_ & a_ & \cdots & a_ \end \)
называют матрицей (коэффициентов) СЛАУ (1), а матрицу
\( (A|B) = \left( \begin a_ <11>& a_ <12>& \cdots & a_ <1n>& b_1 \\ a_ <21>& a_ <22>& \cdots & a_ <2n>& b_2 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ a_ & a_ & \cdots & a_ & b_m \end \right) \)
расширенной матрицей СЛАУ (1). Расширенная матрица полностью характеризует СЛАУ. Это означает, что по этой матрице однозначно (если сохранить обозначения для неизвестных) восстанавливается сама СЛАУ.

Теорема Кронекера-Капелли. Для совместности СЛАУ \(AX=B\) необходимо и достаточно, чтобы ранг её матрицы \(A\) был равен рангу её расширенной матрицы \( (A|B) \).

Формулы Крамера

Теорема. СЛАУ с квадратной невырожденной матрицей имеет решение, и притом единственное, которое определяется по формулам Крамера :
$$ x_i = \frac<\Delta_i> <|A|>\;,\quad i=\overline <1,n>\tag <3>$$
где \(\Delta_i\) — определитель матрицы, получающейся из матрицы \(A\) заменой \(i\)-го столбца на столбец свободных членов.

Следствие. Однородная СЛАУ с квадратной невырожденной матрицей имеет единственное решение — нулевое.

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

Однородные системы

Теорема. Если столбцы \( X^<(1)>, X^<(2)>, \ldots , X^ <(s)>\) — решения однородной СЛАУ \(AX=0\), то любая их линейная комбинация также является решением этой системы.

Следствие. Если однородная СЛАУ имеет ненулевое решение, то она имеет бесконечно много решений.

Естественно попытаться найти такие решения \( X^<(1)>, \ldots , X^ <(s)>\) системы \(AX=0\), чтобы любое другое решение этой системы представлялось в виде их линейной комбинации и притом единственным образом. Оказывается, что это всегда возможно и приводит к следующему определению.

Определение. Любой набор из \(k=n-r\) линейно независимых столбцов, являющихся решениями однородной СЛАУ \(AX=0\), где \(n\) — количество неизвестных в системе, а \(r\) — ранг её матрицы \(A\), называют фундаментальной системой решений этой однородной СЛАУ.

При исследовании и решении однородных систем линейных алгебраических уравнений будем использовать следующую терминологию. Если в матрице \(A\) однородной СЛАУ \(AX=0\) фиксировать базисный минор, то ему соответствуют базисные столбцы и, следовательно, набор неизвестных, отвечающих этим столбцам. Указанные неизвестные называют базисными, или зависимыми, а остальные неизвестные — свободными, или независимыми.

Теорема. Пусть дана однородная СЛАУ \(AX=0\) с \(n\) неизвестными и \( \textA = r \). Тогда существует набор из \(k=n-r\) решений \( X^<(1)>, \ldots , X^ <(k)>\) этой СЛАУ, образующих фундаментальную систему решений.

Если в фундаментальной системе решений все значения независимых неизвестных равны нулю, кроме одного, которое равно единице, то такую систему решений называют фундаментальной нормальной системой решений.

Следствие. С помощью нормальной фундаментальной системы решений однородной СЛАУ множество всех решений можно описать формулой :
$$ X = c_1X^ <(1)>+ \ldots + c_kX^ <(k)>$$
где постоянные \( c_i \;, \quad i=\overline <1,k>\), принимают произвольные значения.

Следствие. Для существования ненулевого решения у однородной квадратной СЛАУ необходимо и достаточно, чтобы её матрица была вырождена.

Неоднородные системы

Рассмотрим произвольную СЛАУ \(AX=B\). Заменив столбец \(B\) свободных членов нулевым, получим однородную СЛАУ \(AX=0\), соответствующую неоднородной СЛАУ \(AX=B\). Справедливо следующее утверждение о структуре произвольного решения неоднородной СЛАУ.

Теорема. Пусть столбец \(X^\circ\) — некоторое решение СЛАУ \(AX=B\). Произвольный столбец \(X\) является решением этой СЛАУ тогда и только тогда, когда он имеет представление \(X = X^\circ + Y \), где \(Y\) — решение соответствующей однородной СЛАУ \(AY=0\).

Следствие. Пусть \(X’\) и \(X»\) — решения неоднородной системы \(AX=B\). Тогда их разность \( Y = X’ — X» \) является решением соответствующей однородной системы \(AY=0\).

Эта теорема сводит проблему решения СЛАУ к случаю однородной системы: чтобы описать все решения неоднородной СЛАУ, достаточно энать одно её решение (частное решение) и все решения соответствующей однородной СЛАУ.

Чтобы решить неоднородную систему, надо, во-первых, убедиться, что она совместна (например, по теореме Кронекера-Капелли), а во-вторых, найти частное решение \(X^\circ\) этой системы, чтобы свести её к однородной системе.

Теорема о структуре общего решения СЛАУ. Пусть \(X^\circ\) — частное решение СЛАУ \(AX=B\) и известна фундаментальная система решений \( X^<(1)>, \ldots , X^ <(k)>\) соответствующей однородной системы \(AX=0\). Тогда любое решение СЛАУ \(AX=B\) можно представить в виде $$ X = X^\circ + c_1 X^ <(1)>+ c_2 X^ <(2)>+ \ldots + c_k X^ <(k)>$$
где \( c_i \in \mathbb \;, \quad i=\overline <1,k>\).
Эту формулу называют общим решением СЛАУ.


источники:

http://masters.donntu.org/2009/fvti/al-masri/diss/index.htm

http://www.math-solution.ru/math-task/slau