5. Анализ результатов счета, выводы

Результаты вычислений тестовых систем линейных алгебраических уравнений представлены в виде файлов-отчетов, которые приведены в Приложении2, а также в виде графиков итерационных процессов и графиков зависимостей погрешностей решений исходных систем линейных алгебраических уравнений от шага итерации, которые приведены в Приложении3.

Анализируя эти результаты, можно сделать следующие выводы.

Во-первых, количество итераций сильно зависит от матрицы А исходной системы уравнений вида Ax=b. Чем ближе диагональные элементы матрицы А к нулю, тем больше итераций требуется для того, чтобы решить исходную систему линейных алгебраических уравнений.

Во-вторых, на количество шагов влияет начальное приближение. Чем оно ближе к точному решению, тем меньше требуется шагов для сходимости метода. Следует отметить, что в рассматриваемых примерах достаточно точное начальное приближение требует количества итераций приблизительно в 1,7-2,0 раза меньше, чем произвольное, достаточно далеко отстоящее от точного решения, приближение.

В-третьих, скорость сходимости метода зависит от того, каким способом реализован переход от системы вида F(x)=x к системе вида x=(x).

Анализ счета показывает, что если диагональные элементы матрицы А не близки к нулю, то при любом приближении (достаточно точном и не очень) количество шагов, требующихся для сходимости метода, практически не зависит от способа перехода от системы вида F(x)=x к системе вида x=(x). А если элементы диагонали матрицы A близки к нулю и приближение недостаточно точное, то метод сходится быстрее, если в нем реализован первый способ перехода от системы вида F(x)=x к системе вида x=(x) (см. п.2.2.).

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

(4.1) при приближении x( 0 )=(1,1,1), так как в этом случае для обоих способов потребовалось одинаковое количество шагов для сходимости и одинаковое время счета, но различное число операций с плавающей точкой.

Время счета, как видно из результатов решения систем (4.1) и (4.2) линейно зависит от количества шагов и числа операций. Чем показатели последних выше, тем больше время счета.

Наконец, погрешности полученных решений, как видно из файла-отчета, не превышает заданную погрешность  .

Исходя из тестовых систем линейных алгебраических уравнений и результатов их решения, можно сделать следующие выводы.

Метод простой итерации (при любом способе перехода от системы вида F(x)=x к системе вида x=(x) ) сходится быстро, если диагональные элементы матрицы А системы Ax=b близки к единице, а остальные - близки к нулю, и приближение достаточно близко к точному решению. Но при решении систем Ax=b с матрицей А, отличной от вышеописанной, метод сходится при первом способе перехода более быстро в случае, если начальное приближение далеко отстоит от точного решения, а если приближение достаточно близко лежит к точному решению, то при втором способе перехода метод сходится несколько быстрее, чем при первом.

Итак, можно сказать, что применение в прикладных задачах данного метода оправданно, но выбор перехода к системе x=(x) зависит от типа конкретной решаемой системы линейных алгебраических уравнений.


6. Заключение

В данной курсовой работе был реализован метод простой итерации для решения систем линейных алгебраических уравнений в виде двух программ, каждая из которых использует свой собственный способ перехода от системы вида F(x)=x к системе вида x=(x).

Вообще говоря, метод простой итерации не отличается повышенной сходимостью (может вообще не сойтись), но если он сходится, то этот метод обычно имеет высокую точность счета и достаточно высокую скорость сходимости. Следует отметить, что все вышеперечисленное зависит от самой исходной системы Ax=b и способа перехода к системе вида x=(x). Если метод не сходится, значит не соблюдаются условия сходимости метода или используется неудачный переход к системе x=(x).


Приложения

итерация линейное алгебраическое уравнение

Приложение 1

 

Модуль METOD1.M

result=x0';

temp=x0';

size_system=size(system_a);

flag=ones(size_system(1),1);

edop1=zeros(1,size_system(1));

number_iter=0;

time=0;

number_oper=0;

a=system_a;

b=system_b;

%format long;

edop=input('Введите погрешность:');

clc;

flops(0);

t1=clock;

while any(flag)

for i=1:size_system(1)

