Описание тестовых задач
12
После того, как функция была разработана, для ее отладки была составлена программа, где задавались матрица А, вектор 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|,
Для
В целом обусловленность матрицы А дает высокую точность решения, но по выбранным в данной работе системам трудно судить о влиянии мерности обусловленной матрицы А на точность решения.
12
Популярное: Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (185)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |