Ученые записки №19 111 М. Белевич, А. Кокорин применение систем компьютерной алгебры



Скачать 100.42 Kb.

Дата11.04.2017
Размер100.42 Kb.
Просмотров88
Скачиваний0
ТипУченые записки

УЧЕНЫЕ ЗАПИСКИ № 19 111
М. Белевич, А. Кокорин
ПРИМЕНЕНИЕ СИСТЕМ КОМПЬЮТЕРНОЙ АЛГЕБРЫ
В ЗАДАЧАХ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
M. Belevich, A. Kokorin
APPLICATION OF THE COMPUTER ALGEBRA SYSTEMS
IN MATHEMATICAL MODELING
Современное математическое моделирование немыслимо без использования компьютеров. Это, в свою очередь, вызывает развитие специального программно- го обеспечения помимо давно используемых средств: различного уровня алгорит- мических языков и соответствующих компиляторов или интерпретаторов. В работе вкратце рассматриваются основные тенденции развития современных программ- ных комплексов, ориентированных на математическое моделирование. В качестве иллюстрации приводится схема модели волнового пограничного слоя, реализо- ванной в рамках системы компьютерной алгебры Mathematica.
Ключевые слова: системы компьютерной алгебры, системы численного ана- лиза.
Present-day mathematical modeling is inconceivable without computers. This, in its turn, causes the development of the special software besides different algorithmic languages and corresponding compilers. In this paper, the main tendencies of the de- velopment of the contemporary mathematical modeling packages are considered. All this is illustrated with the scheme of the wave boundary layer model which has been written in the framework of the computer algebra system Mathematica.
Keywords: computer algebra system, numerical analysis software.
Введение
Процесс математического моделирования явлений природы для наглядно- сти можно разделить на несколько этапов:
1. Постановка задачи.
2. Разработка и реализация алгоритма.
3. Решение математической задачи.
4. Обработка и интерпретация результатов.
Первый этап включает словесную формулировку проблемы, выбор адек- ватной математической модели, постановку граничных условий, оценку мас- штабов явления и численного значения параметров. На втором этапе произво- дится выбор подходящего метода решения сформулированной математической задачи и способа его реализации. На третьем этапе проводятся основные вы- числения, дающие численное решение поставленной задачи. И, наконец, на по- следнем этапе данные вычислений обрабатываются, визуализируются и интер- претируются в исходных терминах.
С появлением в середине прошлого века компьютеров на них поначалу, легла основная вычислительная работа (третий этап). Все остальное делалось вручную на листе бумаги, миллиметровки или кальки. В настоящее время, осо-

ОКЕАНОЛОГИЯ
112 бенно с появлением персональных компьютеров, ситуация изменилась. Разра- ботаны и продолжают развиваться многочисленные программы, позволяющие использовать компьютер практически на любом шаге исследования. Вместе с тем, наиболее востребованными в научной среде многие годы были и продол- жают оставаться средства разработки компьютерных программ (компиляторы и текстовые редакторы), программы визуализации результатов расчетов или из- мерений и текстовые процессоры.
Почти на каждом из этапов требуется давать оценки и осуществлять выбор.
В результате кристаллизуется формулировка задачи, оттачивается ее постанов- ка, отбрасываются неприемлемые по тем или иным причинам методы решения либо разрабатывается новый и отрабатываются способы представления резуль- татов вычислений и их интерпретация.
На каждом таком шаге решения крупной задачи исследователь сталкивает- ся с необходимостью выполнения ряда сравнительно мелких подзадач, для чего могут привлекаться специальные компьютерные программы. Эти программы должны
• обеспечивать возможность быстрого проведения оценочных вычислений, т.е. играть роль калькулятора;
• уметь выполнять аналитические преобразования выражений (упрощать, дифференцировать, интегрировать и пр.);
• обладать средствами для построения и разработки алгоритмов (иметь встроенный язык программирования);
• давать возможность проведения численных расчетов;
• располагать развитыми графическими средствами.
Подобные программы разрабатываются, начиная с 60-х годов прошлого ве- ка и в настоящее время представлены не одним десятком. Среди программ об- щего назначения исторически сложились два основных направления разрабо- ток. В одном основной упор делается на аналитические преобразования, ариф- метику произвольной точности и т.п. Программы такого типа обычно называ- ются системами компьютерной алгебры (Computer algebra systems или, сокра- щенно, CAS). Другое направление связано преимущественно с вычислениями с плавающей точкой, и потому относятся к программам численного анализа.
Сведения о CAS и системах численного анализа, а также перечни имеющихся программных комплексов и результаты их сопоставления можно найти в анг- лийской версии Wikipedia в статьях “Computer algebra system”, “Comparison of computer algebra systems”, “List of numerical analysis software”, “Comparison of numerical analysis software” и др.
Особенности современных CAS
К настоящему времени разделение программ на указанные два направления стало достаточно условным, поскольку налицо явная тенденция к взаимопро- никновению: системы компьютерной алгебры предоставляют средства для про-

