| О проекте | Главная | Оставить сообщение | Адрес для связи: tbam1@rambler.ru |

МАТЕМАТИКА: ПРИБЛИЖЕНИЕ ФУНКЦИЙ, ИНТЕРПОЛЯЦИЯ, АППРОКСИМАЦИЯ, КОМПЬЮТЕРНАЯ ГРАФИКА И ЭВОЛЮЦИЯ КАЛЬКУЛЯТОРОВ

       А.М. Белов

       В настоящее время калькуляторы все еще остаются наиболее массовыми вычислительными устройствами. Это объясняется тем, что калькуляторы просты в использовании и являясь узко специализированными вычислительными устройствами, в отличии от персональных компьютеров не требуют для своего использования специальной подготовки людей. Калькуляторы работают в режиме непосредственного выполнения набираемых команд, позволяют вычислять значения выражений, содержащих несколько знаков операций и функций без записи промежуточных результатов (т.н. цепочечные вычисления). При этом при работе с калькуляторами не требуется составление программ и ввод в них программного кода.

    В рамках данной статьи не рассматриваются так называемые программируемые калькуляторы или вычислительные устройства требующие для выполнения всех или части своих функций ввода программного кода, так как такие вычислительные устройства уместнее было бы отнести к микрокомпьютерам. Программируемые калькуляторы фактически лишены главного преимущества обычных калькуляторов - непосредственного выполнения набираемых команд.

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

Рис.1 Классификация калькуляторов

 

       Первые вычислительные устройства, которые можно отнести к калькуляторам были механическими и для приведения их в действие использовался ручной привод. Наиболее характерными представителями таких вычислительных устройств являются арифмометры.

    С развитием электротехники, появлением малогабаритных и надежных электродвигателей, переключателей были созданы электромеханические счетные машины. Из электромеханических счетных машин большое распространение имела многоклавишная вычислительная машина ВММ-2. 

    Развитие электроники в свою очередь  вызвало появление электронных калькуляторов. Первый электронный калькулятор Anita MK 8 был продемонстрирован в 1961 году.

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

    Существующие в настоящее время калькуляторы по своему виду можно подразделить на портативные (карманные и настольные) и виртуальные.

    Виртуальные калькуляторы существуют в виде программ для персональных компьютеров, выводятся на экран монитора компьютера и представляют собой имитацию портативных калькуляторов. Сохраняют все основные преимущества портативных калькуляторов. В настоящее время практически все персональные компьютеры в составе своего программного обеспечения имеют программы имитирующие портативные калькуляторы.

    Современные калькуляторы всех видов можно подразделить на калькуляторы способные совершать операции только над числами и калькуляторы способные выполнять операции над функциями.

    Калькуляторы выполняющие операции над числами подразделяются на простейшие и инженерные. 

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

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

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

    Очевидно, что прежде чем с функцией осуществлять какие либо операции ее необходимо задать. Причем задать ее желательно формулой (уравнением), а поскольку с использованием калькулятора может потребоваться совершать операции практически с любой функцией, то используемое для этого уравнение должно обладать исключительной универсальностью. 

   В качестве такого универсального уравнения можно использовать уравнение (1)


    y=[x/x1]·[x1/x]·y1+[x/x2]·[x2/x]·y2+...+[x/xi]·[xi/x]·yi ,                   (1)


где []- математический знак обозначающий целую часть числа, xi - значения аргумента.
    При бесконечно большом индексе i это уравнение способно точно задать практически любую функцию включая, как непрерывные, так и разрывные функции, в т. ч. и функции содержащие целые интервалы, на которых они не определены. 
    Поскольку, при выполнении реальных вычислений, значение индекса i всегда оказывается все же конечным, на практике приходится использовать уравнение (2) являющееся частным случаем уравнения (1).


     y=[(x1+|x1-x|+|x2-x|)/x2]·[x2/(x1+|x1-x|+|x2-x|)]·f(x)+
    +[(x2+|x2-x|+|x3-x|)/x3]·[x3/(x2+|x2-x|+|x3-x|)]·f(x)+...
    ...+[(xi+|xi-x|+|xi+1-x|)/xi+1]·[xi+1/(xi+|xi-x|+|xi+1-x|)]·f(x)
,                        (2)


где f(x) - функции приближенно описывающие изменение значений y на интервалах между значениями аргументов xi и xi+1. Функции f(x) могут быть любыми, но удобнее использовать алгебраические многочлены. Причем если значение индекса i достаточно большое, то хорошее приближение получается даже при невысокой степени многочленов.

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

    Это, второе условие прежде всего связано с тем, что человек способен себе представить функцию целиком только в виде графика. Никакие формулы или таблицы не позволяют представить человеку функцию целиком. По этому изучая функцию, заданную формулой или таблицей он всегда стремиться представить себе, как она будет выглядеть на графике.

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

    В настоящее время метод построения графика по точкам, отображение графиков можно легко реализовать за счет применения методов, используемых при создании различных графических редакторов. Эти же методы обеспечивают, параллельно с рисованием графика,  формирование информации в цифровой форме, необходимой для составления уравнений, выполнения вычислений с использованием функций и преобразования функций.

    На рис. 2 приведен внешний вид действующего макета калькулятора способного выполнять операции над функциями целиком. Этот калькулятор является виртуальным - существует в виде программы под наименованием "КАЛЬКУЛЯТОР ФУНКЦИЙ", способной имитировать реальный калькулятор.

