
- •Математические методы моделирования физических процессов
- •Введение
- •Лабораторная работа № 1 численное решение обыкновенных дифференциальных уравнений первого порядка
- •Порядок выполнения работы
- •Лабораторная работа № 2 численное решение ду высших порядков или систем оду
- •Порядок выполнения работы
- •Лабораторная работа № 3 численное решение краевых задач
- •Порядок выполнения работы
- •Лабораторная работа № 4 численное решение дифференциальныхных уравнений в частных производных
- •Порядок выполнения работы
- •Лабораторная работа № 5 численное решение систем линейных алгебраических уравнений
- •Порядок выполнения работы
- •Лабораторная работа № 6 численное решение нелинейных уравнений и их систем
- •Порядок выполнения работы
- •Лабораторная работа № 7 аппроксимация данных методом наименьших квадратов
- •Порядок выполнения работы
- •Лабораторная работа № 8 решение задач одномерной и многомерной оптимизации
- •Порядок выполнения работы
- •Библиографический список
- •Приложения
- •Первые навыки работы в matlab
- •Численное решение оду и их систем
- •Численное решение краевых (граничных) задач
- •Аналитическое решение линейных сиситем алгебраических уравнений
- •Численное решение линейных или нелинейных систем алгебраических уравнений
- •Аппроксимация данных
- •Приближение данных полиномом
- •Интерполяция сплайнами
- •Аппроксимация данных при помощи регрессии
- •Одномерная и многомерная оптимизация
- •Основные математические функции в matlab
Лабораторная работа № 5 численное решение систем линейных алгебраических уравнений
Цель работы
1. Знакомство с задачами исследования и численными методами решения систем линейных алгебраических уравнений (СЛАУ).
2. Разработка численной ММ, реализующей один из методов.
3. Решение задач исследования однородных и неоднородных СЛАУ при помощи средств MATLAB.
Решение
систем линейных уравнений – одна из
наиболее часто встречающихся задач в
научных и инженерных расчетах. Многие
приложения приводят к этой задаче
непосредственно, кроме того системы
линейных уравнений могут возникать как
один из этапов в решении более сложных
проблем. При этом обычно число уравнений
равно числу неизвестных. Такую систему
можно записать в матричном виде A
x=b,
где А
– заданная квадратная матрица порядка
n,
b
– заданный вектор-столбец с n
компонентами и x
– неизвестный вектор-столбец с n
компонентами. В свернутом виде система
может быть записана как
,
i=1,2,…,n.
Тогда в развернутом виде
a11
x1+
a12
x2
+…+ a1n
xn
=b1,
a21 x1+ a22 x2 +…+ a2n xn =b2,
……………………………………
an1 x1+ an2 x2 +…+ ann xn =bn .
Решением системы является вектор X*={x1*, x2*,…, xn*} при подстановке которого в каждое уравнение системы получаем истинные равенства. Для решения СЛАУ применяют прямые (точные) и итерационные (приближенные) методы. Метод решения задачи относится к классу точных, если предполагается отсутствие округлений и с его помощью можно найти решение в результате конечного числа арифметических и логических операций.
Среди прямых методов (используют конечное число преобразований системы) можно выделить методы Крамера, Гаусса, Гаусса-Жордана и др. Обычно их применяют для систем небольшой размерности (до 103).
В частности, метод Гаусса (гауссовых исключений) состоит в приведении исходной системы путем последовательных исключений неизвестных (при помощи элементарных операций над строками: перестановка строк; умножение строки на число отличное от нуля; сложение строк) к эквивалентной системе с треугольной (ступенчатой) матрицей (прямой ход метода Гаусса)
x1+
с12 x2
+…+ с1n
xn
=d1,
c22 x2 +…+ c2n xn =d2,
…………………
xn =dn ,
далее ее решают по рекуррентным формулам
xn
=dn
,
,
i=n-1,n-2,…,
1.
Итерационные методы реализуют стратегию постепенного приближения к решению X* путем построения соответствующей последовательности векторов X0, X1,…, Xk. Вектор X0 называется начальным приближением, а переход от текущего k-го приближения (вектор Xk ) к k+1-му приближению (вектор Xk+1) итерацией. Данный переход реализуется при помощи функционального оператора Xk+1=F(Xk), вид которого определяется заданной системой и конкретным методом.
Для итерационных методов (метод простой итерации, метод Зейделя и др.) решение получают всегда приближенным, в то же время необходимо отметить ряд преимуществ, которыми обладают последние по сравнению с прямыми методами:
1) меньшие затраты времени при получении решения;
2) значительно меньшие погрешности округления;
3) самоисправление случайных ошибок на очередном шаге;
4) особенная эффективность при работе с разряженными матрицами (большое количество коэффициентов которых равно нулю), а также для систем большой размерности (103-106).
Метод простой итерации реализует переход к k+1-му приближению, используя при определении каждой координаты нового вектора координат только предыдущего k-го приближения Xk+1=F(Xk). Пусть дана СЛАУ вида
a11
x1+
a12
x2
+…+ a1n
xn
+ a1n+1
=0,
a21 x1+ a22 x2 +…+ a2n xn + a2n+1 =0, (1)
……………………………………
an1 x1+ an2 x2 +…+ ann xn + ann+1 =0 .
Выразив из каждого уравнения соответствующую координату, получим
x1=с11
x1+
с12 x2
+…+ с1n
xn
+ с1n+1,
x2=с21 x1+ с22 x2 +…+ с2n xn + с2n+1, (2)
……………………………………
xn=сn1 x1+ сn2 x2 +…+ сnn xn + сnn+1 .
Для
обеспечения условий сходимости
(сходимость или устойчивость метода
обеспечивается при любом начальном
приближении X0,
если норма матрицы, составленной из
коэффициентов только при неизвестных
в системе (2) меньше единицы, т.е., например,
при i=1,2,…,n)
при переходе от системы (1) к системе (2)
можно воспользоваться следующими
преобразованиями:
,
где
.
Если после данных преобразований сходимость не обеспечивается (единичные случаи), исходную систему необходимо преобразовать в эквивалентную. Это достигается путем попарного сложения или вычитания уравнений.
Далее текущее приближение Xk подставляют в правую часть системы (2), тогда в левой части получают координаты нового уточненного приближения Xk+1. В качестве начального приближения X0 можно выбрать столбец свободных членов b или нулевой вектор. Окончанием итерационного процесса может служить выполнение условия
,
где – заданная погрешность приближенного решения.
Метод Зейделя является модификацией метода простой итерации. В целях ускорения сходимости он реализует переход к k+1-му приближению, используя при определении координат нового вектора не только предыдущее k-е приближение, но и вычисленные на данный момент координаты k+1-го приближения Xk+1=F(Xk, Xk+1):
x1k+1=с11
x1k+
с12 x2k+…+
с1n-1
xn-1k
+с1n
xnk+
с1n+1,
x2k+1=с21 x1k+1+ с22 x2k+…+ с2n xnk + с2n+1,
……………………………………
xnk+1=сn1 x1k+1+ сn2 x2k+1+…+ сnn xnk + сnn+1 .
Дальнейшее ускорение сходимости последовательности приближений достигается в методе последовательной верхней релаксации. Для специального вида матриц, например симметричных, положительно определенных, имеется также семейство методов сопряженных градиентов или сопряженных направлений [3].
В
целом для
обеспечения сходимости итерационного
метода
достаточно, чтобы выполнялось условие
||A||<1,
или ||С||<1
по какой-либо норме матрицы, согласованной
с нормой векторов. Если для векторов
x=(x1,x2,…,xn)
введена норма ||x||,
то согласованной с ней нормой матриц
называют величину
.
Чаще всего используют следующие нормы
векторов и соответствующих согласованных
норм матриц:
-
№
п/п
Норма вектора
Согласованная норма матрицы
1
2
3
или с учетом ||A||2||A||e
где
максимальное собственное значение
матрицы
.
В общем случае система может включать m уравнений относительно n неизвестных
a11
x1+
a12
x2
+…+ a1n
xn
=b1,
a21 x1+ a22 x2 +…+ a2n xn =b2,
……………………………………
am1 x1+ am2 x2 +…+ am n xn =bm .
Тогда данная система совместна, если она имеет хотя бы одно решение и несовместна, если не имеет ни одного.
Однородной СЛАУ называется система, правая часть которой равна нулю (b=0). Однородная система всегда совместна, т.к. имеет, по крайней мере, одно решение (x1=0,…, xn=0). Если однородная система имеет единственное решение, то оно нулевое и система называется тривиально совместной. Если имеется более одного решения, то среди них есть ненулевые. В этом случае говорят о нетривиально совместной системе. Такая система имеет бесконечное множество решений, причем линейная комбинация любых решений системы тоже является ее решением. Доказано, что среди бесконечного множества решений однородной системы можно выделить ровно n-r линейно независимых решений, где r – ранг матрицы А (число ненулевых строк в ступенчатой матрице, получаемой из исходной матрицы А с помощью гауссовых исключений).
Совокупность этих n-r линейно независимых решений называется фундаментальной системой решений. Любое решение СЛАУ линейно выражается через фундаментальную систему. Поэтому, если ранг r матрицы А однородной системы Аx=0 меньше числа неизвестных n, то система является нетривиально совместной и для любого решения системы с учетом векторов е1, е2,…, еn-r, образующих ее фундаментальную систему решений (А еi =0, i=1,2,…,n-r) можно записать выражение:
x=c1 е1 +c2 е2 +…+cn-r еn-r ,
где c1, c2,…, c1n-r – произвольные постоянные, а само выражение называют общим решением однородной системы.
Исследовать однородную СЛАУ – это значит установить, является ли она нетривиально совместной и в этом случае найти фундаментальную систему решений, а также общее решение системы.
Неоднородной СЛАУ называется система, правая часть которой неравна нулю (b0). Для того, чтобы неоднородная система была совместна, необходимо и достаточно, чтобы ранг расширенной матрицы системы совпадал с рангом матрицы системы. Расширенная матрица получается путем добавления к матрице А столбца b.
Исследовать неоднородную СЛАУ – это значит установить, является ли она совместной, и если да, то найти общее решение системы.