УЧЕНЫЕ ЗАПИСКИ № 19 113 ведения расчетов с плавающей точкой, а системы программ численного анализа обзаводятся подсистемами, позволяющими производить аналитические преоб- разования. Причем, последние обычно являются не самостоятельными разра- ботками, а так или иначе связаны с независимо создававшимися CAS. Среди универсальных программ такого рода наиболее известными и коммерчески ус- пешными стали следующие продукты.
1. Системы численного анализа а. Mathcad, Parametric Technology Corp. [Кирьянов, 2006], www.ptc.com/products/mathcad/ б. MatLab, The MathWorks Inc. [Алексеев, Чеснокова, 2005], www.mathworks.com/
2. Системы компьютерной алгебры а. Maple, Waterloo Maple Inc. [Васильев, 2003], www.maplesoft.com/ б. Mathematica, Wolfram Research Inc. [Дьяконов, 2008; Шмидский,
2004], www.wolfram.com/
Все они прекрасно документированы и снабжены многочисленными при- мерами использования. Существует развитая техническая поддержка клиентов, внушительная библиотека обучающей литературы, а также огромное количест- во доступных написанных пользователями программ, работающих в рамках со- ответствующих систем.
Программа Mathcad привлекает, прежде всего, пользовательским интер- фейсом. Он построен по принципу листа бумаги, на котором исследователь за- писывает свои формулы, их преобразования, несложные расчеты, графики и комментарии. Все это может располагаться почти в произвольном порядке, а формулы представляются в привычном виде, близком к типографскому. Такие особенности программы делают изучение ее и работу с ней простым и интуи- тивно понятным делом. С ее помощью можно быстро провести сравнительно несложные вычисления и взглянуть на таблицы получаемых значений. Есть возможность тут же рядом построить 2D или 3D графики получаемых зависи- мостей и оставить необходимые комментарии. Вычисления проводятся с пла- вающей точкой и, кроме того, можно провести несложные аналитические пре- образования. Например, можно разложить некоторую функцию в ряд Тейлора, продифференцировать ее, вычислить интеграл, упростить выражение и т.п.
Система MatLab строилась, прежде всего, как средство для интенсивных численных расчетов, как интерфейс к широко известным библиотекам про- грамм численного анализа типа LAPACK. В настоящее время она располагает большим набором встроенных функций, развитым языком сверхвысокого уров- ня, мощной подсистемой визуализации, и т.д., что позволяет решать с ее помо- щью весьма сложные задачи.
На официальном сайте компании Waterloo Maple Inc. написано, что Maple является ведущим вычислительным средством в мире. В свою очередь, на сайте компании Wolfram Research Inc. указано, что Mathematica есть наиболее все-

