Реализация метода решения уравнений с помощью теории АДс в среде VBA

УДК 518.61

РЕАЛИЗАЦИЯ МЕТОДА РЕШЕНИЯ УРАВНЕНИЙ С ПОМОЩЬЮ ТЕОРИИ АДС В СРЕДЕ VBA

Т.П.Бояринцева1

Национальный исследовательский Иркутский государственный технический университет, 664074, г. Иркутск, ул. Лермонтова, 83.

Работа посвящена реализации решения уравнения (2) в приложении MS Excel с использованием среды программирования VBA, что расширяет функциональные и вычислительные возможности Excel. Созданное приложение будет полезным для исследователей нелинейных алгебро-дифференциальных систем. Ил.1. Библиогр. 7 назв.

Ключевые слова: алгебро-дифференциальная система уравнений; Visual Basic for Application (VBA); итерации.

IMPLEMENTATION OF THE EQUATION SOLVING METHOD BY MEANS OF ALGEBRO-DIFFERENTIAL THEORY IN VBA ENVIRONMENT T.P. Boyarintseva

National Research Irkutsk State Technical University, 83, Lermontov St., Irkutsk, 664074.

This article deals with the implementation of the equation (2) solution in the MS Excel with the use of VBA programming environment. That extends the functionality and computing capabilities of Excel. The created application will be useful for researchers of nonlinear algebro-differential systems (ADS). 1 figure. 7 sources.

Key words: algebro-differential system of equations; Visual Basic for Application (VBA); iterations.

В работе используются инструментальные средства программирования VBA, интегрированные в приложение Microsoft Excel, для создания программного продукта, который реализует новый подход к решению алгебраических и трансцендентных уравнений, что расширяет функциональные и вычислительные возможности приложения Excel в научных, инженерных расчетах и при обучении студентов.

Использование VBA объясняется следующими причинами:

• VBA - это интегрированная среда визуального программирования, позволяющая создавать современные событийно-объектно-ориентированные приложения с унифицированным графическим интерфейсом;

• языковые средства VBA по гибкости и полноте не уступают языковым средствам других современных систем программирования и, следовательно, позволяют освоить типовые методы и приемы разработки программных процедур;

• VBA является общей языковой платформой для всех приложений MS Office, и мы будем рассматривать VBA во взаимосвязи с Excel, размещая на листах Excel исходные данные и результаты решения задачи [1, c. 107].

В работе осуществляется метод решения уравнения f(x)=0 (f(х) и x могут быть векторами), основанный на использовании идей из теории алгебро-дифференциальных систем (АДС), разработанной Ю.Е. Бояринцевым и его учениками [2, c. 162; 3, 4].

АДС состоят из взаимосвязанных алгебраических (а также трансцендентных) и дифференциальных

уравнений. В частности, к ним относятся системы вида

х0 = Г

0 = ф

Очевидно, что уравнение Т(х) = 0 также можно отнести к АДС, не содержащей дифференциальных уравнений.

Ясно, что если уравнение (2) не имеет решения на заданном промежутке, то АДС (1), (2) также не имеют решения. Если же решение x0(t), x1(t) уравнения (2) существует и единственно, то уравнение (1) оказывается просто условием совместности АДС (1), (2), которое может быть проверено подстановкой полученного решения x0(t), x1(t) в уравнение (1).Что касается общего случая, то здесь ситуация несколько усложняется. Недавно появившаяся на этот счет работа [4] показывает, что и в общем случае все сводится к решению определенным образом сконструированных алгебраических (трансцендентных) систем.

В любом случае требуется решать системы уравнений, в том числе и для задачи Коши, при несогласованных начальных данных.

Рассмотрим систему, в которой коэффициент при x0 равен нулю. Метод решения состоит в следующем.

1. Вводится параметр t, принадлежащий отрезку [0,1], и вместо уравнения

= 0

рассматривается уравнение

Г (х (t )) = (1 -1 ) (х (0)),

0 < t < 1

1Бояринцева Татьяна Павловна, старший преподаватель кафедры информатики, тел.: (3952) 405183, e-mail: bojar33@mail.ru Boyarintseva Tatiana Pavlovna, senior lecturer of the chair of Information Science, tel.: (3952) 405183, e-mail: bojar33@mail.ru

с неизвестной функцией х (0, определенной на отрезке 0 ~ 1 ~ 1 Хорошо видно, что при I = 0 уравнение (2) удовлетворяется при любом х (0), а при I = 1 значение х (1) превращается в корень уравнения

f(x) = 0

2. Чтобы решить уравнение (4) на отрезке [0,1], продифференцируем его по t:

df

Таким образом, имеем

dx

x'(t) = -f(x(0)).

f(x(0)).

И если теперь решить это дифференциальное уравнение, взяв в качестве начального данного х(0)=а, где а - произвольный вектор, то в качестве х (1) получим корень уравнения (3).

3. Для решения уравнения (6) можно применить любые подходящие разностные схемы (например, метод Рунге-Кутта, Эйлера и др.). В данной работе для простоты используется метод ломаных Эйлера, что приводит к итерационному процессу

fx)

dx.

f(x,),

i = 0,1,k,N; т = —, N

В силу аппроксимационных свойств метода ломаных значение хы , вообще говоря, не совпадает с искомым корнем х(1). Но тогда полагаем а = хы и повторяем процесс заново. И так до сходимости.

Очевидно, что при N = 1 (т = 1) процесс (7) превращается в итерации Ньютона. Однако существует много примеров, в которых метод Ньютона расходится, а предложенный метод сходится, например, аго1д(х) = 0.

