Вычисление сумм в численном виде
Для вычисления сумм в численном виде используются следующие функции:
- NSum[f, {i, imin, imax }]– возвращает численное значение суммы f [ i ] при i, изменяющемся от imin до imax с шагом +1;
- NSumff, {i, imin, imax, di }]– возвращает сумму численных значений функции f [i] при i, изменяющемся от imin до imax с шагом di;
- NSum[f, {i, imin, imax}, {j, jmin, j max },…]– выполняет многомерное суммирование. Функция NSum[… ] эквивалентна выражению N[Sum[…] ].
Особенностью этой функции является возможность использования ряда опций, управляющих вычислительным процессом. Одной из них является NSumTerms, задающая число членов, которые явно должны быть включены в сумму перед экстраполяцией. Вы можете просмотреть список опций, используя команду Options [NSum].
Пример применения функции NSum представлен ниже:
NSum[
1
/
i3, {i,
1
, бесконечность}]
1.20206
Пример точного вычисления суммы (для сравнения) с помощью функции Sum:
truesum
=
Sum[
1
+
k
/
2k
k
/
3k
{k,
1
,
50
}]
1818632874295681087853745424762603034467
/
808281277464764060643139600456536293376
N[
%
]
2.25
Пример вычисления той же суммы с помощью функции NSum с опциями:
NSum[
1
+
k
/
2
k
-
3k
, {k,
1
,
50
}, Method
>
SequenceLimit, NSumTerms
>
2
, NSumExtraTerms
>
4
]
-
truesum
0.0530365
При следующем наборе опций результат еще лучше:
NSum[
1
+
k
/
2
k
-
3k
, {k,
1
,
50
}, Method
>
SequenceLimit, WorkingPrecision
>
30
, NSumTerms
>
2
, NSumExtraTerms
>
10
, WynnDegree
>
4
]
-
truesum
0
.
*
10
-
26
Функция вычисления суммы NSum выполняется заметно быстрее, чем функция Sum, хотя на практике заметить это трудно – все приведенные выше примеры выполняются за доли секунды. Возвращаемый функцией NSum результат вещественный.