Математический анализ в Maple 9



Суммирование числовых рядов

В Maple для суммирования большого (хотя и не обязательно) числа слагаемых предназначена процедура sum(), имеющая два параметра, которые при вызове процедуры разделяются запятой. Посредством первого параметра а(k) задается общая зависимость слагаемых от индекса суммирования к. Что касается второго параметра, то тут допускается некоторое разнообразие. Так, если в качестве второго параметра просто указать индекс суммирования, то Maple попытается получить формулу для суммы в виде S(к), где S(k+1)-S(k)=a(k).

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

Внимание!
Если m>n+1, то sum(a,k=m. .n)=-sum(a,k=n+1. .m-1). При m=n+1 автоматически получаем sum (а)с=m. .n)=0. Поэтому следует помнить, что первой лучше указывать нижнюю границу диапазона изменения индекса суммирования.

Иногда необходимо считать сумму не по интервалу, а только по некоторым значениям переменной суммирования. В этом случае полезным может оказаться следующий способ вызова процедуры: sum(a,k=RootOf(z)). Первый параметр, как и раньше, определяет общий член суммы и, как правило, зависит от к, а в качестве второго параметра используется (после к=) выражение типа RootOf(), которое возвращает значения корней полинома z. Предположим, следует просуммировать первые три члена гармонического ряда с четными знаменателями, т.е. нужно найти значение суммы 1/2+1/4+1/6. Если общий член суммы записать как 1/к, то суммировать следует по значениям 2, 4, 6. С использованием описанного выше способа вызова процедуры sum() это можно сделать, если задействовать полином z=(x-2)*(x-4)*(x-6).

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


Ниже показано, как в Maple можно просуммировать четные члены гармонического ряда.

А можно просто указать значение для индекса суммирования.

Во втором параметре вместо выражения типа RootOf () допускается в принципе любое выражение (главное, чтобы оно не зависело от переменной суммирования — в данном случае к). Результат выполнения процедуры при это будет заключаться в замене в общем слагаемом переменной суммирования на это выражение.

Внимание!
При вызове процедуры sum() настоятельно рекомендуется заключать параметры процедуры в одинарные кавычки. Другими словами, вместо sum(a,k) рекомендуется использовал синтаксис sum( 'а', 'к'). Это же относится и к прочим описанным выше способам вызова данной процедуры: sum('a','k'm..n), sum('a','k'=RootOf(z)), sum('a','к'=выражение). Дело в том, что если, скажем, до вызова процедуры sum() переменной суммирования (в приведенных выше примерах это к) было присвоено значение, произойдет ошибка. Использование же кавычек позволяет избежать этого. Кроме того, при суммировании по корням полинома, в силу тех же причин полезно заключать в одинарные кавычки и сам полином: sum('a','k'=RootOf('z')).

Для того чтобы суммировать последовательность значений, может исполь зоваться еще одна процедура — add(). Синтаксис вызова этой процедуры на поминает тот, что используется при вызове процедуры sum(), а именно: в ка честве первого параметра указывается общее слагаемое, а вторым параметре является переменная, по которой нужно вычислить сумму. Для этой пере менной следует указать диапазон (обязательно численный, поскольку с сим вольными параметрами процедура не работает) или множество значений, п которым вычисляется сумма. В первом случае процедура вызывается T add(a,k=m. .n). Если m>n, значение суммы будет возвращено равным 0. Для тог чтобы выполнить суммирование по какому-то множеству значений переменно суммирования, процедуру следует вызывать в виде add(a,k=выpaжeниe). В каче стве значения выражение во втором параметре, как правило, используют по следовательность. Ниже приведен пример вызова процедуры add().

Для начала просуммируем квадраты натуральных чисел от 1 до 10.

Теперь с помощью процедуры seq() создаем последовательность квадрате тех же натуральных чисел (последовательность заключена в квадратные скоС ки, поэтому формально это список, однако квадратные скобки можно не использовать).

Сумма членов созданной выше последовательности должна быть равна, как несложно догадаться, сумме квадратов натуральных чисел от 1 до 10.

Итак, в первой командной строке с использованием процедуры add() непосредственно вычисляется сумма квадратов, в то время как в третьей командной строке берется сумма по множеству значений переменной суммирования, которые, в свою очередь, являются значениями квадратов натуральных чисел из рассматриваемого диапазона. Результат выполнения обеих операций одинаков.

Внимание!
Между процедурами sum() и add(), несмотря на их кажущуюся схожесть, есть принципиальная разница. При вызове процедуры sum() суммирование производится в символьной форме. Другими словами, Maple в этом случае пытается получить аналитическую формулу. Процедура же add() используется для выполнения суммирования в явном виде. Результат ее выполнения — число. В качестве параметров этой процедуры символьные значения использоваться не могут. Поэтому, если нужно в результате вычислений получить число, лучше использовать процедуру add(). Применение процедуры sum() в таких случаях не оправдывает себя, поскольку, как уже отмечалось, вычислительным ядром Maple будет предпринята попытка получения в первую очередь аналитического выражения, а на это уходит определенное время, иногда значительное.

Процедура sum() имеет также и неактивную форму — Sum(). Синтаксис ее вызова такой же, как и в процедуре активной формы. Неактивная форма процедуры используется для представления суммы в символьном виде. Это бывает удобно особенно в тех случаях, когда необходимо записать само выражение, а не результат его вычисления.

На заметку
Следует напомнить, что выполнить неактивные процедуры можно с помощью процедуры value (), указав неактивную процедуру в качестве ее параметра.

Задача 3.1

Найти сумму ряда

Замечательно то, что Maple вычисляет и достаточно сложные "символьные" суммы, как в следующем примере.

Задача 3.2

Найти сумму ряда

Однако при работе с рядами Maple может использоваться не только для вычисления сумм.