Расчеты

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

Версия для печати

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

Maple может вычислять интегралы от специальных функций, таких как функции Бесселя, Лежандра и т. п. Иногда он выдает красивый ответ, иногда – интеграл без ответа (т. е. не может его взять), а иногда дает такой ответ, что волосы дыбом становятся. В этих случаях не сдавайтесь, а попробуйте немного поиграть с интегралом, чтобы Maple дал приемлемый результат. А если нужно только число, примените evalf.

Например, пусть надо вычислить интеграл от функции Бесселя:

Попытайтесь записать так:

  • restart;
  • s1:=Int(BesselJ(0,x),x=0..1);
  • value(s1);

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

  • s1:=Int(BesselJ(0,x),x=0..1.);
  • value(s1);

Запись десятичной точки рядом с единицей – вот и вся разница.

Задача 3.9 об интегрировании функций Бесселя

Попытайтесь проинтегрировать следующие функции Бесселя как неопределенные интегралы и как определенные интегралы в интервале [1.0..2.0].

(a) (b) (c) (d)

(Учтите, что они получаются с помощью BesselJ(0,x), BesselK(0,x) и BesselI(1,x)).

Попытайтесь проинтегрировать следующие полиномы Лежандра как неопределенные интегралы и как определенные интегралы в интервале [– 1.0..1.0]:

  (e) (f)  

Начните с команды with(orthopoly), а затем напишите P(3x) и т. д. Возможно, ответ в части (f) будет неожиданен. Но это не сюрприз, а происходит из свойства ортогональности, о котором детально говорилось в курсах математики.

Ортогональность векторов проверяют, взяв их скалярное произведение. Если оно = 0, то векторы ортогональны. А как его брать? Надо умножить соответственные компоненты двух векторов и затем сложить результаты:

[1,2,3] · [4,5,6] = 4 + 10 + 18 = 32.

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

В этом упражнении Maple используется для проверки ортогональности.

Задача 3.10 на ортогональность функций

(a) Найдите значения следующих интегралов для неравных m и n и при m = n

,

чтобы показать, что функции sin(mx) и cos(mx) ортогональны друг другу при интегрировании в интервале [0, 2π].

(Подсказка: запутаетесь, если не используете assume, чтобы сказать, что m и n – целые числа, а вариант m = n реализуется с командой m:=n.)

(b) С помощью Maple покажите, что функции Лежандра ортогональны друг другу, если две функции с разными значениями n интегрируются в интервале [–1..1]. Найдите значение

Для работы с понадобится команда with(orthopoly). После нахождения значений интеграла от для нескольких различных значений n, возможно, удастся найти общую формулу. Это легче сделать, если в пределах интегрирования не использовать десятичную точку, т. е. записать 1 и –1 вместо 1. и –1.

(c) С помощью Maple покажите, что функции Бесселя ортогональны друг другу. Для этого вычислите интеграл где числа и – это нули Их можно получить из функции Maple BesselJZeros(n,m), где n – порядок функции Бесселя, т. е. n=0 для n=1 для и т. д., а m – число нулей (р и q – это значения m), начиная с первого. (Например, BesselJZeros(0.,1) дает 2.404825558.) Учтите, что важна десятичная точка после 0. Затем посмотрите, можно ли найти формулу для интеграла при p = q. (Подсказка: при p = q получатся бессмысленные числа, поскольку BesselJZeros возвращает числа с плавающей запятой. Ситуацию можно улучшить. Замените BesselJZeros(0.,n) на BesselJZeros(0,n) (без десятичной точки), и пусть Maple пытается проинтегрировать символьно. Получите простой ответ.)

Задача 3.11 о построении графиков Pnm

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

  • restart;
  • Pnm:=(n,m,x)-> (-1)^m*sqrt(1-x^2)^m*diff(P(n,x),x$m);

Амплитуда этой функции получена из

Задача 3.12 об интегрировании функций

Посмотрим, что Maple делает с интегралами.

Для заданий (a)–(c) вычислите неопределенный и определенный интегралы (последние – между .5 и 1.). Для (d) вычислите только определенный интеграл.

(a) (b) (c) , (EllipticK) (d)

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

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