Автор работы: Пользователь скрыл имя, 07 Июня 2012 в 10:30, курсовая работа
Итерационные методы позволяют получить корни системы с заданной точностью путем сходящихся бесконечных процессов (к числу таковых относят, метод итераций, метод Зейделя, метод релаксации).
Вследствие неизбежных округлений результаты даже точных методов являются округленными, причем оценка погрешностей корней в общем случае затруднительна.
Введение………………………………………………………………………3
1.Постановка задачи………………………………………………………….4
2.Метод решения……………………………………………………………...5
3.Блок-схема алгоритма……………………………………………………...6
4.Текст программы…………………………………………………………7
5.Описание программы……………………………………………………..8
5.1.Назначение программы…………………………………………………9
5.2.Исходные параметры программы……………………………………..10
5.3.Выходные параметры…………………………………………………11
6.Заключение и выводы…………………………………………………….16
7.Список использованной литературы…………………………………..17
или
т.е. предельный вектор x является решением системы (2’), а следовательно, и системы (1).
Напишем
формулы приближений в
Заметим, что иногда систему (1) выгоднее приводить к виду (2), так чтобы коэффициенты не были равны нулю.
Вообще
имея систему:
можно положить
где
. Тогда данная
система эквивалентна приведенной системе
где
при
Поэтому при дальнейших рассуждениях мы не будем вообще говоря предполагать, что .
Процесс
итерации хорошо сходиться т.е. число
приближений необходимых для
получения корней системы (1) с
заданной точностью невелико, если
элементы матрицы
малы по абсолютной
величине. Иными словами, для успешного
применения процесса итерации модули
диагональных коэффициентов системы (1)
должны быть велики по сравнению с модулями
недиагональных коэффициентов этой системы
(свободные члены при этом роли не играют).
Блок-схема алгоритма
По представленному в.п алгоритму была разработана программа на языке Turbo Pascal.
Назначение программы
Программа
предназначена для решения
А-данная матрица.
i,n- количество строк.
j- количество столбцов.
х- не известная переменная.
eps- заданная точность.
b- константы.
оtv- ответ.
program iter;
var A: array [1..4,1..4] of real;
b,x,otv: array [1..4] of real;
i,j,n: byte;
eps: real;
pr: boolean;
begin
write('razmer matrix n=');
readln(n);
for i:=1 to n do {Ввод данных}
for j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(A[i,j]);
end;
for i:=1 to n do
if a[i,i]=0 then begin
writeln('oshibka vvoda'); {проверка чтобы на диагонали не было
exit; нулевых коэффициэнтов}
end;
for i:=1 to n do
begin
write('b[',i,']=');
readln(b[i]);
end;
for i:=1 to n do
begin
for j:=1 to n do
begin
if i=j then continue; {Выражаем x1,x2,x3…из системы}
a[i,j]:=-a[i,j]/a[i,i];
end;
b[i]:=b[i]/a[i,i];
a[i,i]:=0;
end;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:4:2,' ');
writeln(b[i]:4:2);
end;
for i:=1 to n do
x[i]:=0;
write('tochnost='); {Вводим точность}
readln(eps);
repeat
for i:=1 to n do
begin
for j:=1 to n do
otv[i]:=otv[i]+a[i,j]*x[j]; {алгоритм решения}
otv[i]:=otv[i]+b[i];
end;
for i:=1 to n do
if abs(otv[i]-x[i])<eps
then pr:=true;
for i:=1 to n do
begin
x[i]:=otv[i];
otv[i]:=0;
end;
until pr;
for i:=1 to n do
writeln(x[i]); {Вывод результата}
end.
В данной курсовой работе была разработана алгоритм и программа на языке Turbo Pascal для решения системы n линейных алгебраических уравнений методом итераций.
Линейные системы имеют в вычислениях очень большое значение, так как к ним может быть приведено приближенное решение широкого круга задач. Теория этих систем сравнительно проста и доведена во многих частях до совершенства. Что же касается практики решения систем, то наши возможности еще сильно отстают от потребностей. Здесь многое зависит от порядка системы, т. е. от числа уравнений и неизвестных в ней. С увеличением порядка число операций, нужных для решения системы, быстро растет.
Число операций, требующихся для решения, зависит не только от порядка системы, но также от выбора метода вычислений. Поясним это примером. Предположим, что дана система п уравнений с п неизвестными и с определителем, отличным от нуля. По теореме Крамера система имеет единственное решение. В этой теореме указывается явное выражение для значений неизвестных в виде отношения двух определителей порядка я, при этом число различных определителей в отношениях
равно .
Пусть
для нахождения решения мы хотим
воспользоваться теоремой Крамера, при
этом детерминанты будем вычислять по
их обычному определению, как сумму со
знаками
произведений
элементов по одному из каждой строки
и каждого столбца. Легко можно подсчитать,
что для нахождения решения нужно будет
приблизительно пгп
умножений и делений. Уже при п =
20 это число приблизительно равно 1021
и являете настолько большим, что становится
ясной невозможность решать указанным
путем на современных машинах систему
даже двадцати уравнений.
Чтобы было возможным решение систем большого числа уравнений, необходимо изменить метод вычислений и сделать его менее трудоемким. Такая задача привлекала внимание очень большого числа лиц, и было указано много методов решения линейных систем, преследующих не только основную цель уменьшения числа, операций, но и другие цели. Эти методы строились как для систем общего вида с любыми коэффициентами, так и для систем специальных форм, например, получающихся при численном решении уравнений. Такими методами являются описанные выше метод простой итерации, позволяющий получать приближенное решение уравнения, затрачиваю при этом меньше числовых операций, чем при точных методах.
1. Вычислительные методы, том I. В.И. Крылов, В.В. Бобков, П.И. Монастырный. - М., Наука, 1976. - 303 с.
2. Калиткин Н.Н. Численные методы - М., Наука 1978. - 512 с.
3. Демидович Б.П.,
Марон И.А. Основы
Информация о работе Решение системы n-линейных алгебраических уравнений методом итераций.