Мегаобучалка Главная | О нас | Обратная связь


Описание тестовых задач



2019-12-29 185 Обсуждений (0)
Описание тестовых задач 0.00 из 5.00 0 оценок




 

После того, как функция была разработана, для ее отладки была составлена программа, где задавались матрица А, вектор f и откуда вызывалась написанная функция.

Программа имеет вид:

a=[1 0 0; 0 1 0; 0 0 1];

f=[7;8;9];

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

Решение для данной программы выдано такое:

e =

0

0

0

x =

7

8

9

Как видим, решение правильное.

Начнем исследование метода квадратных корней. Для начала исследуем влияние мерности матрицы А на точность решения.

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

а) решит четыре СЛАУ с разными мерностями матрицы А,

б) посчитает четыре точности полученного решения по формуле E1=max |Ei|,

в) посчитает четыре точности полученного решения по формуле

 

,

 

в которых i – количество решенных уравнений

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

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

e1=0;

e2=0;

a=[1 0.42;.42 1]

f=[0.3;0.5]

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

e1=max(abs(e))

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

a=[1 0.42 .54;.42 1 .32; .54 .32 1;]

f=[0.3;0.5;.7]

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

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

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

a=[1 0.42 .54 .66;.42 1 .32 .44; .54 .32 1 .22; .66 .44 .22 1]

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

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

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

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

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=[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 =

1.0000 0.4200

0.4200 1.0000

f =

0.3000

0.5000

e =

0

0

x =

0.1093

0.4541

e1 =

0

e2 =

0

a =

1.0000 0.4200 0.5400

0.4200 1.0000 0.3200

0.5400 0.3200 1.0000

f =

0.3000

0.5000

0.7000

e =

1.0e-016 *

0.5551

0

0

x =

-0.2405

0.3737

0.7103

e1 =

1.0e-016 *

0 0.5551

e2 =

1.0e-016 *

0 0.5551

a =

1.0000 0.4200 0.5400 0.6600

0.4200 1.0000 0.3200 0.4400

0.5400 0.3200 1.0000 0.2200

0.6600 0.4400 0.2200 1.0000

f =

0.3000

0.5000

0.7000

0.9000

e =

1.0e-015 *

-0.0555

0

-0.2220

0

x =

-1.2578

0.0435

1.0392

1.4824

e1 =

1.0e-015 *

0 0.0555 0.2220

e2 =

1.0e-015 *

0 0.0555 0.2289

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 =

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|,

 

 

Для

 

 


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



2019-12-29 185 Обсуждений (0)
Описание тестовых задач 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание тестовых задач

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (185)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)