temp(i)=b(i)/a(i,i);

for ii=1:size_system(1)

if (i~=ii)

temp(i)=temp(i)-a(i,ii)/a(i,i)*result(number_iter+1,ii);

end;

end;

e(i)=abs(result(number_iter+1,i)-temp(i));

if e(i)<=edop

flag(i)=0;

else flag(i)=1;

end;

end;

edop1=[edop1;e];

result=[result;temp];

number_iter=number_iter+1;

end;

t2=clock;

number_oper=flops;

time=etime(t2,t1);

res=result';

v=size(res);

fprintf('total','\nРезультаты итерационного процесса, реализованного первым способом\n');

for i=1:size_system(1)

fprintf('total','\nX%g равен:',i);

fprintf('total','%g',res(i,v(2)));

end;

if exist('x_ok')==2

dy=abs(x_ok-res(:,v(2)));

for i=1:size_system(1)

fprintf('total','\nПогрешнось корня Х%g равна:',i);

fprintf('total','%g',dy(i));

end;

end;

fprintf('total','\nМетод сходится при первом способе за %g шагов',number_iter);

fprintf('total','\nВремя счета для первого способа: %g',time);

fprintf('total','\nЧисло операций при решении первым способом: %g\n',number_oper);

iter=0:number_iter;

m=[max(x0'),max(res(:,v(2)))];

n=[min(x0'),min(res(:,v(2)))];

miny=min(n);maxy=max(m);

ax=[0,number_iter,miny,maxy];

axis(ax);

for i=1:size_system(1)

plot(iter,result(:,i));

hold on;

title('Graph of iter. process by first metod');

end;

pause;

clg;

hold off;

for i=1:size_system(1)

plot(iter,edop1(:,i));

title('Graph of E(m) by first metod');

pause;

end;

clc;

Модуль METOD2.M

result=x0';

temp=x0';

size_system=size(system_a);

flag=ones(size_system(1),1);

edop1=zeros(1,size_system(1));

number_iter=0;

time=0;

number_oper=0;

a=system_a;

b=system_b;

%format long;

edop=input('Введите погрешность:');

clc;

flops(0);

t1=clock;

while any(flag)

for i=1:size_system(1)

temp(i)=b(i);

for ii=1:size_system(1)

if (i~=ii)

temp(i)=temp(i)-a(i,ii)*result(number_iter+1,ii);

else temp(i)=temp(i)-(a(i,ii)-1)*result(number_iter+1,ii);

end;

end;

e(i)=abs(result(number_iter+1,i)-temp(i));

if e(i)<=edop

flag(i)=0;

else flag(i)=1;

end;

end;

edop1=[edop1;e];

result=[result;temp];

number_iter=number_iter+1;

end;

t2=clock;

number_oper=flops;

time=etime(t2,t1);

res=result';

v=size(res);

fprintf('total','\nРезультаты итерационного процесса, реализованного вторым способом\n');

for i=1:size_system(1)

fprintf('total','\nX%g равен:',i);

fprintf('total','%g',res(i,v(2)));

end;

if exist('x_ok')==2

dy=abs(x_ok-res(:,v(2)));

for i=1:size_system(1)

fprintf('total','\nПогрешнось корня Х%g равна:',i);

fprintf('total','%g',dy(i));

end;

end;

fprintf('total','\nМетод сходится при втором способе за %g шагов',number_iter);

fprintf('total','\nВремя счета для второго способа: %g',time);

fprintf('total','\nЧисло операций при решении вторым способом: %g\n',number_oper);

iter=0:number_iter;

m=[max(x0'),max(res(:,v(2)))];

n=[min(x0'),min(res(:,v(2)))];

miny=(min(n));maxy=(max(m));

ax=[0,number_iter,miny,maxy];

axis(ax);

for i=1:size_system(1)

plot(iter,result(:,i));

hold on;

title('Graph of iter. process by second metod');

end;

pause;

clg;

hold off;

for i=1:size_system(1)

plot(iter,edop1(:,i));

title('Graph of E(m) by second metod');

pause;

end;

clc;

Один из вариантов модуля SYSTEM_A.M

function [F]=system_a();

F=[1.02,-0.25,-0.30;

-0.41,1.13,-0.15;

-0.25,-0.14,1.21];

Один из вариантов модуля SYSTEM_B.M

function [F]=system_b();

F=[0.515;1.555;2.780];

Один из вариантов модуля X0.M

function [F]=x0();

F=[1000;1000;1000];

Один из вариантов модуля X_OK.M

function [F]=x_ok();

F=[2.0;2.5;3.0];


Приложение 2

Файл TOTAL результатов решения системы (4.1) с x(0)=(1000,1000,1000)

Результаты итерационного процесса, реализованного первым способом

X1 равен:2.00077

X2 равен:2.50077

X3 равен:3.00054

Погрешность корня Х1 равна:0.000767669

Погрешность корня Х2 равна:0.000771614

Погрешность корня Х3 равна:0.000544976

Метод сходится при первом способе за 18 шагов

Время счета для первого способа: 0.05

Число операций при решении первым способом: 612

Результаты итерационного процесса, реализованного вторым способом

X1 равен:2.00037

X2 равен:2.50004

X3 равен:3.00008

Погрешность корня Х1 равна:0.000370626

Погрешность корня Х2 равна:3.92304e-005

Погрешность корня Х3 равна:7.93105e-005

Метод сходится при втором способе за 17 шагов

Время счета для второго способа: 0.06

Число операций при решении вторым способом: 629

Файл TOTAL результатов решения системы (4.1) с x( 0 )=(1,1,1)

Результаты итерационного процесса, реализованного первым способом

X1 равен:1.99939

X2 равен:2.49937

X3 равен:2.99956

Погрешность корня Х1 равна:0.000609367

Погрешность корня Х2 равна:0.000630859

Погрешность корня Х3 равна:0.000441667

Метод сходится при первом способе за 10 шагов

Время счета для первого способа: 0.06

Число операций при решении первым способом: 340

Результаты итерационного процесса, реализованного вторым способом

X1 равен:2.00002

X2 равен:2.4996

X3 равен:2.99979

Погрешность корня Х1 равна:2.32305e-005

Погрешность корня Х2 равна:0.000402933

Погрешность корня Х3 равна:0.000207955

Метод сходится при втором способе за 10 шагов

Время счета для второго способа: 0.06

Число операций при решении вторым способом: 370

Файл TOTAL результатов решения системы (4.2) с x( 0 )=( -270,-503,1260,-653)

Результаты итерационного процесса, реализованного первым способом

X1 равен:-271.808

X2 равен:-505.362

X3 равен:1269.24

X4 равен:-656.953

Метод сходится при первом способе за 79 шагов

Время счета для первого способа: 0.55

Число операций при решении первым способом: 4819

Результаты итерационного процесса, реализованного вторым способом

X1 равен:-271.82

X2 равен:-505.348

X3 равен:1269.24

X4 равен:-656.941

Метод сходится при втором способе за 72 шагов

Время счета для второго способа: 0.55

Число операций при решении вторым способом: 4392

Файл TOTAL результатов решения системы (4.2) с x( 0 )=( 0,10,20,30)

Результаты итерационного процесса, реализованного первым способом

X1 равен:-271.809

X2 равен:-505.362

X3 равен:1269.24

X4 равен:-656.954

Метод сходится при первом способе за 122 шагов

Время счета для первого способа: 0.93

Число операций при решении первым способом: 7442

Результаты итерационного процесса, реализованного вторым способом

X1 равен:-271.821

X2 равен:-505.348

X3 равен:1269.24

X4 равен:-656.94

Метод сходится при втором способе за 153 шагов

Время счета для второго способа: 1.32

Число операций при решении вторым способом: 9333

 


Приложение 3

 


График итерационного процесса на примере решения системы (4.1) с x( 0 )=(1000,1000,1000) программой METOD1

 

График итерационного процесса на примере решения системы (4.1) с x( 0 )=(1000,1000,1000) программой METOD2



График итерационного процесса на примере решения системы (4.1)


с x( 0 )=(1,1,1) программой METOD1

 


График итерационного процесса на примере решения системы (4.1) с x( 0 )=(1,1,1) программой METOD2


График итерационного процесса на примере решения системы (4.2)


с x( 0 )=(0,10,20,30) программой METOD1

 


График итерационного процесса на примере решения системы (4.2) с x( 0 )=(0,10,20,30) программой METOD2

 


График итерационного процесса на примере решения системы (4.2)


с x( 0 )=(-270,-503,1260,-653) программой METOD1

 


График итерационного процесса на примере решения системы (4.2) с x( 0 )=( -270,-503,1260,-653) программой METOD2

 


Графики зависимостей погрешностей решений системы (4.1) от шага итерации при использовании программы METOD1.M и при x( 0


)=(1000,1000,1000)

 


Графики зависимостей погрешностей решений системы (4.1) от шага итерации при использовании программы METOD2.M и при x( 0 )=(1000,1000,1000)

 


Графики зависимостей погрешностей решений системы (4.1) от шага итерации при использовании программы METOD1.M и при x( 0


)=(1,1,1)

Графики зависимостей погрешностей решений системы (4.1) от шага итерации при использовании программы METOD2.M и при x( 0 )=(1,1,1)



Графики зависимостей погрешностей решений системы (4.2) от шага итерации при использовании программы METOD1.M и при x( 0 )=(-


270,-503,1260,-653)

 


Графики зависимостей погрешностей решений системы (4.2) от шага итерации при использовании программы METOD2.M и при x( 0 )=(-270,-503,1260,-653)

Графики зависимостей погрешностей решений системы (4.2) от шага итерации при использовании программы METOD1.M и при x( 0


)=(0,10,20,30)

 


Графики зависимостей погрешностей решений системы (4.2) от шага итерации при использовании программы METOD2.M и при x( 0 )=(0,10,20,30)

 


Список литературы

 

1.  Копченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах.- М.: Наука, 1972

2.  Крылов В.И., Бобков В.В., Монастырский П.И. Вычислительные методы.- М.: Наука, 1976

3.  Сарычева О.М. Численные методы в экономике.- Новосибирск, 1995


Информация о работе «Метод простой итерации для решения систем линейных алгебраических уравнений»
Раздел: Математика
Количество знаков с пробелами: 24924
Количество таблиц: 0
Количество изображений: 20

Похожие работы

Скачать
20676
0
0

... 1.2 0.4 -0.8 -0.8 3.6 4 4.7 10.4 9.7 9.7 -8.4Результат вычислений по методу Гаусса x1 = 5.0000000000E+00 x2 = -4.0000000000E+00 x3 = 3.0000000000E+00 x4 = -2.0000000000E+00 2.2 Программа решения систем линейных уравнений по методу Зейделя 2.2.1. Постановка задачи. Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида a11x1 + a12x2 + … + a1nxn = ...

Скачать
20755
0
0

... 10.4 9.7 9.7 -8.4 Результат вычислений по методу Гаусса x1 = 5.0000000000E+00 x2 = -4.0000000000E+00 x3 = 3.0000000000E+00 x4 = -2.0000000000E+00 2.2 Программа решения систем линейных уравнений по методу Зейделя 2.2.1. Постановка задачи. Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида a11x1 + a12x2 + … + a1nxn = b1 , a21x2 + ...

Скачать
14674
0
13

... 1040, мы все еще получаем сходимость, при количестве итераций порядка 130.   4 Анализ результатов, выводы Целью нашего исследование было сравнение методов простой итерации и Ньютона для решения систем из двух нелинейных уравнений по числу итераций, времени сходимости в зависимости от выбора начального приближения к решению и допустимой ошибки. Зависимость этих параметров от выбора начального ...

Скачать
14116
3
1

... конкретной задаче (анализ)   Составляя задачи на языке программирования Borland C++ Builder 6 для реализации точных методов решения СЛАУ я учитывал разное количество уравнений в системе (размерность матрицы задавал равным nxn). Но для проверки результатов использовал систему уравнений: Вообще говоря, процесс Зейделя сходится быстрее, чем метод Якоби. Бывает, что процесс Зейделя сходится, ...

0 комментариев


Наверх