Компьютерная алгебра в программе Mathematica 4

         

Вычисление интегралов


 

Вычисление интегралов в символьном виде


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

где С — постоянная интегрирования. А вычисление определенного интеграла с пределами — верхним b и нижним а — производится по формуле

Заметим, что определенный интеграл может быть представлен как аналитическим, так « численным значением. Для вычисления численных значений определенных интегралов разработан ряд приближенных методов — от простых (прямоугольников и трапеций) до сложных, автоматически адаптирующихся к характеру изменения подынтегральной функции f(x).

Для интегрирования в системе Mathematica используются следующие функции:

  • Integrate [f, x] — возвращает первообразную (неопределенный интеграл) подынтегральной функции f по переменной х;
  • Integrate [f, {x, xmin, xmax}] — возвращает значение определенного интеграла с пределами от x min до x max ;
  • Integrate [f, {x, xmin, xmax}, {у, ymin, ymax},...] —возвращает значение кратного интеграла с пределами от x min до x max по переменной х, от y min до y max по переменной у и т. д. (кратность реально не ограничена).
Обычно функция Integrate применяется в простейшей форме, но она имеет три характерные опции:

Options[Integrate]

{Assumptions -> {}, GenerateConditions->Automatic,

PrincipalValue > False)

Для обозначения бесконечных пределов используется константа Infinity. Эта константа означает положительную бесконечность, для задания отрицательной бесконечности она используется со знаком «минус». Пределы могут задаваться как константами, так и функциями.

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

Здесь входная ячейка в первом примере представлена в формате ввода (Input-Form), а в остальных примерах — в стандартном формате (StandardForm). При записи интегралов последний предпочтителен ввиду большей наглядности, поскольку при этом знаки интеграла имеют естественный математический вид. Обратите внимание на проверку операции интегрирования с помощью дифференцирования в двух последних примерах.

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

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

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

Рис. 4.2. Примеры вычисления неопределенных интегралов (начало)

Рис. 4.3. Примеры вычисления неопределенных интегралов (продолжение)

Рис. 4.4. Примеры вычисления неопределенных интегралов (окончание)

 

Вычисление определенных интегралов

Следующая серия примеров (рис. 4.5) иллюстрирует вычисление определенных интегралов в символьном виде.

Рис. 4.5. Примеры вычисления определенных интегралов обычного вида

Приведенные на рис. 4.6 примеры показывают вычисление определенных интегралов с пределами-функциями.

Рис. 4.6. Примеры вычисления определенных интегралов с пределами-функциями

Системы Mathematica имеют самые обширные возможности вычисления интегралов. Ядро системы вобрало в себя формулы интегрирования из всех известных справочников и даже древних рукописей.

Вычисление кратных интегралов

Mathematica способна вычислять даже кратные интегралы с фиксированными и переменными верхним или нижним пределами. Кратный, например двойной, интеграл с фиксированными пределами имеет вид:

f(x,y)dxdy

На рис. 4.7 представлено вычисление нескольких двойных определенных интегралов.

Рис. 4.7. Примеры вычисления двойных определенных интегралов

Следующий пример при двух форматах ввода показывает вычисление двойного неопределенного интеграла двойным применением функции Integrate:

Integrate!Integrate[x^3+y^3,x],y]

x4y/4+y4x/4

(x3 + y3) dx) dy

x4y/4+y4x/4

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

Рис. 4.8. Примеры вычисления кратных интегралов с пределами-функциями

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

Особые случаи вычисления интегралов

При вычислении сложных интегралов, например не имеющих представления через элементарные функции, система Mathematica 2 обращалась к своим пакетам расширений в попытке найти решение, которое может быть представлено через специальные математические функции. Mathematica 3/4 уже не акцентирует внимание пользователя на своих проблемах и, как правило, выдает результат интегрирования. Однако порой он может иметь довольно необычный вид (рис. 4.9).

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

Рис. 4.9. Примеры вычисления особых интегралов

В заключение надо отметить, что результаты символьного интегрирования в системах Mathematica 3 и Mathematica 4 нередко различаются. Более того, они могут различаться и в пределах одной версии Mathematica, так как ядро системы постоянно совершенствуется. Обычно более поздние версии дают более точные результаты вычислений особых интегралов, хотя подчас они и выглядят более сложными и даже необычными. Это говорит о необходимости вдумчиво относиться к получаемым результатам.

Численное интегрирование

Для вычисления численных значений определенных интегралов используется функция NIntegrate [f, {x, xmin, xmax}], которая возвращает численное приближение интеграла от функции f по переменной х в пределах от x min до x max .

Она имеет ряд опций, которые можно получить, исполнив команду Options [Nlnteg-rate]. Описание этих опций дано в приложении. Приведем примеры численного интегрирования.

Ввод (In)

Вывод (Out)

NIntegrate [Bessel J [l,x] ^ 3,{x,0,l}]

0.0243409

N[Sqrt [Pi] *Gamma [1/6] / (6*Gamma [2/3] ) ] 1.21433
NIntegrate [1/Sqrt [1-х^6] , {х , 0 , 1 } ] 1.21433
NIntegrate [E ^ -x*Cos [х] , {х, 0 , Infinity} ] 0.5
NIntegrate [х*у, {х,0,1} , {у,х,х ^ 2} , {z,x*y,x ^ 2*y ^ 3}] 0.010582
NIntegrate [l/(x*y) , {х,4,4 .4} , {у, 2, 2. 6}] 0.025006
NIntegrate [Sqrt[2*x+l] ,{x,0,l}] 1.39872
Эти примеры показывают, что функция NIntegrate с успехом может применяться для вычисления как однократных, так и многократных определенных интегралов, в том числе с переменными пределами.

 

Содержание раздела