Смекни!
smekni.com

Метод квадратных корней для симметричной матрицы при решении систем линейных алгебраических уравнений (стр. 2 из 2)

f =

0.3000

0.5000

0.7000

0.9000

0.6000

e =

1.0e-015 *

0.0555

0.2220

-0.1110

-0.3331

0

x =

-1.6362

-0.1885

0.9761

1.6642

0.7358

e1 =

1.0e-015 *

0 0.0555 0.2220 0.3331

e2 =

1.0e-015 *

0 0.0555 0.2289 0.4191

Построенные графики для оценки точности решения:

Для E1=max |Ei|,


Для

Как видим из решения, выданного программой, а также из графиков, ошибка растет с увеличением мерности матрицы А, а точность решения, как следствие уменьшается.

Теперь исследуем влияние разреженности матрицы А на точность решения. Для этого немного модифицируем программу, использованную для исследования влияния мерности матрицы А на точность решения: изменим в ней СЛАУ для решения. На каждом шаге будем увеличивать количество нулевых элементов в матрице.

Текст программы:

e1=0;

e2=0;

a=[1 0.42 .54 .66 .53;.42 1 .32 .44 .45; .54 .32 1 .22 .41; .66 .44 .22 1 .25; .53 .45 .41 .25 1;]

f=[0.3;0.5;.7;.9;.6]

[e,x]=mkk(a,f)

e1=max(abs(e))

e2=sqrt(sum(power(e,2)))

a=[1 0 .54 0 .53;0 1 .32 .44 .45; .54 .32 1 .22 .41; 0 .44 .22 1 .25; .53 .45 .41 .25 1;]

f=[0.3;0.5;.7;.9;.6]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

a=[1 0 .54 0 .53;0 1 .32 .44 .45; .54 .32 1 .22 .41; 0 .44 .22 1 0; .53 .45 .41 0 1;]

f=[0.3;0.5;.7;.9;.6]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

a=[1 0 .54 0 0;0 1 0 .44 .45; .54 0 1 .22 0; 0 .44 .22 1 0; 0 .45 0 0 1;]

f=[0.3;0.5;.7;.9;.6]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

mernost=[2 3 4 5];

plot(mernost,e1);

pause;

plot(mernost,e2);

pause

Результат работы программы:

a =

1.0000 0.4200 0.5400 0.6600 0.5300

0.4200 1.0000 0.3200 0.4400 0.4500

0.5400 0.3200 1.0000 0.2200 0.4100

0.6600 0.4400 0.2200 1.0000 0.2500

0.5300 0.4500 0.4100 0.2500 1.0000

f =

0.3000

0.5000

0.7000

0.9000

0.6000

e =

1.0e-015 *

0.0555

0.2220

-0.1110

-0.3331

0

x =

-1.6362

-0.1885

0.9761

1.6642

0.7358

e1 =

3.3307e-016

e2 =

4.1910e-016

a =

1.0000 0 0.5400 0 0.5300

0 1.0000 0.3200 0.4400 0.4500

0.5400 0.3200 1.0000 0.2200 0.4100

0 0.4400 0.2200 1.0000 0.2500

0.5300 0.4500 0.4100 0.2500 1.0000

f =

0.3000

0.5000

0.7000

0.9000

0.6000

e =

1.0e-015 *

0.0555

0.1110

0.2220

0.1110

0.1110

x =

-0.1810

-0.1718

0.5355

0.7673

0.3618

e1 =

1.0e-015 *

0.3331 0.2220

e2 =

1.0e-015 *

0.4191 0.2989

a =

1.0000 0 0.5400 0 0.5300

0 1.0000 0.3200 0.4400 0.4500

0.5400 0.3200 1.0000 0.2200 0.4100

0 0.4400 0.2200 1.0000 0

0.5300 0.4500 0.4100 0 1.0000

f =

0.3000

0.5000

0.7000

0.9000

0.6000

e =

1.0e-015 *

-0.0555

-0.0555

0

0.1110

0

x =

-0.4156

-0.4724

0.5213

0.9932

0.8192

e1 =

1.0e-015 *

0.3331 0.2220 0.1110

e2 =

1.0e-015 *

0.4191 0.2989 0.1360

a =

1.0000 0 0.5400 0 0

0 1.0000 0 0.4400 0.4500

