Система построения и анализа графиков функций




Скачать 90.71 Kb.
Название Система построения и анализа графиков функций
Дата публикации 30.05.2014
Размер 90.71 Kb.
Тип Реферат
literature-edu.ru > Математика > Реферат


V городская конференция учащихся по научно-техническому творчеству

Секция «Программирование»

Система построения и анализа графиков функций
Автор:
Куренков Михаил,
ученик 11 класса,
МОУ ДОД ЦТТ «Интеграл»
Научный руководитель:
Цыганов Александр
ПДО информатики
МОУ ДОД ЦТТ «Интеграл»
Самара, 2010

Содержание

Введение 4

1 Постановка задачи 5

2 Реализация 7

Заключение 14

Список литературы 15


Введение


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

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

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


1 Постановка задачи


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

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

Основные функции, требуемые от редактора:

  • задание списка графиков в виде текста формул;

  • удобное масштабирование графиков;

  • отображение значений в выбранных точках графиков;

  • поиск особых точек;

  • печать полученных графиков;

  • сохранение и загрузка списка формул.

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

2 Реализация


Программа разработана на языке С# под платформу .NET в среде Microsoft Visual Studio 2008 Express. Выбор языка и платформы обусловлен как удобством разработки интерфейса приложений, так и эффективностью параллельных вычислений.

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

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

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

  • масштабируемость для разного разрешения (DPI);

  • настраиваемый внешний вид с помощью шаблонов и стилей;

  • ипользование аппаратного ускорения видеокарты для отрисовки;

  • разделение дизайна и программного кода с помощью языка XAML;

  • совместимость с приложениями на WindowsForms.

2.1 Визуализация графика


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



Рисунок 1 – пример внешнего вида
компонента визуализации графиков

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

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

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

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

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



Рисунок 2 – график функции с разрывом

2.2 Интерфейс редактора


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



Рисунок 3 – окно редактора

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

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

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

2.3 Вычисление значений функции


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

  • приведение текста функции к стандартному виду;

  • лексическое разбиение текста функции;

  • преобразование порядка операций из инфиксной формы в постфиксную;

  • вычисление выражения в постфиксной форме.

Приведение к стандартному виду означает удаление лишних пробелов, явную расстановку знаков умножения и замену унарного минуса умножением на -1. Например, формула –(25х + 8) (3 – 5х) преобразуется в –1*(25*х+8)*(3–5*х). Лексическое разбиение разделяет элементарные части формулы, тоесть числа, знаки операций, скобки, переменные и функции. Приведенная в качестве примера формула примет вид: –1,*,(,25,*,х,+,8,),*,(,3,–,5,*,х,). Отдельные фрагменты формулы сохраняются в массиве.

Постфиксная форма подразумевает такой порядок следования операторов и операндов, в котором оператор всегда находится после своих операндов, тогда как в привычной нам инфиксной форме оператор находится между операндами. Инфиксная форма удобнее для восприятия человеком, а постфиксная для вычислений. Преобразование рассмотренной в примере формулы изменит порядок ее элементов следующим образом: –1,25,х,*,8,+,*,3,5,х,*,-,*.

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

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

2.4 Нахождение разрывов


Для исследования функций на разрывы с помощью вычислительной техники можно применить различные методы. Начиная от анализа численных значений рассчитываемой функции и до анализа диапазона допустимых значений аргумента функции аналитически. Для аналитического определения разрывов необходимо руководствуясь свойствами определенных операторов и функций решить уравнение или неравенство относительно их параметров. В качестве примера рассмотрим слудующую функцию: f(x) = ln(x + 2) / (x8 – 3x3 + 2). У этой функции в числителе находится натуральный логорифм, аргумент которого должен быть строго больше нуля. Соответственно для нахождения недопустимых значений необходимо решить неравенство x + 2 ≤ 0. Сама f(x) содержит дробь, знаменатель которой не должен принимать нулевого значения. Для нахождения такого значения аргумента, при котором функция будет иметь точку разрыва нужно решить уравнение x8 – 3x3 + 2 = 0.

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

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

Заключение


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

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

Список литературы


  1. Ф. А. Новиков. «Дискретная математика для программистов». – СПб.: Питер, 2004.

  2. Э. Троелсен. C# и платформа .NET – СПб.: Питер, 2006.

  3. Мэтью Мак-Дональд. WPF: Windows Presentation Foundation в .NET 3.5 с примерами на C# 2008 для профессионалов. – М.: Вильямс, 2008.

  4. Вирт Н. Алгоритмы и структуры данных. – М.: Мир, 1989.




Добавить документ в свой блог или на сайт

Похожие:

Система построения и анализа графиков функций icon Программа государственного экзамена по математике для студентов специальности...
Предел и непрерывность функций. Свойства непрерывных функций на компактном множестве
Система построения и анализа графиков функций icon Рабочая программа дисциплины «компьютерные модели финансового и инвестиционного анализа»
Целью изучения дисциплины является формирование у обучающихся теоретических знаний и практических навыков построения систем эффективного...
Система построения и анализа графиков функций icon Рабочая программа дисциплины «компьютерные модели финансового и инвестиционного анализа»
Целью изучения дисциплины является формирование у слушателей теоретических знаний и практических навыков построения систем эффективного...
Система построения и анализа графиков функций icon I. Обоснование необходимости разработки программы Задача школы предоставление...
Их выполнение позволяет объективно оценить уровень достижений выпускников а так же реализовать такой ключевой принцип построения...
Система построения и анализа графиков функций icon Ю. А. Урманцев общая теория систем: состояние
Вывод и определение понятия «система объектов одного и того же рода». Закон системности. Алгоритм построения системы объектов данного...
Система построения и анализа графиков функций icon Система тестирования «Классификация и анализ опечаток» Пояснительная...
Результатом данной расчетно-графической работы является программный продукт, состоящий из двух частей: системы тестирования и оболочки...
Система построения и анализа графиков функций icon Программа курса теория аргументации по направлению подготовки 032700 «Филология»
Представить аргументацию как феномен, объединяющий не только собственно логический, но и фактуальный, риторический, этический и аксиологический...
Система построения и анализа графиков функций icon Программа курса введение в теорию аргументации по направлению подготовки 032700 «Филология»
Представить аргументацию как феномен, объединяющий не только собственно логический, но и фактуальный, риторический, этический и аксиологический...
Система построения и анализа графиков функций icon Литература: [1]. А. Н. Колмогоров, С. В. Фомин. Элементы теории функций...
Е называется замкнутым. Если E=E', то множество е называется совершенным. Множество [E]=E+E' называется замыканием E. Точка x0 называется...
Система построения и анализа графиков функций icon Рабочая программа. Алгебра и начала анализа
«Алгебра и начала анализа» авторов А. Н. Колмогоров, А. М. Абрамова др. (Программы общеобразовательных учреждений. Алгебра и начала...
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции