Вторая конференция "Свободное програмное обеспечение в высшей школе" (27-28 января 2007)
Использование Octave и Scilab для решения задач моделирования
Кривенко Ольга Викторовна, Чичкарев Евгений Анатольевич
Приазовский государственный университет
Представлен опыт использования свободного ПО в учебном процессе при проведении лабораторных
занятий по различным курсам, связанным с математическим моделированием и ТАУ, а также курсового
и дипломного проектирования. Приведены результаты разработки и тестирования пакетов расширения Octave и Scilab для решения уравнений математической физики методами конечных разностей или линий.
Скриптовые языки для решения вычислительных задач
В последнее время широкое развитие получили разнообразные интерпретируемые языки программирования с динамической типизацией.
Скриптовые языки быстро становятся языками общей реализации для многих областей, особенно в областях, где критично время разработки. При этом за счет рациональной технологии программирования и реализации среды исполнения скорость исполнения кода на интерпретируемом языке оказывается вполне сопоставимой с классическими компилируемым языками. Достоинства скриптовых языков:
- Скриптовые языки позволяют разработчикам сцеплять вместе различные пакеты программ, а также согласовывать полученные в результате системы.
- Все чаще скриптовые языки сами по себе используются в качестве полноценных базовых инструментальных платформ. Например, многие крупные коммерческие Интернет-приложения сейчас программируются преимущественно на языках Perl, Python или PHP.
- Естественно, скриптовые языки используются для автоматизации задач системного администрирования.
По существу, язык MatLab и его клоны (SciLab, Octave) также является полноценным скриптовым языком с динамической типизацией, но предназначенным не для создания системных сценариев, а для быстрой разработки вычислительных приложений. Это вполне обоснованный подход, т.к. обычно необходимо получить решение той или иной задачи математического моделирования в сжатые сроки, при этом повторно используемые участки кода представляют собой реализацию стандартных численных методов.
Организация учебного процесса
Учитывая современные тенденции развития языков программирования и средств разработки, вполне естественно и достаточно широкое распространение языков с динамической типизацией в обучении. Наличие мощных встроенных средств
решения вычислительных задач MatLab, SciLab и т.п. позволяет абстрагироваться от технических проблем реализации того или иного метода, сосредоточив внимание на содержательной части курсов, не связанных прямо с численными методами.
В рамках учебного процесса в техническом университете целесообразно обеспечить единство подхода к организации учебного процесса для родственных специальностей, связанных с программированием и автоматизацией. Использование open source - программного обеспечения открывает широкие возможности в этом плане. Например, для обучения основам программирования целесообразно использовать FreePascal, для обучения программированию на C/C++ - MinGW+BloodShed-DevC++. В подобной среде в качестве основного пакета для решения задач моделирования, исследования численных методов, решения задач ТАУ целесообразно использовать пакет SciLab+SciCos. Среда визуального моделирования SciCos предоставляет достаточные возможности для организации практикума по ТАУ, а также по отдельным разделам курсов "Теория систем и математическое моделирование" и т.п.
Однако в составе стандартной установки Octave или SciLab отсутствуют готовые документированные средства решения ДУЧП (в частности, параболических уравнений - теплопроводности и диффузии).
Возможности решения дифференциальных уравнений в частных производных c использованием Octave и SciLab
Современные реализации большинства вычислительных пакетов содержат средства решения уравнений в частных производных (ДУЧП). Однако, в свободно распространяемых пакетах представлены не столько готовые решения, сколько инфраструктура для реализации того или иного метода. В частности, как SciLab, так и Octave содержат встроенные средства работы с разреженными матрицами, в т.ч. возможности LU-декомпозиции и решения СЛАУ c разреженными матрицами. Для решения одномерных по пространственной переменной ДУЧП в SciLab включены достаточно мощные функции решения граничных задач для системы ОДЕ сеточными методами (в SciLab - bvode, dassl; в Octave - метод коллокаций). Кроме того, в состав SciLab последних версий включены и высокоэффективные солверы для решения разреженных СЛАУ, возникающих при решении задач эллиптического типа. Однако использование метода конечных элементов для решения ДУЧП в рамках Octave и SciLab находится на достаточно ранней стадии развития (см. http://www.iecn.u-nancy.fr/~pincon/scilab/scilab.html).
Реализация решения параболических уравнений c использованием Octave и SciLab
В качестве базового пакета для организации практикума, а также курсового и дипломного проектирования был выбран пакет SciLab. Для решения параболических одно- и двумерных по пространству ДУЧП методом сеток разработан простой toolbox, использующий встроенные средства SciLab, который позволяет задавать граничные условия для областей простой формы, а также организовывать интерполяцию сеточных значений и визуализацию решения. Результаты разработки использованы для организации лабораторного практикума по курсу "Идентификация и моделирование объектов автоматизации", а также при курсовом и дипломном проектировании металлургических агрегатов - различных нагревательных колодцев и т.п. Кроме того, решения на базе SciLab нашли применение и в научных исследованиях для оптимизации ряда металлургических технологий - режимов вторичного охлаждения непрерывнолитых слябов, кинетики плавления порошковой проволоки в жидком металле и т.п. Предполагается дальнейшее развитие разработки с использованием метода конечных элементов.
Программа конференции