Метод многократного деления первого шага пополам для численного решения диффернциальных уравнений гиперболического типа

у

6 It 0 itil в химии и химической технологии. Том XXIII. 2009. № 1

Компонентные системы являются одним из способов организации программных средств. Данный способ дает большое количество преимуществ, однако имеются и недостатки. К преимуществам можно отнести масштабируемость, гибкость, универсальность, централизацию программы. К недостаткам - большое количество файлов, сложность организации системы. Наиболее известные компонентные системы - это СОМ-системы (Comportent object mode! - модель компонентных объектов). Данная модель используется в операционной системе Microsoft Windows, вся работа которой построена на СОМ. У данной системы всего один реестр. Для каждого компонента необходима фабрика, с помощью которой будет создаваться объект. Данный вид модели может использоваться в любых программах.

Компонентная система, рассматриваемая в этой работе, может содержать несколько реестров. Для создания компонентов не нужны фабрики. Данный вид модели может использоваться в любой программе, однако необходима дополнительная инициализация компонентов системы при старте.

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

УДК 519.63

С. Э. Батин, А. С. Скичко, Э. М. Кольцова

Российский химико-технологический университет им. Д.И. Менделеева, Москва, Россия

МЕТОД МНОГОКРАТНОГО ДЕЛЕНИЯ ПЕРВОГО ШАГА ПОПОЛАМ ДЛЯ ЧИСЛЕННОГО РЕШЕНИЯ ДИФФЕРНЦИАЛЬНЫХ УРАВНЕНИЙ ГИПЕРБОЛИЧЕСКОГО ТИПА

.Methods of the numerical decision of the differential equations of hyperbolic type are considered. The method of numerical calculation based on repeated division of an initiatory step on time half-and-half, guaranteeing substantial growth ofaccuracy of results is offered.

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

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

Типичным уравнением гиперболического типа является: уравнение:

4 9,

It 6 Л II в химии и химической технологии. Том XXIII. 200S. № 1

дг ~ дх? '

одним из возможных решений которого является функция и = х2 + /2. Для численного решения данного уравнения необходимо задать комплект начальных и граничных условий типа: ôu

w(f = 0,x) = .v\ — (î = 0,jc) = 0, «(/.х = 0) = /3, M(f,,v = l)=i2 + I. dt

Отличительной особенностью постановки задачи является необходимость задания второго начального условия, причём при рассмотрении реальных объектов оно может быть задано исключительно в виде условия 2-го рода.

При решении задачи (1) с помощью численных методов целесообразно использовать именно неявную разностную схему, так как она обладает абсолютной устойчивостью:

Ai2 h2 ' Ki)

при этом аппроксимация второго начального условия имеет вид

«

Разностная сх;ема (1) решается с помощью метода прогонки. Сравнив полученные значения с истинными значениями функции u(t,x) в соответствующих точках разностной сетки, можно сделать вывод о целесообразности применения выбранного алгоритма. Для оценки величины ошибки используют норму, вычисляемую по формуле:

5 = ХХлДи;^-Й;""1)1^ .

« 1

При значениях А( и й, равных 0.1, 3 составляет 0.149. Это на порядок больше ошибки аппроксимации разностной схемы (2), которая сопоставима с 0.01, однако аппроксимация второго начального условия (3) из-за наличия в нём первой производной по времени вносит дополнительную погрешность в расчёт. Казалось бы, для уменьшения расчётной ошибки следует уменьшить шаг по времени. Вычислительный эксперимент показал, что при уменьшении Д? на порядок (до значения 0.01) г5 составляет 0.051, т.е. уменьшается только в 3 раза.

Было замечено, что значения функции на шаге п = 1 наиболее сильно отличаются от истинных. Это означает, что, повышая точность определения значений и), можно снизить ошибку дальнейшего расчёта. Для этого рассмотрим аппроксимацию второго начального условия с помощью центральной конечной разности:

ди т и)-и°

dt

M

Зная истинное решение уравнения, получим

ди „ ди''2 — = 21и — dt dt

П)

= 0.1 => и'=и°+0.01.

Э1 С й б X II в химии и химической технологии. Том XXIII. 2009. № 1 (94) ¿./.

Использование соотношения (4) для расчёта схемы (2) дало <5 = 0, т.е. были получены идеально точные результаты. Это подтвердило предположение о том, что основным источником возникновения расчётной ошибки в базовом случае является аппроксимация второго начального условия (3).