ОКЕАНОЛОГИЯ
114 объемлющее вычислительное приложение в мире. В некотором смысле все это так и есть. Обе системы являются прямыми конкурентами. В первую очередь они разрабатывались как программы для выполнения аналитических преобра- зований и проведения расчетов с произвольной точностью. Они обладают впе- чатляющими наборами встроенных функций, развитыми графическими воз- можностями и средствами выполнения расчетов с плавающей точкой. Каждая располагает интерпретатором языка сверхвысокого уровня, с помощью которо- го можно эффективно реализовывать сложные алгоритмы. Назвать лучшую не представляется возможным. Каждая система имеет многочисленных привер- женцев. При этом нужно иметь в виду, что эти системы не тождественны друг другу: то, что отсутствует, либо неудачно реализовано в одной, может присут- ствовать или быть более эффективно реализовано в другой. Обе программы прекрасно документированы. Существует большое число книг, описывающих работу с ними. Те, что упомянуты в списке литературы, – лишь малая толика.
Наряду с коммерческими программами существует немало свободно рас- пространяемых. Общая тенденция к доступности программного обеспечения, а в ряде случаев желание вдохнуть новую жизнь в не выдерживающие конку- ренции коммерческие продукты приводит к тому, что появляется все большее число программ с лицензией GPL (General Public License) или ей подобными.
Ниже перечислены некоторые из таких программ.
1. Системы численного анализа а. SMath Studio, ru.smath.info/forum/ б. SciLab [Алексеев et al., 2008], www.scilab.org/
2. Системы компьютерной алгебры а. Maxima [Ильина, Силаев, 2007], maxima.sourceforge.net/ б. Reduce [Климов, Руденко, 1989], www.reduce-algebra.com/
По своим возможностям эти программы близки к упомянутым коммерче- ским продуктам и позволяют решать аналогичный круг задач.
Численные и аналитические способности этих программ неоднократно тес- тировались, и результаты можно найти, например, по адресу www.scientificweb.de/ncrunch/. Хороший обзор указанных программ находится на сайте tatalmas.by.ru/kursov1/.
Варианты использования CAS в моделировании
Существуют простые и очевидные варианты использования систем чис- ленного анализа. Во-первых, как уже говорилась, они могут быть использованы как удобные средства для выполнения всевозможных несложных оценочных вычислений и их визуализации. К таким средствам, в первую очередь, относит- ся программа Mathcad или ее бесплатный аналог SMath Studio. Они требуют минимума времени на освоение в объеме, достаточном для проведения осмыс- ленных расчетов и простейшего моделирования.
Другой вариант применения обсуждаемых систем – использование их в ка- честве языков сверхвысокого уровня для реализации алгоритмов решения сис-

УЧЕНЫЕ ЗАПИСКИ № 19 115 тем уравнений моделей и среды для работы написанных на этих языках про- грамм и программных комплексов. Наиболее популярными здесь являются сис- тема MatLab и ей подобные (SciLab, Octave и др.). Системы численного анализа можно рассматривать в одном ряду с такими средствами программирования, как ассемблеры и алгоритмические языки типа fortran, С и т.п. Их задача – осу- ществить связь между компьютером и исследователем, освобождая последнего от действий, мало связанных с предметом исследования.
С появлением ассемблеров и, далее, языков высокого уровня исследователь перестал тратить усилия на рутинные действия по распределению памяти, управлению периферийными устройствами, низкоуровневой организации вы- числений и мог сосредоточиться на разработке алгоритма решения задачи. Сис- темы численного анализа дают возможность сделать следующий шаг в этом на- правлении. Они предоставляют исследователю наборы высококачественных реализаций эффективных алгоритмов и удобные средства для описания разра- ботанных им численных моделей, позволяя сосредоточиться на физике явления.
В этом смысле они являются языками сверхвысокого уровня.
Наконец, наиболее интересным, на наш взгляд, представляется использова- ние в моделировании развитых систем компьютерной алгебры, таких, как
Maple, Mathematica, Reduce, Maxima и т.п. Уступая системам численного анали- за в быстродействии при выполнении вычислений с плавающей точкой, они, однако, позволяют также проводить вычисления с произвольной точностью и, кроме того, являются мощными средствами, выполняющими всевозможные аналитические действия (преобразование выражений, дифференцирование, ин- тегрирование функций, разложение их в ряды, решение уравнений, неравенств и т.д.). Это позволяет использовать их не только при проведении вычислений, но фактически на всех этапах моделирования от формулировки и постановки задачи, выбора алгоритма решения до проведения численных расчетов, обра- ботки и представления результатов, а в ряде случаев, и создания итоговых до- кументов (статьи, отчета и пр.).
Имеющиеся здесь возможности мы далее иллюстрируем на примере по- строения модели волнового пограничного слоя с помощью CAS Mathematica.
Поскольку у читателя не предполагается каких-либо знаний языка Mathematica, мы не публикуем полный листинг программы, реализующей модель, а как пра- вило, ограничиваемся комментариями (шрифт Times New Roman), изредка вставляя в иллюстративных целях фрагменты программы и отклик системы
(шрифт Courier New).
Пример использования CAS: Спектральная модель волнового
пограничного слоя (ВПС), реализованная в системе Mathematica
Рассматривается задача обтекания двумерного волнового поля воздушным потоком, сонаправленным с фазовой скоростью волны.

