Написание программы на языке ФОРТРАН, реализующей вычисление заданного набора геометрических характеристик треугольников с использованием меню (Лабораторная работа № 1), страница 3

Стороны

Результат

Площадь

Минимальный угол

Косинус минимального угла

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, но такого быть не может, т.к. при таком значении косинуса в треугольнике есть угол равный 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, значения результатов не изменяются.