Вторая конференция "Свободное програмное обеспечение в высшей школе" (27-28 января 2007)

Использование Octave и Scilab для решения задач моделирования

Кривенко Ольга Викторовна, Чичкарев Евгений Анатольевич

Приазовский государственный университет
Представлен опыт использования свободного ПО в учебном процессе при проведении лабораторных занятий по различным курсам, связанным с математическим моделированием и ТАУ, а также курсового и дипломного проектирования. Приведены результаты разработки и тестирования пакетов расширения Octave и Scilab для решения уравнений математической физики методами конечных разностей или линий.

Скриптовые языки для решения вычислительных задач

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

По существу, язык 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 нашли применение и в научных исследованиях для оптимизации ряда металлургических технологий - режимов вторичного охлаждения непрерывнолитых слябов, кинетики плавления порошковой проволоки в жидком металле и т.п. Предполагается дальнейшее развитие разработки с использованием метода конечных элементов.
Программа конференции