Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КМ_ЛР1_БУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
112.13 Кб
Скачать

НОУ СПО «Волгоградский колледж газа и нефти» ОАО «ГАЗПРОМ»

Факультет «Автоматика и вычислительная техника»

Методические указания

по дисциплине

«Компьютерное моделирование»

для студентов базового уровня подготовки

СПЕЦИАЛЬНОСТЬ 220703

Лабораторная работа №1 «Матричные вычисления. Решение систем линейных уравнений»

Волгоград 2012

Рассмотрены и одобрены на заседании цикловой комиссии «Комиссия автоматизированных систем управления, вычислительной техники и прикладной математики»:

Протокол №____

от «___»__________200__г.

Составитель:

к.ф.-м.н., доцент Казаков Н.В. –старший преподаватель специальных дисциплин ВКГН

Содержание

«Матричные вычисления. 1

Решение систем линейных уравнений» 1

1. Цель работы: научиться проводить матричные операции и решать системы линейных алгебраических уравнений путем написания специализированных программ на языке высокого уровня. 4

6. Рекомендуемая литература 15

1. Цель работы: научиться проводить матричные операции и решать системы линейных алгебраических уравнений путем написания специализированных программ на языке высокого уровня.

2.Краткие теоретические сведения.

Системы из n линейных уравнений вида (1) решаются точными и итерационными методами. Точные методы дают точное решение за конечное число операций, если вычисления по ним выполнялись без погрешности. Число операций у итерационных методов непостоянно и зависит от заданной погрешности вычислений.

a11x1

+

a12x2

+

...

+

a1nxn

=

b1

a21x1

+

a22x2

+

...

+

a2nxn

=

b2

...

...

...

...

...

...

...

...

(1)

an1x1

+

an2x2

+

...

+

annxn

=

bn

Метод Гаусса последовательного исключения неизвестных ( предложен в 1849). Способ относится к точным методам. Простейший метод основан на приведении матрицы коэффициентов aij к треугольному виду (прямой ход) и дальнейшем последовательном определении переменных xn,xn-1,...,x1 (обратный ход). При этом реализуется следующий алгоритм. Разделим первое уравнение на a11 и приведем его к виду x1+a12(1)x2+...+a1n(1)xn=b1(1). Исключим теперь х1 из остальных уравнений системы. Для этого последовательно умножаем первое уравнение системы на a21,a31,...,an1 и вычитаем его из второго, третьего и т.д. уравнения системы. Эти уравнения содержат теперь на одну переменную (x1) меньше и образуют систему из n-1 уравнения. К этой системе также применяется такое же преобразование и из n-2 уравнений исключается переменная x2. В итоге за n шагов приходим к системе (2):

x1

+

a12(1) x2

+

..

+

a1n (1) xn

=

b1(1)

x2

+

..

+

a2n (2) xn

=

b2(2)

...

...

...

..

..

...

...

...

(2)

xn

=

bn(n)

На этом заканчивается прямой ход. Осуществляя обратный ход, подставляем известное из последнего уравнения значение xn в предпоследнее и находим xn-1. Затем полученные значения двух неизвестных подставляют в третье с конца уравнение и т.д. В результате получаются все значения неизвестных.

Однако, если коэффициенты aij малы (близки к 0), то на k-ом шаге k-ая строка умножается на большое число 1/akk(k) , что приводит к значительным ошибкам округления и даже может вызвать аварийный останов ЭВМ от переполнения. Кроме того, сильно ухудшается точность решения из-за конечной длины машинного счета. Это является существенным недостатком простейшей реализации метода Гаусса.

Метод Гаусса с выбором главного элемента заключается в том, что перед началом решения производится выбор наибольшего по модулю коэффициента в строке, столбце или во всей матрице. Наиболее часто применяется выбор главного элемента по всей матрице и осуществляется перестановка строк и столбцов так, чтобы этот элемент оказался в верхнем левом углу матрицы коэффициентов. После чего производится счет по ранее рассмотренному алгоритму. Этот способ повышает точность решения при наличии ошибок округления. Для правильности расчетов на ЭВМ с числами с плавающей запятой достаточен выбор A(i,i)0.

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

