Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовой проект

.pdf
Скачиваний:
23
Добавлен:
28.06.2014
Размер:
1.1 Mб
Скачать

МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

ИНСТИТУТ АВТОМАТИКИ И ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ КАФЕДРА ПРИКЛАДНОЙ МАТЕМАТИКИ

Курсовая работа

Язык задания и трансляции математических формул

в графическое представление.

Выполнил студент группы А-13-08 Захаров Антон

Преподаватель

Пашинцев Владимир Дмитриевич

Москва,2011

Содержание.

Введение

2

I.

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

4

 

Определения ключевых понятий

4

 

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

4

 

Описание входных данных

5

 

Описание выходных данных (результатов)

7

II.

Решение

8

 

Обзор существующих решений

8

 

Описание метода решения поставленной задачи

11

 

Разработка веб-приложения

19

III. Отладка и тестирование

20

Заключение

21

Приложения

22

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

27

1

Введение.

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

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

Гипертекстовая разметка статьи, как правило, значительно облегчает чтение публикации с монитора, однако для математических текстов пока не существует более или менее пригодных для этого программных средств. Несмотря на то, что язык HTML5 имеет в своем арсенале поддержку многих математических формул, наиболее распространенные браузеры1, такие как Opera или Internet Explorer, пока не поддерживают вывод математических символов и выражений. Это связано с тем, что в настоящее время отсутствуют какие-либо соглашения об унификации математических шрифтов на компьютере пользователя (точно так же, как отсутствуют соглашения об использовании дополнительных шрифтов на Интернет страницах).

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

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

1 Веб-обозреватель, браузер – программное обеспечение для просмотра веб-сайтов, то есть для запроса веб-страниц (преимущественно из Сети), их обработки, вывода и перехода от одной страницы к другой.

2

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

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

Конечно же, необходимость в создании подобного языка появляется только там, где требуется динамическое создание (отрисовка) математических формул, например, на математических форумах, onlineредакторах и т. п. В остальных случаях, то есть когда состав и содержимое всех формул конкретной Интернет странички известно, сами формулы могут быть созданы в любом offline-редакторе.

3

Часть I.

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

Определения ключевых понятий.

Для начала дадим определения основных понятий, с которыми будем сталкиваться по ходу данной работы.

Математическая формула – принятая в математике (а также физике и прикладных науках) символическая запись законченного логического суждения (определения величины, уравнения, неравенства или тождества).

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

HTML (от англ. HyperText Markup Language – «язык разметки гипертекста») – стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.

Токен – последовательность символов в лексическом анализе, соответствующая лексеме.

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

Для представления математических формул (далее просто формул) в HTML-документах проще всего использовать графические изображения. Обычно, формула конструируется в каком-либо редакторе, а потом её графический растровый «слепок» вставляется в документ в виде изображения. При этом сложность и выразительность нарисованных формул ограничивается только используемым редактором.

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

4

Описание входных данных.

Для полного описания языка задания формул, необходимо разобраться в основных видах и структурах формул. Как правило, в формулу входят переменные (одна или более), причём сама формула представляет собой не просто выражение, а некое суждение. Такое суждение может утверждать чтото о переменных, а может – о применяемых операциях. Точный смысл формулы зачастую подразумевается из контекста и его невозможно понять непосредственно из её вида.

Основные виды формул:

1.Алгебраическое выражение – одна или несколько алгебраических величин (чисел и букв), соединенных между собой знаками алгебраических действий: сложения, вычитания, умножения и деления, а также извлечения корня и возведения в степень и знаками последовательности этих действий (обычно скобками различного вида). Пример:

3 √16 (25 (3 1 ))

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

ax bx c d

3.Тождество – суждение, верное при любых значениях переменных. Обычно, под тождеством подразумевают тождественно верное равенство, хотя снаружи тождества может стоять и неравенство или какое-либо другое отношение. Тождество может и не включать в себя переменные и являться арифметическим (или каким-то ещё) равенством. Пример:

(a b) a 2ab b

4.Приближённое равенство. Пример:

xsin(x) , x 0

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

5

строгие (с использованием знаков , , ) и нестрогие ( , ) неравенства. Пример:

√f(x) √g(x)