ОКЕАНОЛОГИЯ
116
1. Вывод уравнений ВПС в отслеживающих координатах
Исходная система уравнений
Система уравнений
турбулентной жидкости в бескоординатной форме та- кова

Здесь ρ – плотность массы,
– 4-вектор скорости точки среды, g – метрический тензор,
– градиент давления,
– тензор напря- жений Рейнольдса.
Гипотезы
: волна двумерна, жидкость несжимаема и ρ = const.
Пространственная область определения функций: цилиндрическая об- ласть W, ограниченная снизу поверхностью волны η(t, x).
В пространственно-временной области с координатами выбирается метрика Минковского, а система пространственных координат – декартовой. Начало координат помещается на невозмущенной поверхности раз- дела «вода–воздух». Верхняя граница области W (высота ВПС) фиксируется на высоте h.
В этом случае координатная форма уравнений задачи такова (здесь p – нормированное на плотность отклонение давления от гидростатического, а
)
Спрямление ВПС. Введение координат, базисов и метрик
Заменой координат область W отображаем на пря- моугольную область P с координатами
, компонентами скорости
, и метрическим тензором G.
Система уравнений записывается так:
Подключение пакета ttc, реализующего работу с тензорами
<

УЧЕНЫЕ ЗАПИСКИ № 19 117
Описываем координаты:
ctn
– декартовы коорд. в W области,
flw
– отслеживающие координаты в P- области
InputCoordinates[ctn,{t,x,z}];
InputCoordinates[flw,{t,x,ζ}];
Задаем преобразование координат ctnflw:
InputCoordinateChange[ctn,flw,{t→t,x→x,z→η[t,x]+(1-η[t,x]/h)
ζ}];
InputCoordinateChange[flw,ctn,{t→t,x→x,ζ→h (z-η[t,x])/(h-
η[t,x])}];
Определяем координатные базисные векторы:
e
– декартов базис в W – области,
ε
– базис в P-области
e = ZZ[ctn]; ε = ZZ[flw];
Записываем разложение скорости по базисным векторам:
v=(1,v1,v3)ctn, V=(1,u,w)flw
v = e[-1] + v1[t,x,z] e[-2] + v3[t,x,z] e[-3];
V = ε[-1] + u[t,x,ζ] ε[-2] + w[t,x,ζ] ε[-3];
Задаем метрику в W области: g – индефинитная метрика Минковского
g = -e[t]*.e[t]+e[x]*.e[x]+e[z]*.e[z];
InputMetric[mink,ctn,g];
Метрика в P-области (в пределе h ∞)
G = Limit[Change[ctn,flw][g],h->∞]

