exponenta event banner

vpasum

Численное суммирование с использованием переменной точности

Синтаксис

Описание

пример

s = vpasum(f,a,b) численно аппроксимирует сумму ряда, определенного f от a кому b. Переменная суммирования по умолчанию x в f определяется symvar. Границы суммирования a и b должно быть реально.

vpasum(f,[a,b]) равно vpasum(f,a,b).

пример

s = vpasum(f,x,a,b) выполняет численное суммирование с использованием переменной суммирования x.

Примеры

свернуть все

Численно суммировать символьное выражение 11.2x от 1 до 1000.

syms x;
s = vpasum(1/1.2^x,1,1000)
s = 5.0vpa('5.0')

Найдите суммирование символьной функции y (x) = x2 от a до b. Поскольку пределы суммирования должны быть вещественными значениями, предположим, что границы a и b являются действительными.

syms y(x)
syms a b real
y(x) = x^2;
s = vpasum(y,a,b)
s = 

x=abx2symsum(x^2, x, a, b)

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

Найдите символическое суммирование ряда ∑k=1∞ (-1) klog (k) k3 с помощьюsymsum. Использовать vpa для численного вычисления символьного суммирования с использованием 32 значащих цифр. Измерьте время, необходимое для объявления символьного суммирования, и вычислите его числовое значение.

syms k
tic
y = symsum((-1)^k*log(k)/k^3,k,1,Inf)
y = 

k=1-1klog(k)k3symsum(((-sym(1))^k*log(k))/k^3, k, 1, sym(inf))

yVpa = vpa(y)
yVpa = 0.059705906160195358363429266287926vpa('0.059705906160195358363429266287926')
toc
Elapsed time is 1.475003 seconds.

Для повышения производительности вычислений (сокращения времени вычислений) используйте vpasum для вычисления одного и того же числового суммирования без вычисления символьного суммирования.

tic
y = vpasum((-1)^k*log(k)/k^3,k,1,Inf)
y = 0.059705906160195358363429266287926vpa('0.059705906160195358363429266287926')
toc
Elapsed time is 0.127769 seconds.

Входные аргументы

свернуть все

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

Пределы суммирования, определяемые как два числа, разделенных запятыми, символьные числа, символьные переменные, символьные функции или символьные выражения. Задание диапазона суммирования от a кому b также может быть выполнено с использованием вектора с двумя элементами. Пределы суммирования должны быть реальными.

Переменная суммирования, заданная как символьная переменная. Если x не указан, переменная интегрирования определяется symvar(f).

Алгоритмы

В зависимости от того, является ли ряд чередующимся или монотонным, vpasum пробует ряд стратегий для расчёта его предела: u-трансформация Левина, формула Эйлера - Маклаурина или трюк ван Вейнгардена.

Например, формула Эйлера-Маклаурина

∑i=abf (i) = f (a) + f (b) 2+∫abf (x) dx + (∑m=1⌊p/2⌋B2m (2 m)! (f (b) 2 m − 1 − f (a) 2 m − 1)) + Rp,

где B2m представляет 2mth число Бернулли, а Rp является термином ошибки, который зависит от a, b, p и f.

Ссылки

[1] Ольвер, Ф. В. Дж., А. Б. Ольде Даалхёйс, Д. В. Лозье, Б. И. Шнайдер, Р. Ф. Буасверт, К. В. Кларк, Б. Р. Миллер, Б. В. Сондерс, Х. С. Коль и М. А. McClain, eds., Chapter 2.10 Sums and Sequences, NIST Digital Library of Mathematical Functions, Release 1.0.26 of 2020-03-15.

См. также

| |

Представлен в R2020b