Рис. 2 Внешний вид действующего макета калькулятора способного выполнять операции над функциями целиком

    В приведенном на рис.2 калькуляторе показана функция, загруженная в режиме "для совершения операций". Для примера специально была выбрана такая "угловатая" функция, что бы каждый сам мог оценить сколько времени и сил придется потратить для задания подобной функции традиционными средствами и прийти к выводу, что в конечном итоге задавать ее придется не одним уравнением, как в калькуляторе, а в виде системы уравнений. Сформировать же подобную функцию в калькуляторе можно быстро и без особых усилий.

    Программа "КАЛЬКУЛЯТОР ФУНКЦИЙ" позволила подтвердить возможность создания калькулятора способного выполнять операции над функциями в режиме непосредственного выполнения набираемых команд без ввода программного кода.

    Калькулятор, приведенный на рис. 2 имеет в центральной части рабочий стол для вывода и ввода графической информации и в правом нижнем углу окно для вывода информации в цифровом виде. Продемонстрировал возможность выполнять практически все арифметические действия с функциями, включая сложение, вычитание умножение и т.д. двух произвольных функций, выполнение операций взятия функции от функции, которые приведены на кнопках в левой части калькулятора на рис. 2, вычислять значения функций для заданных значений аргумента и вычислять значения аргумента для заданных значений функций. Кроме этого калькулятор может формировать функцию, выражающую производную созданной (загруженной) функции, вычислять определенный интеграл, находить экстремумы функций, решать системы уравнений, формировать уравнения функций в виде программного кода для непосредственного использования их в других компьютерных программах. Может использоваться для хранения базы функций и извлечения из базы отдельных функций для работы с ними.  

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

    Созданная программа обеспечивает работу с функциями одной независимой переменной. Нет принципиальных проблем для создания программы, работающей с функциями двух независимых переменных.

    При объединении, рассматриваемой программы с обычным инженерным калькулятором можно будет получить калькулятор превосходящий по своим возможностям и удобствам эксплуатации существующие в настоящее время  графические программируемые калькуляторы (микрокомпьютеры).

    Пример выполнения вычислений с использованием программы 

"КАЛЬКУЛЯТОР ФУНКЦИЙ"

    Условия задачи :

    Необходимо установить зависимость изменения предельно допустимого растягивающего усилия, приложенного к составному стержню от изменения температуры стержня. Стержень состоит из прутка чугуна ЧЮ22Ш и прутка сплава ХН70ВМТЮ. Сечение каждого прутка 1 см2 .

    Экспериментально были определены:

    Значения временного сопротивления при растяжении чугуна ЧЮ22Ш в  МПа 290, 245, 275, 168, 137, 78 соответственно для температур нагрева чугуна в оС 20, 500, 600, 700, 800, 900.

    Значения временного сопротивления при растяжении сплава ХН70ВМТЮ в  МПа 1070, 990, 900, 770, 720, 590, 490 соответственно для температур нагрева сплава в оС 20, 600, 700, 750, 800, 850, 900.

Решение задачи :

       1. Последовательно для чугуна и сплава в калькулятор вводятся экспериментально определенные значения временного сопротивления при растяжении. При этом на рабочем столе калькулятора отображаются, соответствующие этим значениям точки. Точки при помощи мыши соединяются плавной кривой. В результате калькулятор формирует две функции, приведенные на рис. 3 и 4.

Рис. 3 График функции выражающей изменение временного сопротивления при растяжении чугуна при увеличении температуры

  

Рис. 4 График функции выражающей изменение временного сопротивления при растяжении сплава при увеличении температуры

    Одновременно калькулятор формирует два файла, в которых хранятся функции, приведенные на рис. 3 и 4 в цифровой форме.

    2. На калькуляторе последовательно умножаются каждая из функций приведенные на рис. 3 и 4 на числа 0,0001 и 1000. Затем полученные в результате умножения функции складываются между собой. В результате  калькулятор формирует искомую зависимость изменения предельно допустимого растягивающего усилия, приложенного к составному стержню от изменения температуры стержня. График этой зависимости приведен на рис. 5.

Рис. 5  Зависимость изменения предельно допустимого растягивающего усилия, приложенного к составному стержню от изменения температуры стержня

   Одновременно с графиком искомой зависимости калькулятор формирует уравнение функции этой зависимости в виде программного кода пригодного для непосредственного использования в других программах:

Y=Y+Fix(( 7.49999475479126+Abs( 7.49999475479126-X)+Abs( 11.25-X))/ 11.25)*Fix( 11.25/( 7.49999475479126+Abs( 7.49999475479126-X)+Abs( 11.25-X)))*(-3.51412009653684E-02*X+ 137.071330713215)

Y1=Y1+Fix(( 7.49999475479126+Abs( 7.49999475479126-X)+Abs( 11.25-X))/ 11.25)*Fix( 11.25/( 7.49999475479126+Abs( 7.49999475479126-X)+Abs( 11.25-X)))

    ............................................................................................................................................................................................................

Y=Y+Fix(( 898.149475097656+Abs( 898.149475097656-X)+Abs( 902.87353515625-X))/ 902.87353515625)*Fix( 902.87353515625/( 898.149475097656+Abs( 898.149475097656-X)+Abs( 902.87353515625-X)))*(-.201772712556071*X+ 238.051119168807)

Y1=Y1+Fix(( 898.149475097656+Abs( 898.149475097656-X)+Abs( 902.87353515625-X))/ 902.87353515625)*Fix( 902.87353515625/( 898.149475097656+Abs( 898.149475097656-X)+Abs( 902.87353515625-X)))

Y=Y/Y1

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

Выход на главную страницу http://stob2.narod.ru

Можно еще посмотреть информацию на http://zhurnal.lib.ru/editors/b/below_a_m/.

Rambler's Top100