Skip to content

VladZg/Differentiator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

891 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Дифференциатор

Описание

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

  • Упрощение исходной функции: подставление математических констант, выполнение внутренних арифметических операций
  • Рассчёт значения функции в точке
  • Исследование как функции многих переменных (выполняется, если переменных несколько):
    • Формульное и численной (в точке) нахождение всех первых частных производных
    • Формульное и численное (в точке) нахождение полной производной
  • Исследование выражения как функции одной переменной (первой из заданных):
    • Формульное и численное (в точке) нахождение первой и n-й производной
    • Разложение функции по формуле Маклорена до k-того порядка в точке
    • Построение графика функции
    • Исследование графика функции в точке:
      • Нахождение уравнения нормали и её построение
      • Нахождение уравнения касательной и её построение

Программа поддерживает математические константы, заданные в файле ./Include/ConstsTable.h, по умолчанию это:

 "./Include/ConstsTable.h"
 //=========================================================//
    DEF_CONST(e,     2.718281828)   // <-- число e
    DEF_CONST(pi,    3.141592654)   // <-- число pi
    DEF_CONST(AbObA, 1337.22869)    // <-- авторская константа

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

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

    +
    -
    *
    /
    ^
    exp()
    sqrt()
    log()
    ln()
    sin()
    cos()
    tg()
    ctg()
    sh()
    ch()
    arcsin()
    arccos()
    arctg()
    arcctg()

Настройка и сборка проекта

Клонируйте репозиторий проекта в рабочий каталог командой git clone <repo-url> <repo-name> и перейдите в его папку командой cd ./<repo-name>.

Задайте (если необходимо) настройки в файле ./Config.h, раскомментировав/закомментировав нужные строки. По умолчанию он выглядит так:

 "./Config.h"
 //======================================================================================================================================//
    #define NLOGGING                // OPTION: logging                          <-- Отключение логирование в файл ./Log/Log.txt
    #define NOPEN_DUMPS             // OPTION: auto-opening html tree dumps     <-- Отключение автоматического открытия распечаток дереева выражения
    #define NDEBUG                  // OPTION: debugging mode                   <-- Отключение режима отладки
    #define TEX_PAGE_AUTORESIZE     // OPTION: auto-resizing tex page           <-- Автоформатирование выходного файла по размеру выражений
    // #define N_OPEN_RES_PDF       // OPTION: auto-opening resulting pdf file  <-- Отключение автоматического открытия итогового файла-статьи

Для компиляции запустите make в корневой папке репозитория. При изменении настроек config-файла необходима перекомпиляция проекта при помощи той же команды.

Ввод данных

Для ввода данных для исследования предназначен файл Expression.txt, по умолчанию он уже заполнен данными для некоторого выражения. Его структура и формат данных следующие:

 "./Expression.txt"
//===============================================================================================================================//
    sin(4*y)*e^x                    <-- исследуемое выражение в заданном формате
                                    <-- пустая строка
    x = 9                           <-- список переменных в столбик в формате: <имя> = <значение> (ограничение - 10 переменных)
    y = 17.8                        <-- у переменных с дробным значением десятичная часть отделяется точкой
                                    <-- пустая строка
    n_differentiate   = 2           <-- порядок n-й производной функции одной переменной
    Makloren_accuracy = 3           <-- порядок разложения функции одной переменной по формуле Маклорена
    tangent_point     = 0           <-- точка, в которой строятся касательная и нормаль к графику функции
    delta_coverage    = 0.5         <-- дельта-окрестность точки tangent_point, в которой отображается график касательной и нормали
    graph_diapasone   = [-2:2]      <-- область построения графика по оси переменной в заданном формате: [a:b]

Формат выражения:

  • Все операции явно записаны (8x = 8*x)
  • Приоритет операций определён как в математике
  • Дополнительные приоритеты операций расставляются при помощи круглых скобок (, )
  • Все функции обязательно содержат круглые скобки (функция(аргумент))

Запуск

Запустите скомпилированный проект командой make explore, при этом текстовый вывод программы будет перенаправлен в файл ./Log/Out.txt для удобства.

Вывод программы

Результатом работы программы является файл TexExpression.pdf, который должен появиться в корневой папке проекта после его запуска, он и содержит проведённое с выражением исследование.

About

App on C that explores math functions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published