> sum(k^2,k=1..4);

Error, (in sum) summation variable previously assigned, second argument evaluates to k=1..4

> sum('k^2','k'=1..4);

30

> sum(1/i,i=1..100);

> evalf(%);

5.187377518

Обратите внимание, что во втором примере система отказалась от вычисления, а в третьем даже выдала сообщение об ошибке, связанную с тем, что переменной k перед вычислением сумм было присвоено численное значение 2. После заключения выражения и переменной индекса k в прямые кавычки ошибка исчезла, поскольку такая операция означает, что переменной придается неопределенное значение.

4.1.3. Суммы с известным пределом

Особый класс образуют последовательности, у которых существует их предел в аналитическом виде. Ниже представлен ряд последовательностей, у которых переменная индекса задается как 0..n или 1..n (файл sum):

> restart;

> sum(k, k=1..n);

> sum(i/(i+1),i=0..n);

n + 1 - Ψ(n +2) - γ

> sum(k*binomial(n,k),k=0..n);

Некоторые из таких сумм выражаются через специальные математические функции.

4.1.4. Суммы бесконечных рядов

Многие суммы бесконечных рядов сходятся к определенным численным или символьным значениям, и система Maple способна их вычислять. Это поясняют следующие примеры (файл sum):

> restart;

> sum(-exp(-k), k);

> sum(k*a^k,k);

> sum(1/k!,k=0..infinity);

e

> Sum(1/i^2, i=1..infinity) = sum(1/i^2, i=1..infinity);

> Sum(1/n!, n=1..infinity) = sum(1/n!, n=1..infinity);

> evalf(%);

1.718282828 = 1.718281828

> Sum(1/i^2, i)=sum(1/i^2, i);

4.1.5. Двойные суммы

Могут встречаться множественные суммы по типу «сумма в сумме». Ограничимся приведением примера двойной суммы, имеющей аналитическое значение (файл sum):

> Sum(Sum(k^2, k = 1..m), m = 1..N); factor(simplify(value(%)));

При конкретном значении N такую сумму нетрудно вычислить подстановкой:

> subs(N = 100, %);

8670850

Как видно из приведенных примеров, средства вычисления сумм последовательностей Maple 9.5/10 позволяют получать как численные, так и аналитические значения сумм, в том числе представляемые специальными математическими функциями.

4.1.6. Пакет вычисления специальных сумм sumtools

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

> with(sumtools);

[Hypersum, Sumtohyper, extended_gosper, gosper, hyperrecursion, hypersum, hyperterm, simpcomb, sumrecursion, sumtohyper]

Назначение функций данного пакета перечислено ниже:

hypersum(U, L, z, n) и Hypersum(U, L, z, n) — вычисление гиперсумм;

sumtohyper(f, k) и Sumtohyper(f, k) — преобразование сумм в гиперсуммы;

extended_gosper(f, k), extended_gosper(f, k=m..n) и extended_gosper(f, k, j) — реализация расширенного алгоритма Госпера;

gosper(f, k) и gosper(f, k=m..n) — реализация алгоритма Госпера;

hyperrecursion(U, L, z, s(n)) — реализация гиперрекурсионного алгоритма;

hyperterm(U, L, z, k) и Hyperterm(U, L, z, k) — ввод гипергеометрического терма.

4.1.7. Примеры вычисления специальных сумм

Приведем примеры на вычисление специальных сумм с помощью функций пакета sumtools (файл sumtools):

> extended_gosper(k*(k/2)!, k);

> extended_gosper(k*(k/2)!,k,2);

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату