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

Вид материалаДокументы

Содержание


1 Постановка задачи 1.1Цели
1.2Методы и инструменты
XML-ориентированный язык MathML
3Язык описания вычислительных моделей
3.1Теоретическая модель
3.2Язык описания численных методов
3.2.1Методы решения алгебраических уравнений
3.2.1.1Метод Гаусса
Xml:link cdata #fixed "simple"
Пример xml-кода, описывающего метод Гаусса
3.2.1.2Итерационные методы
Пример xml-кода, описывающего метод простых итераций
3.2.1.3 Стопперы итерационных методов
3.2.2Методы решения обыкновенных дифференциальных уравнений
3.2.2.2Методы типа Рунге-Кутты
Пример xml-кода, описывающего метод Рунге-Кутты
3.3Параметры модели и их связь с численными методами
3.4Расширение возможностей MathML
3.4.2Вспомогательные теги
4Реализация языка и полученные результаты
...
Полное содержание
Подобный материал:
  1   2   3   4   5   6   7

Разработка XML-ориентированного языка описания
вычислительных моделей (на базе алгебраических
и обыкновенных дифференциальных уравнений)




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

1.1 Цели 4

1.2 Методы и инструменты 5

2 Обзор 6

3 Язык описания вычислительных моделей 7

3.1 Теоретическая модель 7

3.2 Язык описания численных методов 9

3.2.1 Методы решения алгебраических уравнений 10

3.2.1.1 Метод Гаусса 10

3.2.1.2 Итерационные методы 12

3.2.1.3 Стопперы итерационных методов 15

3.2.2 Методы решения обыкновенных дифференциальных уравнений 16

3.2.2.1 Методы, не имеющие параметров 16

3.2.2.2 Методы типа Рунге-Кутты 16

3.3 Параметры модели и их связь с численными методами 18

3.4 Расширение возможностей MathML 20

3.4.1 Новые типы данных 20

3.4.2 Вспомогательные теги 21

4 Реализация языка и полученные результаты 23

4.1 Описание структуры системы моделей, состоящих из алгебраических уравнений, и взаимосвязи параметров внутри неё на примере модели сердца 23

4.1.1 Теоретическая модель 23

4.1.2 Вычислительная модель 28

4.2 Описание модели, состоящей из дифференциальных уравнений, решаемых методами Рунге-Кутты, на примере ”модели экскаватора” 32

4.2.1 Общая структура и системы уравнений модели 33

4.2.2 Численный метод, решающий систему уравнений модели 34

4.2.3 Параметры модели 36

5 Заключение 38



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




1.1Цели


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


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

Для решения этой проблемы, необходимо выполнение одного из следующих условий.

Во-первых, реализация может быть основана на каком-либо стандартном математическом пакете или пакете для моделирования (MathCAD, MATLAB и пр.). Таким образом, можно было бы выделить описание вычислительной модели в отдельный модуль с чётко выраженным интерфейсом и повторно использовать этот модуль по мере надобности. Однако, часто математические пакеты — это средства достаточно низкого уровня, чтобы интерфейс упомянутого модуля был стандартизован. Кроме того, пока не существует стандартного единого языка описания математических алгоритмов (и, тем более, языка описания математических моделей), который понимался бы всеми математическими пакетами. Очевидно, что ни один язык, встроенный в конкретный коммерческий программный продукт, на роль стандартного унифицированного языка претендовать не может.

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


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

UML

XML

Мат. пакеты





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

Данная работа представляет собой как раз такое исследование, хотя она не покрывает и не может покрыть все выявленные ранее проблемы. Более конкретной целью этой работы является создание XML-ориентированного языка описания вычислительных моделей, состоящих из систем алгебраических или дифференциальных уравнений и численных методов, решающих эти системы. Назовём этот язык Simulation Markup Language (SimulML). Возможно, SimulML будет являться прослойкой между представлением о вычислительных моделях на семантическом уровне и программной реализацией этих моделей.

1.2Методы и инструменты



Как уже упоминалось, для решения поставленных задач мы будем использовать расширяемый язык разметки XML (Extensible Markup Language). XML является подмножеством стандартного обобщенного языка разметки SGML (Standard Generalized Markup Language) и ориентирован не только на представление содержание текстовых документов (как, например, HTML), но и на хранение структуры документа, что делает XML мощным и гибким инструментом для проектирования информационных систем.


Для описания математических выражений будет использоваться XML-ориентированный язык MathML (Mathematical Markup Language). MathML создавался для унифицированного наглядного представления в текстовом формате математических формул. Предполагалось также, что MathML будет описывать логику и смысл математических выражений, но с этой задачей данный язык не справляется. Допустим, на MathML нельзя нормальным образом показать, что данный набор уравнений является системой и совокупностью. Отсутствуют также возможности циклических построений математических элементов (допустим, представление нескольких уравнений, заданных одной формулой по циклическому принципу) и описание логической последовательности расчётов. К тому же следует заметить, что MathML описывает только одну из трех составляющих современной вычислительной модели: формулы и уравнения, но не структуру модели и не рассчитывающие ее численные методы. Тем не менее, MathML широко применяется для обмена формул между математическими пакетами. Для систем моделирования такого языка не существует, и данная работа ставит целью его создание.