4.4.12. Maplet-демонстрация методов интегрирования
Для демонстрации методов пошагового интегрирования имеется Maplet-инст-румент Step-by-step Integration Tutor. Для вызова его окна (рис. 4.11) нужно исполнить команду (в стандартном варианте интерфейса): Tools→Tutors→Calculus-Single Variables→Antiderivative….
Рис. 4.11. Окно Maplet-демонстрации методов пошагового интегрирования
Нетрудно заметить, что это окно практически аналогично окну для демонстрации методов пошагового дифференцирования, описанному в разделе 4.3.4 (рис. 4.2). В связи с этим подробное описание средств этого инструмента можно опустить. Отметим лишь, что он позволяет задавать подынтегральную функцию и пределы интегрирования и по шагам (автоматически или вручную) вычислять интегралы. По окончании работы с окном соответствующий интеграл и результат его вычисления появляется в окне документа — рис. 4.12.
Рис. 4.12. Пример вывода результата работы с Maplet-инструментом по методам интегрирования
4.4.13. Численное вычисление определенных интегралов
Для численного вычисления определенных интегралов используется функция evalf в сочетании с функциями Int или int:
evalf(Int(f, x=a..b, …))
evalf(Int(f, a..b, …))
evalf(Int(f, list-of-equations, …))
evalf(Int(f, list-of-ranges, …))
evalf(int(f, x=a..b))
Вместо многоточия могут использоваться различные опции, например, для задания метода вычислений. Могут использоваться комбинированные методы (аналитический с численным), ряд Maple- методов повышенной точности, методы предложенные группой NAG, метод Монте-Карло и др. Детали задания методов можно найти в справке. Ограничимся несколькими примерами вычисления определенных интегралов в численном виде (файл intnum):
> Int(х^2,х=1..2)=evalf(Int(х^2,х=1..2));
> Int(sin(x)/x,х=0..Pi)=evalf(int(sin(х)/х,х=0..Pi));
> Digits:=15;Int(sin(x)/x,x=0..Pi)=evalf(int(sin(x)/x, x=0..Pi, method = _NCrule));
> expr := x*exp(-x):
Int(expr, x=1..infinity) = evalf[40](Int(expr, x=1..infinity, method=_Gquad));
В двух последних примерах показано вычисление интегралов с повышенной точностью в 15 и 40 верных знаков. Аналогичным образом могут вычисляться и кратные интегралы.
На время и возможность вычисления определенных интегралов большое значение оказывает выбранный метод вычислений. Нередко его стоит указывать явно. Ниже приведены примеры этого с оценкой времени интегрирования (файл intmet):
> restart: t:=time(): int((1-ехр(-z^2))/(BesselJ(1, z)^2+ BesselY(1,z)^2)/z^3,z=0.0..infinity); time()-t;
> t:=time(): evalf(Int((1-ехр(-z^2))/(BesselJ(1, z)^2+ BesselY(1,z)^2)/z^3,z=0..infinity, Gquad)); time()-t;
> t: =time(): evalf(Int((1-exp(-z^2))/(BesselJ(1, z)^2+ BesselY(1,z)^)/z^3,z=0.. infinity,_CCquad)); time()-t;
> t:=time(): evalf(Int((1-ехр(-z^2))/(BesselJ(1,z)^2+ BesselY(1,z) ^2)/z^3,z=0..infinity,_Sinc)); time()-t;
> t:=time(): evalf(Int((1-ехр(-z^2))/(BesselJ(1, z)^2+ BesselY(1,z)^2) z^3,z=0..infinity,_Dexp)); time()-t;
В данном случае лучшим оказался метод _Dexp (адаптивный двойной экспоненциальный метода). Разумеется, для других интегралов более целесообразным может оказаться применение другого метода. Приведенные значения времен интегрирования могут заметно отличаться при реализации вычислений на разных ПК. Данные выше приведены для ПК с процессором Pentium 4 НТ с рабочей частотой 2,6 ГГц.
4.5. Вычисление пределов функций
4.5.1. Определение предела функции
Предел в точке a | Предел слева от точки a | Предел справа от точки а |
---|---|---|