Отметим, что соотношение (4) изначально было найдено авторами эмпирически и только потом обосновано. Сложность данного подхода заключается в том, что для обоснования используется аналитическое выражение производной по времени, которое не будет известно для задачи, описывающей реальный объект. Поэтому результаты в данном случае обобщить невозможно. Однако этот анализ натолкнул авторов на мысль использования неравномерной разностной сетки для. вычисления и\ с заданной точностью.

Разобьём временной интервал от I = .0 (п = 0) до Г = Д/ (п= 1) пополам, получив при этом промежуточную точку Г = Д//2. Значения функции и\'2, соответствующие этой точке, можно взять из второго начального условия, в данном случае ир = и°. Затем, используя прогонку с шагом Аг/2, вычисляем и\. Дальнейший расчёт проводим уже с шагом Дг = 0.1, при этом

норма ошибки вычислений составляет 0.072. Таким образом, использование одной дополнительной прогонки на первом шаге по времени позволяет уменьшить норму ошибки вычислений вдвое. Однако можно ещё больше повысить точность расчёта, применив метод деления первого шага пополам не один раз.

А1

-и»

АЬ'2

А1/4

-и'/4 <

дг/8

— щ

Рнс.1. Схема последовательного расчета и/ при применении деления первоначального шага А/ пополам трижды

Алгоритм такого подхода схематично представлен на рис.1, где рассмотрен случай, когда деление первоначального шага пополам применено трижды. На первом этапе, используя и", и и',8 =

вычисляется и;

; затем и и]14 используется для вычисления и\

из начальных условии, и нако-

С П в £ 11 В химии и химической технологам. Том XXIII. 2009. № 1

нед, зная и° и и1/2, вычисляем значения и'. Каждая из описанных, трёх прогонок выполняется со своим шагом по времени, который при переходе от прогонки к прогонке увеличивается вдвое и после вычисления значения и'

становится равным первоначально заданному шагу. Шаг первой прогонки можно вычислить по формуле

Л/„ = Д/-2"",

где К - количество разбиений (для схемы на рис. 1 Я = 3), Дг - первоначально заданный шаг.

Отметим, что при Я = 5 и А? = 0.1 норма ошибки вычислений составляет 0.0044, что на порядок меньше, чем при расчёте по классическому алгоритму с шагом А/ = 0.01. Отсюда можно сделать вывод, что метод многократного деления первого шага пополам даёт меньшую ошибку при меньшем количестве прогонок: при Я = 5 их число равно 14, а при постоянном шаге А/ = 0.01 необходимо выполнить 99 прогонок.

Универсальность приведённого алгоритма была проверена путём решения с его помощью серии гиперболических уравнений со вторым начальным условием вида Зк/З/ (I = 0, х) = 0. Во всех случаях алгоритм давал существенный выигрыш в точности результатов. Следует заметить, при решении гиперболических уравнений со вторым начальным: условием вида ди/д! и = 0, х) = (р(л') ^ 0 применение данного алгоритма не дало увеличения точности результатов по сравнению с результатами решения обычным методом, поэтому поиск путей повышения точности численного решения для задач такого типа является самостоятельной проблемой.

Список обозначений: и(1, х) - функция, зависящая от двух переменных, /, х - независимые переменные: время и координата, соответственно, Д/, Ь - шаг по времени и по координате, соответственно, п,] - номер шага по времени и по координате, соответственно, д - норма ошибки расчёта, Я -количество разбиений первоначального шага по времени пополам.

Работа выполнена в рамках государственного контракта с Роснау-кой № 02.524.11.4006/7934-П и при поддержке гранта Федерального агентства по образованию по программе «Развитие научного потенциала высшей школы», регистрационный номер 2.1.1/2104.

УДК 004.942

Э. М. Кольцова, А. С. Егоркин, Э. В. Федин, Е. А. Абубакарова Российский химико-технологический университет им. Д. И. Менделеева, Москва, Россия

ИНФОРМАЦИОННАЯ СИСТЕМА В ОБЛАСТИ ПОЛУЧЕНИЯ И ПЕРЕРАБОТКИ ФОСФОРСОДЕРЖАЩИХ СОЕДИНЕНИЙ

The article is about the problem of creation of the software in the branch of chemical technology that deals with synthesis and processing of phosphorus-contained substances from the