Опубликован: 04.03.2008 | Доступ: свободный | Студентов: 1603 / 41 | Оценка: 4.56 / 3.67 | Длительность: 30:07:00
ISBN: 978-5-9556-0099-4
Специальности: Программист, Математик
Лекция 11:

Интегрирование полиномов и рациональных функций. Некоторые сведения из дифференциальной алгебры. Структурная теорема

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

Интегрирование полиномов и рациональных функций

Для решения простейших дифференциальных уравнений вида

\begin{equation}
  y'=f(x) 
\end{equation} ( 22.1)
существует множество методов, которые применимы для функций f(x) из некоторых классов. При этом обычно недостаточно четко задается класс функций, в котором выбираются решения. Решение g(x) уравнения (22.1) определяется с точностью до произвольной константы и называется неопределенным интегралом или первообразной функции f(x).

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

В этом разделе символом \EuScript A будем обозначать класс функций, к которому принадлежит функция f(x) из правой части уравнения (22.1), а символом \EuScript B - класс функций, в котором выбирается решение.

Прежде всего рассмотрим случай, когда \EuScript A - кольцо полиномов K[x] от одной переменной над некоторым кольцом K характеристики 0. Предполагается, что мы умеем выполнять арифметические операции в поле K, в частности, K может совпадать с полем \mathbb Q. В этом случае любое уравнение вида (22.1) имеет решение в этом же классе функций, и алгоритм его нахождения хорошо известен: если f(x)=\sum\limits_{i=0}^n a_ix^i, то первообразная имеет вид g(x)=\sum\limits_{i=0}^n
\frac {a_i}{i+1}x^{i+1}+c, где c - произвольная константа ( константа интегрирования )

Следующим по сложности идет случай, когда \EuScript A - поле рациональных функций K(x) от одной переменной. Для простоты будем считать, что поле коэффициентов K совпадает с полем рациональных чисел \mathbb Q. Если класс \EuScript B совпадает с \EuScript A, то решение уравнения (22.1) существует далеко не всегда. Однако можно класс \EuScript B несколько расширить, добавив к нему алгебраические числа и операцию логарифмирования полиномов. Полученный класс будем обозначать \EuScript B=\bar{\EuScript A}(x,+,-,*,/,\log), и тогда любое уравнение вида (22.1), где f(x)\in
\mathbb Q(x), разрешимо в классе \EuScript B.

Напомним два метода решения уравнения (22.1) в этом случае.

I метод. Пусть f(x)=\frac  {p(x)}{q(x)}. Предположим, что мы умеем находить разложение функции f(x) в сумму простейших дробей: f(x) = p_0+\sum\limits_{i,j}\frac {c_{ij}}{(x-\alpha
_i)^j}. Проинтегрировать сумму почленно не представляет труда, пользуясь тем, что

\int\frac1{(x-\alpha)^j}dx =\begin{cases}\ln(x-\alpha)+c
&\text{ при }j=1\\-\frac1{(j-1)(x-\alpha)^{j-1}}+c&\text{  при } 
j>1.\end{cases}
Основная сложность этого метода приходится на нахождение полюсов функции f(x), т.е корней \alpha_i ее знаменателя и разложение функции f(x) в сумму простейших дробей.

II метод. Как и прежде, предполагаем, что \smu{2} f(x)=\frac {p(x)}{q(x)} и что мы нашли все полюса \alpha_i функции f(x) на комплексной плоскости. Разложим в окрестности каждого полюса \alpha_i функцию f(x) в ряд Лорана, точнее, вычислим главную часть разложения, \sum\limits_{j=n_i}^1 c_{ij}(x-\alpha
_i)^{-j}, где n_i - порядок полюса в точке \alpha _i. Если g(x) - первообразная функции f(x), то главная часть разложения функции g(x) в точке \alpha _i имеет вид

\bar g_i(x)= \sum\limits_{j=n_i}^2\frac {c_{ij}}{-j+1}(x-\alpha
_i)^{-j+1}+c_{i1}\ln(x-\alpha _i).
Функция
g(x)-\sum\limits_i \bar g_i(x)
не имеет особенностей в комплексной плоскости и является просто полиномом, степень которого равна \max (\deg p-\deg q, -1) +1. Для нахождения этого полинома можно также проинтегрировать главную часть разложения функции f(x) в точке \infty.

При реализации обоих методов основная трудность состоит в нахождении полюсов \alpha_i функции f(x). При этом приходится работать в алгебраическом расширении \mathbb Q(\alpha
_1,\dots,\alpha_m) поля \mathbb Q. Однако для записи ответа часто оказывается достаточным меньшее расширение поля \mathbb Q, чем \mathbb Q(\alpha_1,\dots,\alpha_m).

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

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

Предположим, что рациональная функция f(x) представлена в виде суммы полинома f_0(x) и правильной дроби (т. е. отношения двух полиномов, в котором степень числителя меньше степени знаменателя) f_1(x). Мы можем отдельно интегрировать полиномиальную f_0(x) и рациональную f_1(x) части функции f(x). Интеграл от f_0(x) является полиномом, и его вычисление не представляет труда. Интеграл от f_1(x) представляется в виде суммы правильной дроби g_1(x) и логарифмической части g_2(x) интеграла. Логарифмическая часть получается от интегрирования правильных дробей, в знаменателе которых стоят неприводимые полиномы (в первой степени). Сумма таких дробей является правильной дробью, знаменатель q_2(x) которой свободен от квадратов и делит знаменатель исходной функции f_1(x). Алгоритм нахождения q_2(x) описан в параграфе "Разложение на свободные от квадратов множители". Как легко следует из первого метода интегрирования, рациональная часть g_1(x) интеграла функции f_1(x) является правильной дробью, знаменатель q_1(x) которой получается из знаменателя функции f_1(x) делением его на q_2(x). Числитель r_1(x) рациональной части однозначно определяется условиями: \deg  r_1(x)<\deg  q_1(x) и f_2(x)  -\left(\frac
{r_1(x)}{q_1(x)}\right)' - правильная рациональная дробь со знаменателем q_2(x). Вычисление полинома r_1(x) осуществляется методом неопределенных коэффициентов.

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

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