Тензор G считаем метрическим в P-области
InputMetric[mink,flw,G];
Модельные уравнения
1. Уравнение неразрывности
eqn0 = Limit[V[i,.;-i]//Index[mink],h→∞]

2. Уравнение движения
преобразование давления
(
Pf
– в отслеживающих координатах,
Pc
– в декартовых координатах)
Pf=p[t,x,ζ]
Pc = Change[flw,ctn][Pf]
градиент давления в P-области
DtPf = AbsoluteD[mink][Pf];

ОКЕАНОЛОГИЯ
118
DtPfi = DtPf[i]//Index[mink]

коэффициент турбулентной вязкости
(
νTf
– в отслеживающих координатах,
νTc
– в декартовых координатах)
νTc=Change[flw,ctn][νTf[ζ]]

градиент коэффициента турбулентной вязкости
DtνTf = Limit[AbsoluteD[mink][νTf[ζ]],h–›∞]

уравнение движения
EQN[b_] := V1[a] V[b,.;-a] + DtPf[b] –
DtνTf[a] V[b,.;-a] - νTf[ζ] V[b,.;a,.;-a]//Index[mink]
первая компонента уравнения движения
eqn1 = EQN[1]

Вторая компонента уравнения движения
eqn2 = EQN[2]
3.

Уравнения Пуассона для давления: дифференцируем 1-е по x, а 2-е – по ζ
DEqn2 = D[eqn2,x];
DEqn3 = D[eqn3,ζ];
Суммируем и получаем уравнение для давления
eqn23 =Simplify[DEqn2 + DEqn3]
Запись промежуточных результатов
equ0>>tmpEqns/10_equ0.txt
equ1>>tmpEqns/11_equ1.txt
equ2>>tmpEqns/12_equ2.txt
equ23>>tmpEqns/13_equ3.txt

УЧЕНЫЕ ЗАПИСКИ № 19 119
2. Спектральные уравнения ВПС
Постановка задачи. Граничные и начальные условия
Решается система уравнений турбулентной жидкости. Область определе- ния функций – цилиндр [0,L]×[0,h]. Система координат – «отслеживающая»
(x,ζ); преобразования декартовых координат (x,z) ↔ (x,ζ) таковы:
; размерности z и ζ равны. Преобразование коор- динат выпрямляет нижнюю взолнованную границу области.
Граничные условия.
Периодические по горизонтали.
Верхняя граница:
– скорость потока вне ВПС,
w(t,x,h) = 0,
p(t,x,h) = 0.
Нижняя граница:
– скорость движения поверхности,
w(t,x,0) = 0,
p(t,x,0) = 0.
Начальные условия:
– линейный профиль скорости от до
w(0,x,ζ) = 0,
p(0,x,ζ) = 0.
Задача решается проекционным методом взвешенных невязок: решение представляется в виде усеченного ряда Фурье с последующей минимизацией проекции невязки на пространстве, натянутом на те же базисные функции.
В качестве базисных функций берутся собственные функции оператора Лапласа:
Базисные функции занумерованы целыми положительными значениями волновых чисел k и s.
Для учета ненулевых граничных условий в базис включены еще две функ- ции
Ряды Фурье для искомых функций:

ОКЕАНОЛОГИЯ
120 при и
Представление решений рядами Фурье, подстановка и минимизация
невязки
Правила подстановки для разложения решений по базисным функциям и проектирование

Читаем выведенные уравнения

Подстановка разложений решения по базисным функциям и проектирова- ние

Формирование списка интегралов от комбинаций базисных функций


УЧЕНЫЕ ЗАПИСКИ № 19 121

Формирование имен интегралов и функций для их вычисления
Число различных интегралов

42
Список интегралов и правил подстановки.

Замена интегралов вызовами функций



Вычисление матрицы системы уравнений и вектора правых частей
Equation #1:


Equation #2:


Equation #3:


ОКЕАНОЛОГИЯ
122


УЧЕНЫЕ ЗАПИСКИ № 19 123
Вспомогательные вычисления
Вычисление интегралов, вывод и тестирование соответствующих
функций
Вывод функций, вычисляющих компоненты матрицы СЛАУ и векто-
ра правой части
3. Пример расчета эволюции ВПС
Начальные установки. Модуль вычисления давления

Основной цикл


ОКЕАНОЛОГИЯ
124
(...)


УЧЕНЫЕ ЗАПИСКИ № 19 125

ОКЕАНОЛОГИЯ
126
Эпилог (эволюция средних величин:
горизонтальной скорости, отклонения давления, кинетической энергии)

tend=TimeUsed[];
Print["Total time per run:",tend-tbeg];
Created with Wolfram Mathematica 8.0
Литература
1. Алексеев Е.Р., Чеснокова О.В., Рудченко Е.А. Scilab: Решение инженерных и математических задач. БИНОМ. Лаборатория знаний. – М., 2008.
2. Алексеев Е.Р., Чеснокова О.В. MATLAB 7. Самоучитель. – М.: Пресс, 2005.
3. Васильев А.Н. Maple 8. Самоучитель. – М.: Диалектика, 2003.
4. Дьяконов В.П. Mathematica 5.1/5.2/6. Программирование и математические вычисления.М.:
ДМК-Пресс, 2008.
5. Ильина В.А., Силаев П.К.. Система аналитических вычислений MAXIMA для физиков-теоре- тиков. – М.: МГУ им. М.В. Ломоносова, 2007.
6. Кирьянов Д.В. Самоучитель Mathcad 13. – СПб.: БХВ-Петербург, 2006.
7. Климов Д.М., Руденко В.М. Методы компьютерной алгебры в задачах механики. – М.: Наука,
1989.
8. Шмидский Я.К. Mathematica 5. Самоучитель. Система символьных, графических и численных вычислений. – М.: Диалектика, 2004.


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал