![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Применение объектно-ориентированного программирования в параметрическом анализе структур Тьюринга |
Болтенков Степан Анатольевич, Сибирский федеральный университет (СФУ) Введение При проведении параметрического анализа структуры Тьюринга наиболее трудоемким является выведение параметрических зависимостей, на основании которых делается заключение об устойчивости решений исследуемой модели. Значительные усилия затрачиваются на вывод необходимых формул, имеющих сложный вид. Не каждая модель позволяет произвести необходимые аналитические преобразования для нахождений тех или иных зависимостей. Соответственно, приходится искать различные численные алгоритмы, которые позволят сделать необходимые вычисления. Такой подход приводит к огромным трудозатратам, а при незначительной модификации первоначальной модели заставляет заново проводить аналитические выкладки, что еще больше отдаляет исследователя от получения нужного ему результата. В связи с этим, возникает необходимость выработки принципиально иного подхода в разработке программного обеспечения, необходимого для исследования данной модели. Одним из таких подходов может стать объектно-ориентированный подход (ООП) с концепцией слоев . Концепция слоев (layers) – одна из моделей, используемых разработчиками программного обеспечения для разделения сложных систем на более простые части. Описывая систему в терминах архитектурных слоев, удобно воспринимать составляющие ее подсистемы в виде «слоеного пирога». В данном случае это возможно благодаря значительной формализации параметрического анализа и применению различных численных алгоритмов для каждого шага исследований. В данной работе будет рассмотрена модель одной из химических реакций и на ее примере представлены все пункты применения ООП. Будет проведен сравнительный анализ возможных и известных подходов для решения поставленной задачи. 1. Постановка задачи Для формирования четкого представления о предложенном методе необходимо подробно рассмотреть предметную область, а именно, параметрический анализ структуры Тьюринга . В общем случае под термином структура Тьюринга понимают систему дифференциальных уравнений определенного вида. Для реакции двух веществ с одномерной диффузией система уравнений будет иметь следующий вид : (1) где (2) (3) Начальные данные: . Краевые условия для отрезка (0,l) с непроницаемыми стенками . Дополнительное условие, следующее из предметной области, состоит в том, что концентрация вещества не может превышать 1 или быть отрицательной. (4) В качестве примера рассмотрим реакцию вида: 1. Z↔X1 2. X1 2Z→3Z 3. Z↔X2 которую описывает система дифференциальных уравнений (6) где (7) В данной работе будут описаны только общие положения проведения параметрического анализа. Подробная схема изложена в работах Разделим параметрический анализ на три основных этапа. 1. Нахождение стационарных точек системы 2. Исследование устойчивости стационарных точек 3. Бифуркационный анализ. Нахождение стационарных точек ( далее - ст.с) заключается в поиске решений системы уравнений: (8) Вторым шагом исследования системы (1) является определение характера особых точек и построение параметрических кривых.
При изучении поведения динамической модели (1) обычно недостаточно знать ее характеристики только при одном конкретном значении того или иного параметра, важно иметь представление о характере поведения модели в зависимости от значений параметров, изменяющихся в выбранном диапазоне. В общем случае эта задача связана с решением нелинейных систем с параметрами. В результате чего получаем зависимости: (9) где - это параметры из (2), (3). Последним этапом параметрического анализа является построение бифуркационных кривых: кривой кратности стационарных состояний LΔ: Δ=0 и кривой нейтральности Lσ,: σ=0. Опишем процедуру построения этих кривых. Пусть система (1) имеет однородное по пространству стационарное состояние (,). Исследуем его устойчивость, принимая во внимание, что неподвижными (особыми или стационарными) называются точки, положение которых на фазовом портрете с течением времени не изменяется. Для этого запишем линеаризованную относительно отклонений систему: , (10) Сформируем матрицу Якоби с элементами (11) где (12) Будем искать решение в виде: , (13) при котором характеристическое уравнение примет вид: (14) где (15) (16) Значение x определено ст.с. Устойчивость ст.с. определяется собственными числами матрицы Якоби. Для исследования устойчивости достаточно исследовать знак σ и Δ. Выделим из два параметра p1 и р2 и построим линии LΔ и Lσ в плоскости этих параметров. Граница области множественности LΔ определяется, как решение системы уравнений: H(x,p1,p2) = 0 Δ(x,p1,p2)=0 Таким образом, кривая краткости стационарных состояний LΔ в плоскости параметров (p1,p2) выписана в параметрическом виде: P2=ξ2(x) P1= ξ1(x, ξ2(x,)), 2. Объектная схема программного обеспечения Общую структуру программного обеспечения можно отразить в виде схемы (Рис №1). Рис. №1. Объектная схема приложения Рассмотрим последовательно все блоки: Модель, Численные алгоритмы, Интерфейс 2.1 Модель Данный блок представляет собой класс, методами которого являются функции (2,3) и два дополнительных метода (15,16). Параметрами класса выступают коэффициенты уравнений (2,3), представленных в виде динамических массивов, а также их предельные значения, полученные из предметной области. В результате, универсальным интерфейсом класса будет являться набор методов и параметров, которые инкапсулируют все необходимые данные. Приведем пример в синтаксисе языка Pascal. F p = fu c io (X : Poi ) : Real of Objec ; Model = class ( Objec ) vF : F p; vG : F p; vSigmaF : F p; vDel aF : F p; co s ruc or Crea e; procedure AddK(pK,pKmi ,pKmax : Real; Ks : Shor S ri g); fu c io Ge K(pI : i eger) : K; procedure Se K(pI : i eger; pK : K); fu c io KCou : i eger; fu c io Ge KParam(pI : i eger; pX : Real) : Real; procedure Ge KFSigma(pI,pJ : i eger; pX: Real; var pK,pS : Real); procedure Ge KFDel a(pI,pJ : i eger; pX: Real; var pK,pS : Real); Из выше приведенного примера можно видеть, что в интерфейсе класса Model отражены все необходимые методы для решения поставленной задачи (Таблица №1).
Метод класса Model Пояснение Ge KParam Функция предназначенная для проведение параметрического анализа и построения зависимостей по формуле (9) Ge KFSigma Процедура предназначена для получения параметрических зависимостей кривой нейтральности (Lσ) кратности относительно двух параметров Ge KFDel a Процедура предназначена для получения параметрических зависимостей кривой кратности (LΔ) относительно двух параметров. Таблица №1. Основные методы класса Model Остальные методы и параметры класса Model предназначены для задания начальных условий и взаимодействия с внешними классами. 2.2 Численные методы Для каждого шага исследования необходимо применять свой метод расчетов, однако, ООП позволяет создать ряд основных вычислительных механизмов, с помощью которых можно численно рассчитать все необходимые уравнения. Стоит отметить, что каждый из рассматриваемых методов представляет собой набор численных алгоритмов не привязанных к конкретной функции. Таким образом любой метод можно представить в виде метода некоторого общего класса. Входными параметрами данного метода будут являться функции, выше они описаны в виде класса F p, и переменные которые следует получить. Рассмотрим численные методы по каждой стадии параметрического анализа. 2.2.1 Нахождение стационарных точек системы В этом случае достаточно применение метода последовательных разбиений на отрезки. Условие (4) позволяет взять достаточно малый шаг h от которого и зависит точность решения. 2.2.2 Исследование устойчивости стационарных точек Задачу по исследованию стационарных точек необходимо разбить на три стадии. На первой стадии выясняется условие вхождения исследуемого параметра в систему. Для большей наглядности рассмотрим данный этап на примере построения параметра из (7). Благодаря тому, что параметр входит лишь в одно уравнение системы (7), мы можем получить значения x1 x2 из второго уравнения методом дихотомии, с высокой степенью точности. Подставляя, таким образом, x1 x2 в функцию F и повторно применяя метод дихотомии, но уже для мы получим искомую зависимость. Необходимо отметить, что условия вхождения параметра только в одно уравнение справедливо и для других систем поскольку вытекает из методики построения данных уравнений. В случае применения указанного алгоритма для систем уравнений, полученных из иной предметной области или же при рассмотрении структур Тьюринга для трех переменных, где такое условие уже не действует, следует применять иные вычислительные алгоритмы, например, рассмотренный ранее метод последовательного разбиения на отрезки. 2.2.3 Бифуркационный анализ Для бифуркационного анализа рассмотрим методику построения кривой нейтральности, используя систему уравнений (7). Для примера возьмем зависимость: . (17) В этом случае уравнение (17) имеет нелинейный вид относительно своих переменных и единственный метод нахождения корней – это метод последовательного разбиения на отрезки по параметру . В результате, чего мы получаем искомую кривую. 2.3 Интерфейс Интерфейс программного обеспечения представляет собой набор классов с методами предназначенными для отображения информации полученной на предыдущих этапах.
После этого вызывается функция m_pListBox->DrawItem, которой передается адрес заполненной структуры DrawItemStruct. Результатом всех этих действий является то, что элемент "список" рисует одну из своих строк в окне подсказки. Очень умно! Вот в чем преимущество объектно-ориентированного программирования и хорошо продуманных интерфейсов. Элемент управления "список" не знает – или не хочет знать – где он рисует строку, он знает только, как ее нужно рисовать. CTitleTip не умеет рисовать строку списка с пользовательской отрисовкой, но он знает как инициализировать DrawItemStruct и вызвать CListBox::DrawItem. С другой стороны, если родительский список является обычным элементом "список", класс CTitleTip рисует все сам. К счастью, это не так сложно. Функция отрисовки получает нужный текст и шрифт от родительского элемента "список", устанавливает контекст устройства, заполняет фон и рисует текст. Класс CTitleTipListBox отвечает за управление элементом TitleTip (см. рис.12). В переменной CTitleTipListBox::m_LastMouseMovePoint хранится последняя позиция курсора мыши
2. Решение дифференциальных уравнений 1 порядка методом Эйлера
3. Разработка программного обеспечения решения нелинейных уравнений
4. Краткие сведения о электронных таблицах. Решение уравнения
5. Решение смешанной задачи для уравнения гиперболического типа методом сеток
9. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЯТИТОЧЕЧНЫМ МЕТОДОМ АДАМСА – БАШФОРТА
10. Решение уравнений, систем уравнений, неравенств графически
11. Построение решения задачи Гурса для телеграфного уравнения методом Римана
12. Решение уравнений в целых числах
13. Уравнение Кортевега - де Фриса, солитон, уединенная волна
14. Механические колебания в дифференциальных уравнениях
16. Приближённые методы решения алгебраического уравнения
17. Составление и решение нестандартных уравнений графоаналитическим методом
18. Вычисление корней нелинейного уравнения
19. Определение точного коэффициента электропроводности из точного решения кинетического уравнения
20. Кинетическое уравнение Больцмана
21. Система уравнений Максвелла в сплошной среде. Граничные условия
25. Роль теории дифференциальных уравнений в современной математике и ее приложениях
26. Решение систем дифференциальных уравнений методом Рунге - Кутты 4 порядка
27. Применение графиков в решении уравнений
28. Уравнения и способы их решения
29. Решение смешанной задачи для уравнения
31. Дифференциальные уравнения
32. Интегрирование линейного дифференциального уравнения с помощью степенных рядов
33. Методы решения уравнений в странах древнего мира
34. Об алгебраических уравнениях высших степеней
35. Построение приближенного решения нелинейного уравнения методом Ван-дер-Поля
36. Приближенное решение уравнений
37. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЯТИТОЧЕЧНЫМ МЕТОДОМ АДАМСА – БАШФОРТА
42. Численное решение модельного уравнения диссипации, конвекции и кинетики
43. Новое уравнение теплопроводности
44. Задача на собственные значения для вырождающегося уравнения смешанного типа
45. Решение уравнений, неравенств, систем с параметром (алгебра и начала анализа)
46. Применение производной и интеграла для решения уравнений и неравенств
47. Иррациональные уравнения и неравенства
48. Применение свойств функций для решения уравнений
50. Уравнение Дирака
51. Экзаменационные билеты по предмету: Уравнения математической физики за весенний семестр 2001 года
52. Самостоятельная работа как средство обучения решению уравнений в 5-9 классах
53. Определение скорости точки по заданным уравнениям ее движения
57. Метод квадратных сеток в ботанических исследованиях Калининградской области
58. Разработка программированных средств с помощью VBA
59. Решение экономических задач с помощью VBA
60. Решение нелинейных уравнений
61. Применение графиков в решении уравнений
62. Численный расчет дифференциальных уравнений
63. Приближенное вычисление корней в уравнения
64. Дифференциальные уравнения I и II порядка
65. Приближённые методы решения алгебраического уравнения
66. Неопределённые уравнения первой степени
67. Механические колебания в дифференциальных уравнениях
68. Системы 2-х, 3-х линейных уравнений, правило Крамера
69. Частные случаи дифференциальных уравнений
76. Access і Visual basic for Application. Excel VBA: прийоми програмування
77. Вывод уравнения Лапласа. Плоские задачи теории фильтрации
78. Бази даних в Excel, Access з викликами на VBA
79. Итерационные методы решения нелинейных уравнений
80. Нахождение корней уравнений различными методами
81. Нахождение корней уравнения методом простой итерации (ЛИСП-реализация)
82. Поиск решений системы линейных уравнений методом Гаусса
83. Програмування алгоритмічною мовою VBA
84. Разностные схемы для уравнения переноса на неравномерных сетках
89. Решение обыкновенных дифференциальных уравнений
90. Решение систем нелинейных алгебраических уравнений методом Ньютона
91. Решение системы линейных уравнений
92. Решение уравнений средствами Excel
96. Зонная модель твердого тела. Уравнение Шредингера для кристалла
100. Аналитические свойства решений системы двух дифференциальных уравнений третьего порядка