Созданное приложение будет полезным для исследователей нелинейных АДС, возникающих в теории оптимального управления, электрических цепей при решении уравнений Навье - Стокса. В случае возможного вырождения якобиана в итерации (7) используют его разностные аппроксимации или вместо обратной матрицы берется псевдообратная матрица.

Интерфейс приложения (рис.) удобен и понятен для пользователей любого уровня подготовки [6]. К преимуществам разработанного приложения можно отнести следующее:

1. Интерфейс разработан с использованием простейших визуальных объектов: кнопки, поля, формы.

2. Ввод решаемых уравнений в поле UserForm делается в присущей для математики форме, без использования ссылок на ячейки с данными.

3. Начальное приближение может быть (теоретически и практически) произвольным.

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

5. В случае необходимости имеется возможность построения графика функции в окрестности найденного корня x0 .

Интерфейс приложения разработан только для одного уравнения с вещественными коэффициентами (см. рис.).

Разработанный программный модуль, как и общий случай, содержит процедуру нахождения всех корней полинома л-ой степени с комплексными коэффициентами:

a0zn + a1zn-1 + ••• + an = 0

И в этом случае предложенный метод осуществляется в среде VBA над полем комплесных чисел. Определение корней полинома осуществляется последовательно с помощью изложенных алгоритмов, а именно, найдя один корень z0, далее строим следующее разложение исходного полинома

anzn + a.zn-1 +

+ an = n-1 . u _n-2

=

с неизвестными коэффциентами b0,...,b„.i. Определив эти коэффициенты, получаем новый полином меньшей степени, для которого процесс повторяется. Точность найденных корней демонстрируется выдаваемой в интерфейсе невязкой. График полинома строится только для случая вещественных коэффициентов.

В заключение сделаем несколько замечаний относительно итерационного процесса (7), (8) и его главной формулы, которую запишем в виде

xi+1 = xi - hC

где

C =

1f

dx

Если число неизвестных в решаемой системе (5) не совпадает с числом уравнений или матрица С, (якобиан вектора Щ) оказывается необратимой, то процесс (7) не может быть осуществлен. В связи с этим в нашей программе предусмотрено использование псевдообратной матрицы С+ [5] вместо обратной матрицы к матрице (10). Для вычисления С+применяется равенство

С:+ = Нт(С:*С: + еЕ)-1С:\ ' 8 —> 0 11 1

где * обозначает сопряженную матрицу. Заметим, что

если С-1 существует, то С+ =С-1.

А В С И  F G H

Переменная Функция Показать форму

-1 -1

-0.98

-0.96 -0.94

-0.92 0 9

-О 68 -0.66

-О 64

-0.62

-0.8

-0.76

-Ü. 76

-0.74

-а. 72

07

-а. 68 -0.66

-0.538892749

Решение уравнения F(k)=0

-0.151243162 0.169215642

*J

0.428455629 0.&Э216

0.785729335 0.8942В7713

0.962606922

0.995522509

0.99712

0,971361011

0.922679398

0.854059402

0.769091789

0.87083

0.562346291 0.446187873

Введите функцию = F

Точность вычисления

H44a/it«ce приближав

Вычистть

График функции

Решение уравнения

Скрыть Форму

-0.64 0.324883082

-0.62 D. 200747469

-0.6 0.07584

-0.5В -0.047930829

-0.56 -0.1Ш850842

-0.54 -0.205384038

-0.52 -0.395166451

-0.5 -0.5

-0.48 -0.595846349

-0 46 -0.802820762

-0.44 -0.780185958

-0.42 -0.627345971

-0.4 0.03384

-0.36 -0.929336269

-0.36 -0.903625882

-0.34 -0.906616678

-0.32 -0.Э98327091

-0.3 0.99888

-0.28 -0.980496589

График функции

Переменная

Интерфейс разработанного приложения и график решенного в качестве примера уравнения

16 х5 - 20 х3 +5 х = 0

Используя свойства псевдообратных матриц, можно показать, что если процесс сошелся, то xN является корнем уравнения

+Г(х) = 0

CNCN

Если при этом Се^См*См) * 0, то xN есть корень исходного уравнения Щ = 0.

Все методы, изложенные в данной работе, прошли проверку на многочисленных примерах.

Библиографический список

1. Ломтадзе В.В., Шишкина Л.П. Информатика: учеб. пособие. 3-е изд., перераб. Иркутск: Изд-во ИрГТУ, 2005. 144 с.

2. Бояринцев Ю.Е. Линейные и нелинейные алгебро-дифференциальные системы. Новосибирск: Наука, 2000. 222 с.

3. Бояринцев Ю.Е. Методы решения непрерывных и дискретных задач для сингулярных систем уравнений. Новосибирск: Наука, 1996. 262 с.

4. Бояринцев Ю.Е. О нелинейных алгебро-дифференциальных системах (АДС), допускающих сведение

к невырожденным системам обыкновенных дифференциальных уравнений (ОДУ). Теория и численные методы // Сибирский журнал вычислительной математики. 2010. Т. 13, № 1. С. 17-21.

5. Гантмахер Ф.Р. Теория матриц. М.: Наука, 1966. 576 с.

6. Гарнаев А.Ю. Самоучитель VBA. СПб.: БХВ Санкт-Петербург, 1999. 512 с.

7. Гарнаев А.Ю. Использование Ms Excel и VBA в экономике и финансах. СПб.: БХВ Санкт-Петербург, 1999. 336 с.