Опубликован: 18.05.2011 | Доступ: свободный | Студентов: 964 / 104 | Оценка: 4.40 / 4.20 | Длительность: 12:30:00
Лекция 1:

Введение

Лекция 1 || Лекция 2 >

Настоящий курс, посвящен объектно-ориентированному изложению современных численных методов на языке C# . Идея данного курса состоит в том, чтобы показать мощность объектно-ориентированного подхода при программировании задач научного программирования. Численные методы представляют собой классическую область для применения вычислительной техники. До появления первых вычислительных средств теория численных методов обгоняла вычислительные возможности, однако со стремительной эволюцией компьютеров и быстрым развитием технологий программирования ситуация поменялась. Начиная с некоторых пор уже вычислительные возможности обгоняют теоретические успехи численных методов. Конечно, при проведении промышленных расчетов, как правило, применяются самые современные технологии, однако учебники по численным методам часто передают дух предыдущей эпохи. Более того, во многих классических учебниках вопросам программирования численных методов вообще не уделяется места. Понимаю важность изложения теории численных методов, нельзя не признать, что вопросы реализации численных методов являются отнюдь не техническими. Настоящий курс ставит своей целью показать, как используя современный язык программирования C# и объектно-ориентированный подход можно реализовать некоторые наиболее часто используемые численные методы.

Необходимо отметить, что данный курс не является учебником по численным методам - мы не рассматриваем достаточное многообразие вычислительных методов и совсем не приводим никаких доказательств. Также наш курс не является и пособием по программированию на C# . В данном курсе мы рассматриваем реализацию на C# с использованием объектно-ориентированный подхода некоторых численных методов для решения различных задач. Практически каждая тема излагается по следующей схеме - сначала идет сжатое теоретическое изложение данной темы, потом приводятся примеры для конкретных постановок вычислительных задач. После теоретического изложения мы переходим к практической реализации. Как правило, реализация начинается с построения абстрактных классов, а потом их реализация для конкретных проблем. Обязательно приведенные листинги заканчиваются вычислительными экспериментами, которые должны продемонстрировать теоретические выкладки. В нашем курсе мы хотим дать возможность "потрогать" с помощью программирования те или иные понятия математики. Темы, которые мы затрагиваем довольно широки: конструктивные действительные числа, функциональные пространства (метрические, банаховы, гильбертовы), операторные уравнения, дифференциальные уравнения, управляемые системы, динамические системы, теория игр, агентное моделирование и др. Последняя лекция несколько выбивается из общего стиля изложения. В этой лекции мы приводим результаты одного из реального вычислительного эксперимента по моделированию волн убийц в Мировом океане. Этой демонстрационной лекцией мы хотим показать как проходят настоящие масштабные вычислительные эксперименты.

Для понимания данного курса необходимы следующие базовые знания. Во-первых, основы программирования на языке C# . Предполагается, что слушатель знает о базовых конструкциях этого языка. Используемые конструкции объектно-ориентированного программирования мы подробно рассматриваем. Во-вторых, от предполагается, что слушатель владеет математикой в объеме первых двух курсов технических университетов. Необходимо знать основы математического анализа, линейной алгебры, основы обыкновенных дифференциальных уравнений. Знания из функционального анализа не предполагаются - все необходимые понятия мы вводим по ходу текста. Также не требуется предварительных знаний в теории алгоритмов, в теории управления, динамических систем, теории игр и т.д. Правда, как уже отмечалось, в последней версии мы используем сложные понятия дифференциальных уравнений в частных производных и теории нелинейных волн, для понимания которых необходимы специальные знания. Однако эта демонстрационная лекция и ее можно воспринимать "как узор".

Благодарности. Идея данного курса многократно обсуждалась с моим другом - доцентом, кандидатом физ.-мат. наук Дмитрием Сошниковым, которому автор выражает искреннюю благодарность. Я выражаю благодарность коллективам лаборатории нелинейных волновых процессов Института океанологии им. П.П.Ширшова РАН и кафедры дифференциальных уравнений и математической физики Российского университета дружбы народов, сотрудником которых я являюсь. Также я благодарен своим студентам, которым я читаю лекции, и чья активная позиция на лекциях помогла улучшить данный курс.

Лекция 1 || Лекция 2 >