
- •Основы работы в 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.
Решить систему линейных уравнений при помощи правила Крамера:
Правило Крамера заключается в
следующем. Если определитель
= det A матрицы
системы из п уравнений с п
неизвестными Ах = 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