0.5400 0 1.0000 0.2200 0

0 0.4400 0.2200 1.0000 0

0 0.4500 0 0 1.0000

f =

0.3000

0.5000

0.7000

0.9000

0.6000

e =

1.0e-015 *

0

0

0

0

-0.1110

x =

0.0374

-0.1969

0.4863

0.8797

0.6886

e1 =

1.0e-015 *

0.3331 0.2220 0.1110 0.1110

e2 =

1.0e-015 *

0.4191 0.2989 0.1360 0.1110

ДляE1=max |Ei|,

Для


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

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

Текст программы:

e1=0;

e2=0;

a=[500 501;501 500]

f=[15000;16000]

[e,x]=mkk(a,f)

e1=max(abs(e))

e2=sqrt(sum(power(e,2)))

a=[500 501 -503;501 500 499;-503 499 500]

f=[15000;16000;18000]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

a=[500 501 -503 500;501 500 499 -501;-503 499 500 502;500 -501 502 500]

f=[15000;16000;18000;16000]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

a=[500 501 -503 500 499;501 500 499 -501 500;-503 499 500 502 -501;500 -501 502 500 -500; 499 500 -501 -500 500]

f=[15000;16000;18000;16000;17000]

[e,x]=mkk(a,f)

e1=[e1 max(abs(e))]

e2=[e2 sqrt(sum(power(e,2)))]

mernost=[2 3 4 5];

plot(mernost,e1);

pause;

plot(mernost,e2);

pause

Результат работы программы:

>> head5

a =

500 501

501 500

f =

15000

16000

e =

1.0e-010 *

-0.2910

0.5821

x =

515.4845

-484.5155

e1 =

5.8208e-011

e2 =

6.5078e-011

a =

500 501 -503

501 500 499

-503 499 500

f =

15000

16000

18000

e =

1.0e-010 *

0.0182

0.0364

0.1455

x =

-2.0239

32.9970

1.0330

e1 =

1.0e-010 *

0.5821 0.1455

e2 =

1.0e-010 *

0.6508 0.1511

a =

500 501 -503 500

501 500 499 -501

-503 499 500 502

500 -501 502 500

f =

15000

16000

18000

16000

e =

1.0e-008 *

0

0

-0.1120

0.0997

x =

14.5050

16.5505

17.4961

16.5125

e1 =

1.0e-008 *

0.0058 0.0015 0.1120

e2 =

1.0e-008 *

0.0065 0.0015 0.1500

a =

500 501 -503 500 499

501 500 499 -501 500

-503 499 500 502 -501

500 -501 502 500 -500

499 500 -501 -500 500

f =

15000

16000

18000

16000

17000

e =

1.0e-010 *

-0.0364

0.0364

0.8367

-0.9459

0.1091

x =

33.0693

35.1332

-1.0682

-2.1077

-37.3144

e1 =

1.0e-008 *

0.0058 0.0015 0.1120 0.0095

e2 =

1.0e-008 *

0.0065 0.0015 0.1500 0.0127

ДляE1=max |Ei|,

Для


В целом обусловленность матрицы А дает высокую точность решения, но по выбранным в данной работе системам трудно судить о влиянии мерности обусловленной матрицы А на точность решения.

4. Анализ результатов. Выводы

По исследованию можно сказать следующее. Точность решения СЛАУ методом квадратных корней для симметричной матрицы зависит от многих параметров, как то: мерность матрицы А, разреженность матрицы А, обусловленность матрицы А. Точность зависит от этих параметров как по отдельности, так и в комбинации. Можно также сказать, что точность решения сильно зависит от количества округлений во время решения и, как следствие собственно количества вычислений, которые необходимо произвести, чтобы решить СЛАУ методом квадратных корней. Было отмечено на этапе отладки программы, что, чем ближе корни системы к целым числам, тем меньше ошибка, тем выше точность.


Заключение

В данной курсовой работе был исследован метод квадратных корней для симметричной матрицы - один из методов решения систем линейных алгебраических уравнений. Этим методом можно решать системы вида Ax = f, в которых матрица A – симметричная.

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


Список использованной литературы

1. Волков Е.А., Численные методы.- М.: «Наука», 1982.

2. Калиткин Н.Н. Численные методы.- М.: Наука,1978.

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