В вычислительной математике

Вид материалаРеферат
3.Объектно-ориентированные численные методы 3.1.Постановка задачи и обзор существующих работ
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   15

2.4.Резюме


В данной главе рассмотрены проблемы математического и имитационного моделирования, которые, как показано, целесообразно решать на основе объектно-ориентированного представления структуры моделей. Путём анализа подходов, принятых в существующих объектных средствах моделирования, выбрана оптимальная трактовка понятия объекта – элемента вычислительных моделей. Эта трактовка позволяет быстро создавать, легко развивать и наглядно представлять не только сами модели, но и методы расчёта, на которых эти модели основаны. Предложенный общий подход проиллюстрирован на примере объектно-ориентированной структуры конкретной модели организма человека. Данная глава является подготовительной по отношению к главе 3 и не претендует на большую научную новизну, лишь уточняя понятия и методики, имеющиеся в литературных источниках и существующих средствах имитационного моделирования.

3.Объектно-ориентированные численные методы

3.1.Постановка задачи и обзор существующих работ


Конечно, математические свойства численных методов не зависят от способа их реализации, и поэтому предметом данной главы отнюдь не является улучшение этих свойств путём их программирования на объектно-ориентированном (а не на процедурном) языке. Объектно-ориентированный подход в вычислительной математике нужен не столько сам по себе, сколько ради применения сложных численных методов к имитационным моделям, необходимость чего детально описана в разделе 2.1.1. Вычислительные алгоритмы на объектно-ориентированной основе являются более гибкими, пригодными к визуальной разработке и повторному использованию в рамках некоторой библиотеки. Эти достоинства, которые свойственны имитационному подходу к моделированию, ориентированному на наглядность и простоту развития моделей, были обсуждены в главе 2. Ниже обсуждается другое, менее очевидное, преимущество ООП – удобство моделирования систем, которые сложны не в имитационном, а в математическом смысле.

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

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

Безусловно, за рубежом существует большое количество работ по анализу применимости объектно-ориентированных языков программирования к решению вычислительных задач [5,5,5]. Основной упор в этих работах делается на преодоление проблемы понижения скорости арифметических операций над большими массивами данных (векторами, матрицами) при использовании таких языков. Другими словами, речь идёт об универсальных рекомендациях вычислителям по эффективному программированию стандартных для процедурных языков конструкций на объектных языках. В частности, в [5] рассматриваются проблемы объектного представления матрицы (вектора), сплошной адресации элементов матриц, разделения данных между матрицей и её подматрицами, уменьшения числа вызовов конструкторов этих объектов. Во многих работах, например, в [5] приводятся результаты сравнения производительности объектных и процедурных языков, и обосновывается выбор наиболее производительных компиляторов. От объектно-ориентированного подхода в таких работах остаётся очень мало; наоборот, целью авторов является приблизить свойства объектно-ориентированных языков к процедурным (процедурные сложно использовать в задачах, связанных, например, с пользовательским интерфейсом). В частности, не делается попыток отказаться от матричного представления данных многих численных методов. Поэтому сами алгоритмы численных методов остаются неизменными, и научных работ по их объектной трактовке не возникает.

Данная работа не претендует на анализ и оптимизацию производительности низкоуровневых вычислений на объектных языках программирования; в ней исследуются способы использования преимуществ объектов на значительно более высоком уровне. Прежде всего, такие преимущества появляются за счёт отказа от матричного представления многих математических задач. При этом, конечно, возникают проблемы реализации многих численных методов (своих для каждой задачи), основанных на таком представлении. Именно на поиск конкретных вычислительных алгоритмов и направлена данная работа, – в отличие от большинства работ по объектно-ориентированным вычислениям, которые рассматривают лишь языковые конструкции, общие для многих алгоритмов.

Естественным приложением научных работ данной тематики (в том числе и настоящей работы) является создание «объектно-ориентированных вычислительных библиотек». Несмотря на то, что их создано очень много, большинство предназначено для решения задач линейной алгебры, вычисления сложных функций и решения недифференциальных уравнений. Более сложные задачи, как обосновывается в [5], должны решаться самостоятельно пользователями этих базовых алгебраических библиотек. В данной работе предлагается иная концепция объектно-ориентированной библиотеки (см. 3.4).