- •Основы работы в matlab. Векторы и матрицы.
- •Введение
- •Среда matlab
- •1.1. Основный окна Matlab и выполнение элементарных вычислений
- •1.2. Редактирование и отладка м-файлов
- •Переменные в matlab
- •3. Массивы в matlab
- •4. Задачи линейной алгебры (векторы и матрицы)
- •1. Функции операций над векторами:
- •Решение некоторых задач линейной алгебры
- •4. Решение некоторых задач алгебры матриц
- •5. Решение систем линейных уравнений
- •6. Собственные значения и собственные векторы
- •7. Норма и число обусловленности матрицы
- •8. Задания для самостоятельного решения
5. Решение систем линейных уравнений
Система m-уравнений сnнеизвестными вида называется системой линейных уравнений, причемxj– неизвестные,- коэффициенты при неизвестных,- свободные коэффициенты (i=1,…,m, j=1,...n):
………………………………….
Кроме этого, система из m линейных уравнений сnнеизвестными может быть описана при помощи матриц:A*x=b, гдеx={xj} – вектор неизвестных,A={aij} – матрица коэффициентов при неизвестных при неизвестных или матрица системы,b= {bj} – вектор свободных членов системы или векторов правых частей (i=1..m, j=1,..n).
Матрица (A|b), которая формируется путем приписывания к исходной матрице коэффициентовА столбца свободных членовb, называется расширенной матрицей системы.
Если все bi =0, то речь идет об однородной системе линейных уравнений, иначе говорят о неоднородной системе.
Совокупность всех решений системы (x1,x2,…,xn) называется множеством решений, или просто решением системы. Две системы уравнений называются эквивалентными, если они имеют одинаковое множество решений.
Однородные системы линейных уравнений Ax=0 всегда разрешимы, так как последовательность (x1=0,x2=0,…,xn=0) удовлетворяет всем уравнениям системы. Решение в этом случае называетсятривиальным.Проблема решения однородных систем сводится к вопросу о том существуют ли помимо тривиального другие, нетривиальные решения.
Система линейных уравнений может не иметь ни одного решения, и тогда она называется несовместной. Например в системе:
левые части уравнения совпадают, а правые различные, поэтому никакие значения x1иx2не могут удовлетворить обоим уравнения сразу.
Если же система линейных уравнений обладает решением, то она называется совместной. Совместная система называется определенной, если у нее есть единственное решение, и неопределенной, если решение больше чем одно. Так система:
определена и имеет единственное решение =5,, а система уравнений:
Неопределенна, так как имеет бесконечное множество решений вида =kи, где числоkпроизвольное.
Совокупность всех решений неопределенной системы уравнений называется общим решением, а какое-то одно конкретное решение –частным. Частное решение, полученное из общего при нулевых значениях свободных переменны, называется базисным.
При определении совместности систем уравнений важную роль играет понятие ранга матрицы. Пусть дана матрица Аразмеромn*m Вычеркиванием из нее некоторых строк и столбцов можно получить квадратные матрицыk – го порядка, определители которых называются минорами порядкаk матрицыА. Наивысший порядок не равных нулю миноров матрицыA называют рангом матрицы и обозначаютr(А). Из определения вытекает, чтоr (A)<min(n,m), r(A) = 0, только если матрица нулевая иr (А) =п для невырожденной матрицыn-го порядка. При элементарных преобразованиях (перестановка строк матрицы, умножение строк на число, отличное от нуля, и сложение строк) ранг матрицы не изменяется. Итак, если речь идет об исследовании системы на совместность, следует помнить, что системап линейных уравнений ст неизвестными:
несовместна, если r (А | b) > r (А);
совместна, если r (А |b) = г (А), причем приr(А | b) =r (А) = m имеет единственное решение, а приr(A|b) = r(A) < m имеет бесконечно много решений.
Существует немало методов для практического нахождения решений систем линейных уравнений. Они разделяются на точные и приближенные. Метод относится к классу точных, если с его помощью можно найти решение в результате конечного числа арифметических и логических операций. В этом разделе на конкретных примерах будут рассмотрены только точные методы решения систем.
Задача 7.
Решить систему линейных уравнений при помощи правила Крамера:
Правило Крамера заключается в следующем. Если определитель=detAматрицы системы изп уравнений сп неизвестнымиАх =b отличен от нуля (если определитель матрицы системы равен нулю, это не означает, что система не имеет решения; возможно ее нельзя решить по формулам Крамера ), то система имеет единственное решениеx1,…. x2, ...,хn, определяемое по формулам Крамера, где- определитель матрицы, полученный из матрицы системыА заменойi-го столбца столбцом свободных членовb.Итак, для решения поставленной задачи необходимо выполнить следующие действия:
■ представить систему в матричном виде, то есть сформировать матрицу системы Аи вектор правых частейb,
■ вычислить главный определитель ;
■ сформировать вспомогательные матрицы для вычисления определителей i;
■ вычислить определители ;
■ найти решение системы по формуле
Фрагмент рабочего документа, приведенный в листинге 75, содержит решение поставленной задачи.
Листинг 75.
>> А=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6]
>> %Матрица коэффициентов
А =
2 1 -5 1
1 -3 0 -6
0 2 -1 2
0 4 -7 6
>> %Вектор свободных коэффициентов
>> b=[8;9;-5;0]
b =
8 9 -5 0
>> %Первая вспомогательная матрица
>> А1=А;А1(:,1)=b
А1 =
8 1 -5 1
9-3 0 -6
-5 2 -1 2
0 4 -7 6
>> %Вторая вспомогательная матрица
>> А2=А;А2(:,2)=b
А2 =
2 8 -5 1
1 9 0 -6
0-5-12 1 0-7 6
>> %Третья вспомогательная матрица
>> АЗ=А;АЗ(:,3)=b
A3 =
2 1 8 1
1 -39-6 02-52 1 4 0 6
>> %Четвертая вспомогательная матрица
>> А4=А;А4(:,4)=b
А4 =
2 1-5 8
1-3 0 9
2-1-5
4-7 0
>> Главный определитель отличен от нуля
>> D=det(A)
D =
27
>> %Определители вспомогательных матриц
>> d(l)=det(Al);
>> d(2)=det(A2);
>> d(3)=det(A3);
>> d(4)=det(A4);
>> %Вектор неизвестных >>
x=d/D
х =
3 -4 -1 1
>> %Проверка >>
A*x'-b
ans =
0
0
0
0
Предложенное решение системы из четырех уравнений с четырьмя неизвестными по формулам Крамера выглядит достаточно громоздко, поэтому на практике его используют довольно редко.
Задача 8.
Решить систему линейных уравнений из задачи 7 методом обратной матрицы. Метод обратной матрицы: для системы изп линейных уравнений сп неизвеcтнымиАх= b, при условии что определитель матрицыА не равен нулю, единcтвенное решение можно представить в видех=А-1*b (вывод формулы см. в задаче 6). Итак, для того чтобы решить систему линейных уравнений мето-10м обратной матрицы, необходимо выполнить следующие действия:
■ сформировать матрицу коэффициентов и вектор свободных членов заданной системы;
■ решить систему, представив вектор неизвестных как произведение матрицы, обратной к матрице системы, и вектора свободных членов (листинг 76).
Листинг 76
>>А=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];
>> b=[8;9;-5;0];
>> %Решение системы: х=А-1*b
>>inv(A)*b
x =
3.0000 -4.0000 -1.0000 1.0000
>> %проверка: А*х=b
» A*x
ans =
8.0000
9.0000
-5.0000
0.0000
Задача 9.
Решить систему линейных уравнений методом Гаусса:
Решение системы линейных уравнений при помощи метода Гаусса основывается на том, что от заданной системы, переходят к системе эквивалентной, которая решается проще, чем исходная.
Метод Гаусса состоит из двух этапов. Первый этап - это прямой ход, в результате которого расширенная матрица системы путем элементарных преобразований (перестановка уравнений системы, умножение уравнений на число, отличное от нуля, и сложение уравнений) приводится к ступенчатому виду:
На втором этапе (обратный ход) ступенчатую матрицу преобразуют так, чтобы в первыхп столбцах получилась единичная матрица:
Последний, п + 1 столбец этой матрицы содержит решение системы линейных уравнений.
Исходя из выше изложенного, порядок решения задачи в MATLAB(листинг 77) следующий:
■ сформировать матрицу коэффициентов А и вектор свободных членовb заданной системы;
■ сформировать расширенную матрицу системы, объединив А иb;
■ используя функцию rref, привести расширенную матрицу к ступенчатому виду;
■ найти решение системы, выделив последний столбец матрицы, полученной в предыдущем пункте;
■ выполнить вычисление Ах -В; если в результате получился нулевой вектор, задача решена верно.
Листинг 77.
>>Рeшение системы методом Гаусса
>> А=[2 -1 1;3 2 -5;1 3 -2);
>> b=[0;1;4];
>> C=rref([A b])%Приведение расширенной матрицы к треугольному виду
С =
1.0000 0 0 0.4643 О 1.0000 0 1.6786
0 0 1.0000 0.7500 >> х=С(1:3,4:4)%Выделение последнего столбца из матрицы х = %Решение системы 0.4643 1.6786 0.7500 >> А*х %Проверка
ans =
0
1
4