Реферат: Точные методы решения систем линейных алгебраических уравнений (СЛАУ)
Если в процессе приведения системы (1) к ступенчатому виду появятся нулевые решения (равенства вида 0=0) их отбрасывают. Если же появится уравнение вида 0=bi, а bi 0, то это говорит о несовместимости системы.
Второй этап (обратный ход) заключается в решении ступенчатой системы. В последнем уравнении этой системы выражаем первое неизвестное xk через остальные неизвестные (xk+1, …, xn). Затем подставляем значение xk в предпоследнее уравнение системы и выражаем xk-1 через (xk+1, …, xn), затем находим xk-2, …, x1.
Теперь рассмотрим второй точный метод решения СЛАУ - метод Холецкого (метод квадратных корней).
Он применяется в случае, если матрица системы является симметричной и положительно определенной. В основе метода лежит алгоритм специального LU -разложения матрицы А, где L - нижняя треугольная матрица, а U - верхняя треугольная матрица (если главный минор не равен 0, то существует разложение, причем оно единственно).
Разбиение матрицы А= на верхнюю и нижнюю к примеру будет выглядеть так
L = и U =.
В результате преобразований матрица А приводится к виду A = (где - транспонированная матрица). Если разложение получено, то решение системы сводится к последовательному решению двух систем с треугольными матрицами: и . Для нахождения коэффициентов матрицы L неизвестные коэффициенты матрицы приравнивают соответствующим элементам матрицы A . Затем последовательно находят требуемые коэффициенты по формулам:
, i = 2, 3,..., m,
, i = 3, 4,..., m,
, i = k+1,..., m,
Применение метода к конкретной задаче (анализ)
Составляя задачи на языке программирования Borland C++ Builder 6 для реализации точных методов решения СЛАУ я учитывал разное количество уравнений в системе (размерность матрицы задавал равным nxn). Но для проверки результатов использовал уравнения
(для проверки решения методом Гаусса) (2) и
(для проверки решения методом Холецкого) (3)
Методы существенно отличаются друг от друга и как описано выше имеют разные подходы для решения СЛАУ. Реализовав методы программным путем и сделав проверки, я пришел к выводу, что не все СЛАУ можно решить методом Холецкого. Как описано выше метод Холецкого применяется для решения систем, которые являются симметричными и положительно определенными. В свою очередь методом Гаусса решаются практически все системы. Исключения составляют невырожденные матрицы, т.е. те матрицы, определитель которых не равен 0.
Листинг программы
#include "Unit1. h"
// ---------------------------------------------------------------------------
#pragma package (smart_init)
#pragma resource "*. dfm"
TForm1 *Form1;
int n=0,l=0;
float r=0,p=0;
const x=100;
float A [x] [x],Ver [x] [x],Nig [x] [x] ;
float *X;
float *Y;
bool fl1=false;
// ---------------------------------------------------------------------------