Разработка обучающей программы по теме "Обыкновенные дифференциальные уравнения"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?ые для анализа.

В ходе изучения темы Обыкновенные ДУ студенты знакомятся с типами дифференциальных уравнений, приведенными в Приложении A. В этой приложении, выделяются 6 основных типов (4 первого порядка и 2 второго), 5 различных подтипов (с разделяющимися переменными, не содержащие явно переменную x, не содержащие явно переменную y, ЛОДУ, ЛНДУ), 2 характеристики линейных ДУ второго порядка (с постоянными и непостоянными коэффициентами) и два специальных вида правой части ЛНДУ с постоянными коэффициентами.

Для выявления признаков каждого из данных типов были составлены таблицы основных признаков, позволяющих при рекурсивном синтаксическом анализе выявить части, характеризующие принадлежность к введенному ДУ (см. приложения Д, E).

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

а)нулевой уровень соответствует основным теоретическим аспектам;

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

в)второй уровень уточнения содержит признаки отрицания принадлежности ДУ к конкретному типу; наличие данных признаков однозначно говорит о непринадлежности ДУ к типу.

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

Основные признаки, используемые в рекурсивном синтаксическом анализе ДУ первого порядка, указанны в Приложении Д.

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

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

Рассмотрим идею алгоритма, заложенного в методы рекурсивного синтаксического анализа бинарного дерева для определения типа ДУ.

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

-представление исходного выражения на в виде произведения нескольких скобок;

-раскрытие скобок для получения развернутой формы выражения.

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