Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Метод вычисления неопределённых интегралов
Method for evaluating indefinite integrals
В символьных вычислениях алгоритм Риша — это метод неопределённого интегрирования, используемый в некоторых системах компьютерной алгебры для нахождения первообразных. Он назван в честь американского математика Роберта Генри Риша, специалиста в области компьютерной алгебры, который разработал его в 1968 году. Алгоритм преобразует задачу интегрирования в алгебраическую задачу. Он основан на виде интегрируемой функции и на методах интегрирования рациональных функций, радикалов, логарифмов и экспоненциальных функций. Риш назвал его процедурой разрешения, поскольку это метод определения того, имеет ли функция элементарную функцию в качестве неопределённого интеграла, и, если да, то для определения этого неопределённого интеграла. Однако алгоритм не всегда успешно определяет, может ли первообразная данной функции быть выражена через элементарные функции. Полное описание алгоритма Риша занимает более 100 страниц. Алгоритм Риша — Нормана является более простым, быстрым, но менее мощным вариантом, разработанным в 1976 году Артуром Норманом. Значительный прогресс в вычислении логарифмической части смешанного трансцендентно-алгебраического интеграла был достигнут Брайаном Л. Миллером.
In symbolic computation, the Risch algorithm is a method of indefinite integration used in some computer algebra systems to find antiderivatives. It is named after the American mathematician Robert Henry Risch, a specialist in computer algebra who developed it in 1968. The algorithm transforms the problem of integration into a problem in algebra. It is based on the form of the function being integrated and on methods for integrating rational functions, radicals, logarithms, and exponential functions. Risch called it a decision procedure, because it is a method for deciding whether a function has an elementary function as an indefinite integral, and if it does, for determining that indefinite integral. However, the algorithm does not always succeed in identifying whether or not the antiderivative of a given function in fact can be expressed in terms of elementary functions. The complete description of the Risch algorithm takes over 100 pages. The Risch–Norman algorithm is a simpler, faster, but less powerful variant that was developed in 1976 by Arthur Norman. Some significant progress has been made in computing the logarithmic part of a mixed transcendental algebraic integral by Brian L. Miller.
Описание
Алгоритм Риша используется для интегрирования элементарных функций. Это функции, полученные композицией экспонент, логарифмов, радикалов, тригонометрических функций и четырех арифметических операций (+ − × ÷). Лаплас решил эту проблему для случая рациональных функций, показав, что неопределенный интеграл рациональной функции является рациональной функцией и конечным числом констант, умноженных на логарифмы рациональных функций. Алгоритм, предложенный Лапласом, обычно описывается в учебниках по математическому анализу; как компьютерная программа, он был окончательно реализован в 1960-х годах. Лиувилль сформулировал проблему, решаемую алгоритмом Риша. Лиувилль аналитически доказал, что если существует элементарное решение g уравнения 1 = g′ = f, то в поле, порожденном f, существуют константы αi и функции ui и v, такие что решение имеет вид
The Risch algorithm is used to integrate elementary functions. These are functions obtained by composing exponentials, logarithms, radicals, trigonometric functions, and the four arithmetic operations (+ − × ÷). Laplace solved this problem for the case of rational functions, as he showed that the indefinite integral of a rational function is a rational function and a finite number of constant multiples of logarithms of rational functions The algorithm suggested by Laplace is usually described in calculus textbooks; as a computer program, it was finally implemented in the 1960s. Liouville formulated the problem that is solved by the Risch algorithm. Liouville proved by analytical means that if there is an elementary solution g to the equation 1=g′ = f then there exist constants αi and functions ui and v in the field generated by f such that the solution is of the form
Риш разработал метод, позволяющий рассматривать лишь конечное множество функций вида Лиувиля. Интуиция алгоритма Риша основана на поведении экспоненциальной и логарифмической функций при дифференцировании. Для функции f e^(g), где f и g – дифференцируемые функции, имеем
Risch developed a method that allows one to consider only a finite set of functions of Liouville's form. The intuition for the Risch algorithm comes from the behavior of the exponential and logarithm functions under differentiation. For the function f e^(g), where f and g are differentiable functions, we have
, поэтому, если e^(g) входит в результат неопределенного интегрирования, следует ожидать, что она будет находиться внутри интеграла. Также, поскольку
so if e^(g) were in the result of an indefinite integration, it should be expected to be inside the integral. Also, as
, то, если (ln g)^(n) входит в результат интегрирования, следует ожидать лишь несколько степеней логарифма.
then if (ln g)^(n) were in the result of an integration, then only a few powers of the logarithm should be expected.
Реализация
Преобразование теоретического алгоритма Риша в алгоритм, который может быть эффективно выполнен на компьютере, оказалось сложной задачей, потребовавшей значительного времени. Случай чисто трансцендентных функций (не содержащих корни многочленов) относительно прост и был реализован на ранних этапах развития большинства систем компьютерной алгебры. Первую реализацию выполнил Джоэль Мозес в системе Macsyma вскоре после публикации работы Риша. Задача чисто алгебраических функций была решена и реализована Джеймсом Х. Давенпортом в системе Reduce, однако для упрощения она поддерживала только квадратные корни и повторные квадратные корни, но не общие радикалы или другие неквадратичные алгебраические соотношения между переменными. Общий случай был решен и почти полностью реализован Мануэлем Бронштейном в Scratchpad, предшественнике системы Axiom, и в настоящее время разрабатывается в ответвлении Axiom, FriCAS. Тем не менее, реализация не включала в себя полное покрытие некоторых ветвей для частных случаев. На данный момент не существует известной полной реализации алгоритма Риша.
Transforming Risch's theoretical algorithm into an algorithm that can be effectively executed by a computer was a complex task which took a long time. The case of the purely transcendental functions (which do not involve roots of polynomials) is relatively easy and was implemented early in most computer algebra systems. The first implementation was done by Joel Moses in Macsyma soon after the publication of Risch's paper. The case of purely algebraic functions was solved and implemented in Reduce by James H. Davenport, though for simplicity it could only deal with square roots and repeated square roots and not general Radicals or other non quadratic algebraic relations between variables. The general case was solved and almost fully implemented in Scratchpad, a precursor of Axiom, by Manuel Bronstein, and is now being developed in Axiom's fork, FriCAS. However, the implementation did not include some of the branches for special cases completely. Currently, there is no known full implementation of the Risch algorithm.
Решаемость
Алгоритм Риша, применяемый к общим элементарным функциям, не является алгоритмом, а полуалгоритмом, поскольку в процессе своей работы он должен проверять, эквивалентны ли определенные выражения нулю (проблема с константами), в частности, в константном поле. Для выражений, содержащих только функции, обычно считающиеся элементарными, неизвестно, существует ли алгоритм, выполняющий такую проверку (современные системы компьютерной алгебры используют эвристические методы); более того, если добавить функцию абсолютной величины в список элементарных функций, то известно, что такого алгоритма не существует; см. теорему Ричардсона. Следует отметить, что эта проблема также возникает в алгоритме деления полиномов; этот алгоритм не сможет завершиться успешно, если он не сможет правильно определить, обращаются ли коэффициенты в ноль. Практически любой нетривиальный алгоритм, связанный с полиномами, использует алгоритм деления полиномов, включая алгоритм Риша. Если константное поле вычислимо, то есть для элементов, не зависящих от x, задача об эквивалентности нулю разрешима, то алгоритм Риша является полным алгоритмом. Примерами вычислимых константных полей являются Q и Q(y), то есть рациональные числа и рациональные функции от y с рациональными коэффициентами соответственно, где y — неопределённая переменная, не зависящая от x. Эта проблема также возникает в алгоритме исключения Гаусса (или любом алгоритме, способном вычислить ядро матрицы), который также необходим для многих частей алгоритма Риша. Исключение Гаусса выдаст неверные результаты, если оно не сможет правильно определить, является ли ведущий элемент тождественно равным нулю.
The Risch algorithm applied to general elementary functions is not an algorithm but a semi algorithm because it needs to check, as a part of its operation, if certain expressions are equivalent to zero (constant problem), in particular in the constant field. For expressions that involve only functions commonly taken to be elementary it is not known whether an algorithm performing such a check exists or not (current computer algebra systems use heuristics); moreover, if one adds the absolute value function to the list of elementary functions, it is known that no such algorithm exists; see Richardson's theorem. Note that this issue also arises in the polynomial division algorithm; this algorithm will fail if it cannot correctly determine whether coefficients vanish identically. Virtually every non trivial algorithm relating to polynomials uses the polynomial division algorithm, the Risch algorithm included. If the constant field is computable, i. e., for elements not dependent on x, the problem of zero equivalence is decidable, then the Risch algorithm is a complete algorithm. Examples of computable constant fields are 'Q' and 'Q'(y), i. e., rational numbers and rational functions in y with rational number coefficients, respectively, where y is an indeterminate that does not depend on x. This is also an issue in the Gaussian elimination matrix algorithm (or any algorithm that can compute the nullspace of a matrix), which is also necessary for many parts of the Risch algorithm. Gaussian elimination will produce incorrect results if it cannot correctly determine if a pivot is identically zero.