Стороны |
Результат |
||
Площадь |
Минимальный угол |
Косинус минимального угла |
|
0.1 |
0.005 |
45 |
0,70710678 |
10-2 |
4.9999999E-005 |
||
10-5 |
4.9999997E-011 |
||
10-7 |
4.9999999E-015 |
||
10-10 |
5.0000002E-021 |
||
10-12 |
5.0000001E-025 |
||
10-17 |
4.9999997E-035 |
||
10-20 |
4.9999731E-041 |
||
10-22 |
5.6051939E-045 |
||
10-23 |
0.0000000 |
где стороны находятся из п.2 математической модели.
Вывод: При увеличении стороны равностороннего треугольника до 1020, происходит переполнение при вычислении площади треугольника и результатом является inf. При уменьшении стороны равнобедренного треугольника до10-23, происходит переполнение при вычислении площади треугольника и результатом является 0. Это означает, что памяти, выделенной под переменную S, оказывается недостаточно, т.к. вычисленное значение площади не входит в диапазон значений типа real.
Исследование №2
Данное исследование позволяет отследить, при каких входных данных наблюдается исчезновение порядка при вычислениях. В качестве исходного треугольника был взят прямоугольный треугольник, для которого вычислялись значения площади, минимального угла и косинуса минимального угла.
a |
b |
Результаты |
||
площадь |
Минимальный угол |
Косинус минимального угла |
||
1015 |
1018 |
5.0000000E+032 |
0.0559529 |
0.9999995 |
1016 |
4.9999999E+030 |
5.7105885 |
0.9950372 |
|
1015 |
4.9999997E+029 |
45.000000 |
0,70710678 |
|
1013 |
4.9999997E+027 |
0.5730077 |
0.9999500 |
|
1012 |
4.9999999E+026 |
0.559529 |
0.9999995 |
|
109 |
1012 |
5.0000001E+019 |
0.0000000 |
1.0000000 |
1011 |
5.0000001E+019 |
0.5730077 |
0.9999500 |
|
1010 |
5.0000000E+018 |
5.7105885 |
0.9950372 |
|
109 |
4.9999999E+017 |
45.0000000 |
0,70710678 |
|
108 |
4.9999999E+016 |
5.7105885 |
0.9950372 |
где стороны a и b находятся из п.2 математической модели
Вывод: При достаточно малых значениях минимального угла косинус становится константой, равной 1, но такого быть не может, т.к. при таком значении косинуса в треугольнике есть угол равный 2πk, k=0,1,2,…
После проведенных исследований №1 и №2 были приняты следующие меры по устранению ошибок:
Введена функция-подпрограмма проверяющая значения сторон на принадлежность к диапазону
c /*************ДИАПАЗОН ЗНАЧЕНИЙ*************/
integer*1 function diapazon()
common /sides/ a,b,c
diapazon=0
IF(a.GT.(1e-23).AND.b.GT.(1e-23).AND.c.GT.(1e-23))THEN!минимальные значения
IF(a.LT.(1e+20).AND.b.LT.(1e+20).AND.c.LT.(1e+20)) diapazon=1!максимальные
endIF
END
Исследование №3
Данное исследование позволяет познакомиться с погрешностью вычислений, обусловленной неточностью исходных данных. Исследование проводилось на примере числа π.
π |
Результаты |
|||||
Площадь |
Минимальный угол |
Косинус минимального угла |
||||
(0;0) |
(0;5) |
(5;0) |
3,14 |
12.5000000 |
45.0228233 |
0,70710678 |
3,1415 |
12.5000000 |
45.0013275 |
0,70710678 |
|||
3,141592 |
12.5000000 |
45.0000114 |
0,70710678 |
|||
3,1415926 |
12.5000000 |
45.0000038 |
0,70710678 |
|||
3,14159265 |
12.5000000 |
45.0000000 |
0,70710678 |
|||
3,14159265359 |
12.5000000 |
45.0000000 |
0,70710678 |
Вывод: Для корректного вычисления результатов достаточно 7 цифр в числе π после запятой. При тщательном исследовании вариаций числа π было установлено, что при значении π, превосходящем 3,14159265, значения результатов не изменяются.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.