После введения aij и bi вычисляем параметры

и ,

причем, если aii=aki=0, то Mki=1 и Lki=0. После чего проводятся преобразования системы по формулам:

Mkiyi-Lkiyk=Mkibi-Lkibk

Lkiyi-Mkiyk=Lkibi-Mkibk

где i=1,2,...,n+1, k=i+1,...,n, yi и yk - левые части, а bi и bk правые части i-го и k-ого уравнений соответственно. После n(n-1)/2 шагов приходим к системе с верхней треугольной матрицей. После чего проводим обратный ход

Метод простых итераций (от латинского iteratio - повторение) или метод последовательных приближений заключается в задании первоначальных значений искомых переменных и последовательном вычислении их всё более точных значений по одним и тем же формулам. Суть метода состоит в реализации итерационного процесса по следующей формуле:

Xi(k+1)=fi(Xi(k)),

применяемой после преобразования системы уравнений общего вида F(Xi)=0 к виду Xi=fi(Xi). В этих формулах i - номер переменной (1,2,....N), k - номер итерации. Вычисления ведутся до тех пор, пока выполняется условие Xi(k+1) - Xi(k)0.

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

Метод Зейделя (предложен в 1874) отличается от метода простых итераций тем, что уточненные Xi(n+1) сразу подставляются в последующие уравнения системы. Обычно это обеспечивает лучшую сходимость. .

Необходимость преобразования вида системы уравнений и трудности с обеспечением быстрой и гарантированной сходимости ограничивают применение методов простых итераций и его модификаций. Однако программная реализация их довольно проста. Кроме того, итерационные методы обладают свойством самоисправления погрешностей вычислений и могут применяться в особых случаях, когда матрица коэффициентов Aij сильно разрежена (т.е. содержит много нулей) или имеет другие особенности.

Метод минимизации целевой функции заключается в формировании неотрицательной целевой функции вида F(x1,x2, ... ,xn)=f1 (x1,x2,...,xn)+ f2 (x1,x2,...,xn)+... fn (x1,x2,...,xn), компоненты которой формируются из уравнений решаемой системы:

f1(x1,x2,...,xn)

=

a11x1

+

a12x2

+

a1nxn

-

b1

f2(x1,x2,...,xn)

=

a21x1

+

a22x2

+

a2nxn

-

b2

...

...

...

...

...

...

...

...

fn(x1,x2,...,xn)

=

an1x1

+

an2x2

+

annxn

-

bn

Если x1,x2,...,xn - искомое решение системы линейных уравнений, то функция F(x1,x2, ... ,xn) принимает значение равное нулю (в случае наличия решения) или примет значение, минимизирующее целевую функцию. Целевая функция может быть составлена не только из модулей функций fi , но и из их квадратов. Подобный подход позволяет решать системы уравнений с переопределенной матрицей. Поскольку, в общем случае число уравнений в системе может быть больше чем число неизвестных, то система может быть несовместной. Её решением в смысле наименьших квадратов считается такой вектор неизвестных, при котором скаляр, определяемый выражением (AX-B)(AX-B) принимает наименьшее значение. Таким образом, решение переопределенной системы сводится к решению новой системы [AtA][X]=[AtB], где At - транспонированная матрица А. После чего решение может быть проведено любым рассмотренным ранее способом.

Аналогично, приближенное вычисление нормального решения системы линейных уравнений с вырожденной (т.е. определитель которой равен нулю) матрицей осуществляется в предположении, что матрица коэффициентов и матрица свободных членов заданы с некоторым приближением t. Т.е., система уравнений CX=D сводится к системе AX=B, так что cij - aijt, bi-dit. Для решения системы вычисляется параметр =nt. За решение системы принимаются компоненты вектора Xn , получаемые из решения следующей системы [(AtA+E)][Xn]=[AtB], где Е -единичная матрица, At- транспонированная матрица коэффициентов.