6.Булева формула – формула логики высказываний. Может содержать логические переменные и пропозициональные связки: конъюнкцию, дизъюнкцию, отрицание и другие. Пример:

x x x x

7. Формулы теоретико-множественных операций. Пример: *x x x +

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

1.Арифметические и логические операторы.

2.Греческие буквы.

3.Специальные символы.

4.Стрелки.

5.Радикалы.

6.Пределы.

7.Интегралы.

8.Крупные операторы.

9.Множества.

10.Скобки и разделители.

11.Матрицы.

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

Приведём примеры символьной записи формул и их графическое представление:

1.Теорема Пифагора: a^2+b^2=c^2

2.Бином Ньютона:

(x+a)^n = sum{k=0}{n}{ (matrix{2}{1}{n k}) x^{k} a^{n-k} }

( ) ∑ . /

6

3.Предел функции по Коши:

delim{lbrace}{lim{x right x_0}{f(x)} = A}{rbrace}~doubleleftright~delim {lbrace}{forall epsilonvar>0 ~ exists{delta=delta(epsilonvar) ~ forall{x}: ~0<delim{|}{x-x_0}{|}<delta doubleright delim{|}{f(x)-A}{|}< epsilonvar}}{rbrace}

{ li

( )

}

*

0

( ) : 0

( )

+

Описание выходных данных (результатов).

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

1.Формат графического файла – PNG.

2.Размер изображения (в пикселях) соответствует длине математической формулы. Графические элементы равномерно распределены по всему пространству изображения.

3.Отсутствуют наложения графических элементов друг на друга.

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

Например: .

4.Сохранён смысл математической формулы.

5.Отсутствует неоднозначность восприятия формулы.

Примеры графических изображений формулы Стирлинга, найденных на просторах интернета:

7

Часть II.

Решение.

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

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

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

Например, осуществить проверку экзаменационных ответов на ПК невозможно без умения записывать математические выражения на языке, понятном машине.

Рассмотрим основные из существующих подходов к решению данной задачи, их достоинства и недостатки.

Обзор существующих решений.

Язык математической разметки MathML.

Язык гипертекстовой разметки HTML до сих пор является практически единственной технологией для разработки WWW-приложений как основных средств представления данных в Интернет. Одним из первых результатов практического применения XML-технологий было появление языков для описания и представления нового типа данных, нетрадиционных для WWW: MathML (Mathematical Markup Language), CML (Chemical Markup Language), VML (Vector Markup Language), XFDL (Extensible For s Description Language) и

др.

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

Если бы прямое отображение MathML было возможно, то можно было бы создать формулу в любом редакторе, поддерживающем стандарт, затем

8

Рис. 2. Представление формулы для нахождения корней квадратного уравнения в LaTeX.
Рис. 1. Представление формулы для нахождения корней квадратного уравнения в MathML.

вставить в HTML и сразу увидеть результат. Впоследствии формулу будет довольно просто изменить, так как ее исходный код присутствует в самом документе.

Чтобы MathML-формулы отобразились, пользователю нужен браузер Firefox и специальные шрифты, которые каждый пользователь должен загрузить и установить. Страница при этом должна поставляться в формате XML (формулы не работают на обычных HTML-страницах). Пользователи браузера Internet Explorer 6 смогут увидеть корректное отображение MathML формул, установив специальный плагин MathPlayer. Есть также плагины и для

более ранних версий Internet Explorer [2]. Другие популярные браузеры (например, Opera) не покажут того, что ожидалось.

Таким образом, проблемой для широкого внедрения языка MathML в WWW было отсутствие достаточной XML-поддержки в стандартных Интернет-приложениях, главным образом, в популярных web-браузерах.

Макропакет системы компьютерной вёрстки LaTeX.

LaTeX – наиболее популярный набор макрорасширений (или макропакет) системы верстки, ориентированный на производство научных математических документов высокого типографского качества [3].

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

ведение библиографии и др. Кроме базового набора существует множество пакетов расширения LaTeX. Первая версия была выпущена Лесли Лэмпортом в 1 84 году.

Во многих развитых компьютерных аналитических системах, например, Maple, Mathe atica, Maxi a возможен экспорт документов в формат *.tex. Для представления формул в Википедии также используется TeX-нотация.

9

Соседние файлы в предмете Основы построения трансляторов